diff options
Diffstat (limited to 'sockets.h')
-rw-r--r-- | sockets.h | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -280,6 +280,28 @@ SockAddress** sock_address_list_create( const char* hostname, const char* port, unsigned flags ); +/* resolve a string containing host and port name into a list of SockAddress + * objects. Parameter host_and_port should be in format [host:]port, where + * 'host' addresses the machine and must be resolvable into an IP address, and + * 'port' is a decimal numeric value for the port. 'host' is optional, and if + * ommited, localhost will be used. + * returns a NULL-terminated array of SockAddress pointers on success, + * or NULL in case of failure, with the value of errno set to one of the + * following: + * + * EINVAL : invalid argument + * EHOSTDOWN : could not reach DNS server + * ENOENT : no host with this name, or host doesn't have IP address + * ENOMEM : not enough memory to perform request + * + * other system-level errors can also be set depending on the host sockets + * implementation. + * + * This function loops on EINTR so the caller shouldn't have to check for it. + */ +SockAddress** sock_address_list_create2(const char* host_and_port, + unsigned flags ); + void sock_address_list_free( SockAddress** list ); /* create a new socket, return the socket number of -1 on failure */ |