From d247d25f18764402899b37c381bb696a79000b4e Mon Sep 17 00:00:00 2001 From: aliguori Date: Tue, 11 Nov 2008 20:46:40 +0000 Subject: sockets: helper functions for qemu (Gerd Hoffman) This patch creates a new source file qemu-sockets.c with a bunch of helper functions to create listening and connected sockets. New features of this code are (a) support for searching for a free port in a given range and (b) support for IPv6. The following patches put that code into use. Compile fixes for Windows added by Anthony Liguori Signed-off-by: Gerd Hoffmann Signed-off-by: Anthony Liguori git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5695 c046a42c-6fe2-441c-8c8c-71466251a162 --- qemu_socket.h | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'qemu_socket.h') diff --git a/qemu_socket.h b/qemu_socket.h index 18488dd..c8ca07e 100644 --- a/qemu_socket.h +++ b/qemu_socket.h @@ -4,6 +4,7 @@ #ifdef _WIN32 #define WIN32_LEAN_AND_MEAN +#define WINVER 0x0501 /* needed for ipv6 bits */ #include #include #include @@ -28,15 +29,24 @@ int inet_aton(const char *cp, struct in_addr *ia); #define socket_error() errno #define closesocket(s) close(s) -int parse_unix_path(struct sockaddr_un *uaddr, const char *str); - #endif /* !_WIN32 */ +/* misc helpers */ void socket_set_nonblock(int fd); +int send_all(int fd, const void *buf, int len1); + +/* New, ipv6-ready socket helper functions, see qemu-sockets.c */ +int inet_listen(const char *str, char *ostr, int olen, + int socktype, int port_offset); +int inet_connect(const char *str, int socktype); + +int unix_listen(const char *path, char *ostr, int olen); +int unix_connect(const char *path); + +/* Old, ipv4 only bits. Don't use for new code. */ int parse_host_port(struct sockaddr_in *saddr, const char *str); int parse_host_src_port(struct sockaddr_in *haddr, struct sockaddr_in *saddr, const char *str); -int send_all(int fd, const uint8_t *buf, int len1); #endif /* QEMU_SOCKET_H */ -- cgit v1.1