diff options
| author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-01-11 16:50:23 +0000 |
|---|---|---|
| committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-01-11 16:50:23 +0000 |
| commit | 8e9ccba371480fb1fb3da9235fabdbb7861523c3 (patch) | |
| tree | 369636a4a765a571e1c6a6ecf2a52ca0131cc90e /include | |
| parent | 085231fbbad159d2275cbd5ecdcf4732512bb80f (diff) | |
| download | busybox-w32-8e9ccba371480fb1fb3da9235fabdbb7861523c3.tar.gz busybox-w32-8e9ccba371480fb1fb3da9235fabdbb7861523c3.tar.bz2 busybox-w32-8e9ccba371480fb1fb3da9235fabdbb7861523c3.zip | |
ipv6-ization efforts continue. Few bugs are found,
unknown number likely introduced...
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); |
