diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/libbb.h | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/include/libbb.h b/include/libbb.h index 62d5fcee4..c4d187e00 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
@@ -293,19 +293,10 @@ extern void xconnect(int s, const struct sockaddr *s_addr, socklen_t addrlen); | |||
293 | extern int xconnect_tcp_v4(struct sockaddr_in *s_addr); | 293 | extern int xconnect_tcp_v4(struct sockaddr_in *s_addr); |
294 | extern struct hostent *xgethostbyname(const char *name); | 294 | extern struct hostent *xgethostbyname(const char *name); |
295 | extern struct hostent *xgethostbyname2(const char *name, int af); | 295 | extern struct hostent *xgethostbyname2(const char *name, int af); |
296 | |||
297 | extern int setsockopt_reuseaddr(int fd); | 296 | extern int setsockopt_reuseaddr(int fd); |
298 | extern int setsockopt_broadcast(int fd); | 297 | extern int setsockopt_broadcast(int fd); |
299 | /* Create server TCP socket bound to bindaddr:port. bindaddr can be NULL, | 298 | |
300 | * numeric IP ("N.N.N.N") or numeric IPv6 address, | 299 | /* "new" (ipv4+ipv6) API */ |
301 | * and can have ":PORT" suffix (for IPv6 use "[X:X:...:X]:PORT"). | ||
302 | * If there is no suffix, port argument is used */ | ||
303 | extern int create_and_bind_stream_or_die(const char *bindaddr, int port); | ||
304 | /* Create client TCP socket connected to peer:port. Peer cannot be NULL. | ||
305 | * Peer can be numeric IP ("N.N.N.N"), numeric IPv6 address or hostname, | ||
306 | * and can have ":PORT" suffix (for IPv6 use "[X:X:...:X]:PORT"). | ||
307 | * If there is no suffix, port argument is used */ | ||
308 | extern int create_and_connect_stream_or_die(const char *peer, int port); | ||
309 | typedef struct len_and_sockaddr { | 300 | typedef struct len_and_sockaddr { |
310 | int len; | 301 | int len; |
311 | union { | 302 | union { |
@@ -316,11 +307,29 @@ typedef struct len_and_sockaddr { | |||
316 | #endif | 307 | #endif |
317 | }; | 308 | }; |
318 | } len_and_sockaddr; | 309 | } len_and_sockaddr; |
310 | /* Create server TCP socket bound to bindaddr:port. bindaddr can be NULL, | ||
311 | * numeric IP ("N.N.N.N") or numeric IPv6 address, | ||
312 | * and can have ":PORT" suffix (for IPv6 use "[X:X:...:X]:PORT"). | ||
313 | * If there is no suffix, port argument is used */ | ||
314 | extern int create_and_bind_stream_or_die(const char *bindaddr, int port); | ||
315 | /* Create client TCP socket connected to peer:port. Peer cannot be NULL. | ||
316 | * Peer can be numeric IP ("N.N.N.N"), numeric IPv6 address or hostname, | ||
317 | * and can have ":PORT" suffix (for IPv6 use "[X:X:...:X]:PORT"). | ||
318 | * If there is no suffix, port argument is used */ | ||
319 | extern int create_and_connect_stream_or_die(const char *peer, int port); | ||
320 | /* Connect to peer identified by lsa */ | ||
321 | extern int xconnect_stream(const len_and_sockaddr *lsa); | ||
319 | /* Return malloc'ed len_and_sockaddr with socket address of host:port | 322 | /* Return malloc'ed len_and_sockaddr with socket address of host:port |
320 | * Currently will return IPv4 or IPv6 sockaddrs only | 323 | * Currently will return IPv4 or IPv6 sockaddrs only |
321 | * (depending on host), but in theory nothing prevents e.g. | 324 | * (depending on host), but in theory nothing prevents e.g. |
322 | * UNIX socket address being returned, IPX sockaddr etc... */ | 325 | * UNIX socket address being returned, IPX sockaddr etc... */ |
323 | extern len_and_sockaddr* host2sockaddr(const char *host, int port); | 326 | extern len_and_sockaddr* host2sockaddr(const char *host, int port); |
327 | /* assign sin[6]_port member if the socket is of corresponding type, | ||
328 | * otherwise noop. Useful for ftp. | ||
329 | * NB: does NOT do htons() internally, just direct assignment. */ | ||
330 | extern void set_port(len_and_sockaddr *lsa, unsigned port); | ||
331 | char* xmalloc_sockaddr2host(const struct sockaddr *sa, socklen_t salen); | ||
332 | char* xmalloc_sockaddr2dotted(const struct sockaddr *sa, socklen_t salen); | ||
324 | 333 | ||
325 | 334 | ||
326 | extern char *xstrdup(const char *s); | 335 | extern char *xstrdup(const char *s); |