From 50eef01259415a59067de542a21f30f6f4b829d0 Mon Sep 17 00:00:00 2001 From: Vladimir Chtchetkine Date: Wed, 24 Nov 2010 08:30:47 -0800 Subject: Implement sock_address_list_create2 routine. This routine takes socket address in the form of [host:]port and creates array of SockAddress for it. Change-Id: Ib2d4c1035d109d9d3df100961c4eec728d15e485 --- sockets.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'sockets.h') diff --git a/sockets.h b/sockets.h index f04458e..785a37e 100644 --- a/sockets.h +++ b/sockets.h @@ -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 */ -- cgit v1.1