From: Wouter Verhelst Date: Sat, 27 Feb 2010 21:29:50 +0000 (+0100) Subject: Parse listenaddr for hostnames X-Git-Url: http://git.alex.org.uk Parse listenaddr for hostnames Previously, a listen address had to be specified by IP address; hostnames where not supported. This patch should fix that. It is useful for those who wish to use something like 'listenaddr = localhost', though using the IP address is really recommended for most other situations. --- diff --git a/nbd-server.c b/nbd-server.c index 2df14fc..122d2fe 100644 --- a/nbd-server.c +++ b/nbd-server.c @@ -1502,6 +1502,7 @@ void setup_serve(SERVER *serve) { #else char yes='1'; #endif /* sun */ + struct hostent* he; af = AF_INET; #ifdef WITH_SDP @@ -1536,8 +1537,9 @@ void setup_serve(SERVER *serve) { } #endif addrin.sin_port = htons(serve->port); - if(!inet_aton(serve->listenaddr, &(addrin.sin_addr))) + if(!(he = gethostbyname(serve->listenaddr))) err("could not parse listen address"); + addrin.sin_addr = he->h_addr_list[0]; if (bind(serve->socket, (struct sockaddr *) &addrin, addrinlen) < 0) err("bind: %m"); DEBUG("listen, ");