1
2#ifndef QEMU_SOCKET_H
3#define QEMU_SOCKET_H
4
5#ifdef _WIN32
6
7int inet_aton(const char *cp, struct in_addr *ia);
8
9#endif
10
11#include "qapi-types.h"
12
13
14int qemu_socket(int domain, int type, int protocol);
15int qemu_accept(int s, struct sockaddr *addr, socklen_t *addrlen);
16int socket_set_cork(int fd, int v);
17int socket_set_nodelay(int fd);
18void qemu_set_block(int fd);
19void qemu_set_nonblock(int fd);
20int socket_set_fast_reuse(int fd);
21
22#ifdef WIN32
23
24#define SHUT_RD 0
25#define SHUT_WR 1
26#define SHUT_RDWR 2
27#endif
28
29
30
31
32typedef void NonBlockingConnectHandler(int fd, Error *err, void *opaque);
33
34InetSocketAddress *inet_parse(const char *str, Error **errp);
35int inet_listen(const char *str, char *ostr, int olen,
36 int socktype, int port_offset, Error **errp);
37int inet_connect(const char *str, Error **errp);
38int inet_nonblocking_connect(const char *str,
39 NonBlockingConnectHandler *callback,
40 void *opaque, Error **errp);
41
42NetworkAddressFamily inet_netfamily(int family);
43
44int unix_listen(const char *path, char *ostr, int olen, Error **errp);
45int unix_connect(const char *path, Error **errp);
46int unix_nonblocking_connect(const char *str,
47 NonBlockingConnectHandler *callback,
48 void *opaque, Error **errp);
49
50SocketAddress *socket_parse(const char *str, Error **errp);
51int socket_connect(SocketAddress *addr, Error **errp,
52 NonBlockingConnectHandler *callback, void *opaque);
53int socket_listen(SocketAddress *addr, Error **errp);
54int socket_dgram(SocketAddress *remote, SocketAddress *local, Error **errp);
55
56
57int parse_host_port(struct sockaddr_in *saddr, const char *str);
58int socket_init(void);
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74SocketAddress *
75socket_sockaddr_to_address(struct sockaddr_storage *sa,
76 socklen_t salen,
77 Error **errp);
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92SocketAddress *socket_local_address(int fd, Error **errp);
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107SocketAddress *socket_remote_address(int fd, Error **errp);
108
109
110void qapi_copy_SocketAddress(SocketAddress **p_dest,
111 SocketAddress *src);
112
113#endif
114