diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/libbb.h | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/include/libbb.h b/include/libbb.h index 57531e491..e41993796 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
@@ -278,12 +278,12 @@ extern off_t xlseek(int fd, off_t offset, int whence); | |||
278 | extern off_t fdlength(int fd); | 278 | extern off_t fdlength(int fd); |
279 | 279 | ||
280 | 280 | ||
281 | extern int xsocket(int domain, int type, int protocol); | 281 | int xsocket(int domain, int type, int protocol); |
282 | extern void xbind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen); | 282 | void xbind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen); |
283 | extern void xlisten(int s, int backlog); | 283 | void xlisten(int s, int backlog); |
284 | extern void xconnect(int s, const struct sockaddr *s_addr, socklen_t addrlen); | 284 | void xconnect(int s, const struct sockaddr *s_addr, socklen_t addrlen); |
285 | extern int setsockopt_reuseaddr(int fd); | 285 | int setsockopt_reuseaddr(int fd); |
286 | extern int setsockopt_broadcast(int fd); | 286 | int setsockopt_broadcast(int fd); |
287 | /* NB: returns port in host byte order */ | 287 | /* NB: returns port in host byte order */ |
288 | unsigned bb_lookup_port(const char *port, const char *protocol, unsigned default_port); | 288 | unsigned bb_lookup_port(const char *port, const char *protocol, unsigned default_port); |
289 | typedef struct len_and_sockaddr { | 289 | typedef struct len_and_sockaddr { |
@@ -303,34 +303,39 @@ int xsocket_stream(len_and_sockaddr **lsap); | |||
303 | * numeric IP ("N.N.N.N") or numeric IPv6 address, | 303 | * numeric IP ("N.N.N.N") or numeric IPv6 address, |
304 | * and can have ":PORT" suffix (for IPv6 use "[X:X:...:X]:PORT"). | 304 | * and can have ":PORT" suffix (for IPv6 use "[X:X:...:X]:PORT"). |
305 | * If there is no suffix, port argument is used */ | 305 | * If there is no suffix, port argument is used */ |
306 | extern int create_and_bind_stream_or_die(const char *bindaddr, int port); | 306 | int create_and_bind_stream_or_die(const char *bindaddr, int port); |
307 | /* Create client TCP socket connected to peer:port. Peer cannot be NULL. | 307 | /* Create client TCP socket connected to peer:port. Peer cannot be NULL. |
308 | * Peer can be numeric IP ("N.N.N.N"), numeric IPv6 address or hostname, | 308 | * Peer can be numeric IP ("N.N.N.N"), numeric IPv6 address or hostname, |
309 | * and can have ":PORT" suffix (for IPv6 use "[X:X:...:X]:PORT"). | 309 | * and can have ":PORT" suffix (for IPv6 use "[X:X:...:X]:PORT"). |
310 | * If there is no suffix, port argument is used */ | 310 | * If there is no suffix, port argument is used */ |
311 | extern int create_and_connect_stream_or_die(const char *peer, int port); | 311 | int create_and_connect_stream_or_die(const char *peer, int port); |
312 | /* Connect to peer identified by lsa */ | 312 | /* Connect to peer identified by lsa */ |
313 | extern int xconnect_stream(const len_and_sockaddr *lsa); | 313 | int xconnect_stream(const len_and_sockaddr *lsa); |
314 | /* Return malloc'ed len_and_sockaddr with socket address of host:port | 314 | /* Return malloc'ed len_and_sockaddr with socket address of host:port |
315 | * Currently will return IPv4 or IPv6 sockaddrs only | 315 | * Currently will return IPv4 or IPv6 sockaddrs only |
316 | * (depending on host), but in theory nothing prevents e.g. | 316 | * (depending on host), but in theory nothing prevents e.g. |
317 | * UNIX socket address being returned, IPX sockaddr etc... */ | 317 | * UNIX socket address being returned, IPX sockaddr etc... */ |
318 | extern len_and_sockaddr* host2sockaddr(const char *host, int port); | 318 | len_and_sockaddr* host2sockaddr(const char *host, int port); |
319 | /* Assign sin[6]_port member if the socket is of corresponding type, | 319 | /* Assign sin[6]_port member if the socket is of corresponding type, |
320 | * otherwise no-op. Useful for ftp. | 320 | * otherwise no-op. Useful for ftp. |
321 | * NB: does NOT do htons() internally, just direct assignment. */ | 321 | * NB: does NOT do htons() internally, just direct assignment. */ |
322 | extern void set_nport(len_and_sockaddr *lsa, unsigned port); | 322 | void set_nport(len_and_sockaddr *lsa, unsigned port); |
323 | /* Retrieve sin[6]_port or return -1 for non-INET[6] lsa's */ | 323 | /* Retrieve sin[6]_port or return -1 for non-INET[6] lsa's */ |
324 | extern int get_nport(len_and_sockaddr *lsa); | 324 | int get_nport(len_and_sockaddr *lsa); |
325 | extern char* xmalloc_sockaddr2host(const struct sockaddr *sa, socklen_t salen); | 325 | /* Reverse DNS */ |
326 | extern char* xmalloc_sockaddr2dotted(const struct sockaddr *sa, socklen_t salen); | 326 | char* xmalloc_sockaddr2host(const struct sockaddr *sa, socklen_t salen); |
327 | /* This one deosn't fall back to dotted IP and do not append :PORTNUM */ | ||
328 | char* xmalloc_sockaddr2hostonly_noport(const struct sockaddr *sa, socklen_t salen); | ||
329 | /* inet_[ap]ton on steroids */ | ||
330 | char* xmalloc_sockaddr2dotted(const struct sockaddr *sa, socklen_t salen); | ||
331 | char* xmalloc_sockaddr2dotted_noport(const struct sockaddr *sa, socklen_t salen); | ||
327 | // "old" (ipv4 only) API | 332 | // "old" (ipv4 only) API |
328 | //void bb_lookup_host(struct sockaddr_in *s_in, const char *host); | 333 | //void bb_lookup_host(struct sockaddr_in *s_in, const char *host); |
329 | //extern int xconnect_tcp_v4(struct sockaddr_in *s_addr); | 334 | //int xconnect_tcp_v4(struct sockaddr_in *s_addr); |
330 | // users: traceroute.c hostname.c ifconfig.c ping.c | 335 | // users: traceroute.c hostname.c ifconfig.c ping.c |
331 | extern struct hostent *xgethostbyname(const char *name); | 336 | struct hostent *xgethostbyname(const char *name); |
332 | // ping6 is the only user - convert to new API | 337 | // ping6 is the only user - convert to new API |
333 | extern struct hostent *xgethostbyname2(const char *name, int af); | 338 | struct hostent *xgethostbyname2(const char *name, int af); |
334 | 339 | ||
335 | 340 | ||
336 | extern char *xstrdup(const char *s); | 341 | extern char *xstrdup(const char *s); |