diff options
author | aliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-11-11 20:46:40 +0000 |
---|---|---|
committer | aliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-11-11 20:46:40 +0000 |
commit | d247d25f18764402899b37c381bb696a79000b4e (patch) | |
tree | 91deda3f1e3bbd941474001c46f7fceb4b915b8b /qemu_socket.h | |
parent | 065e281356282f59386272aa50590b566a1809d9 (diff) |
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 <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5695 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'qemu_socket.h')
-rw-r--r-- | qemu_socket.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/qemu_socket.h b/qemu_socket.h index 18488ddc61..c8ca07ea7d 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 <windows.h> #include <winsock2.h> #include <ws2tcpip.h> @@ -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 */ |