summaryrefslogtreecommitdiff
path: root/gl/getaddrinfo.c
diff options
context:
space:
mode:
authorSimon Josefsson <simon@josefsson.org>2006-07-28 18:29:35 +0000
committerSimon Josefsson <simon@josefsson.org>2006-07-28 18:29:35 +0000
commit35dc31d98a8bcf33050889394c03b802e8980bf5 (patch)
treefc629e2640790920e887aed12e1882dbff431bb7 /gl/getaddrinfo.c
parent560681a14eb3fd1064a498651f9192f4e1d04ad7 (diff)
downloadgnutls-35dc31d98a8bcf33050889394c03b802e8980bf5.tar.gz
Update.
Diffstat (limited to 'gl/getaddrinfo.c')
-rw-r--r--gl/getaddrinfo.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/gl/getaddrinfo.c b/gl/getaddrinfo.c
index d6d9534dc0..7a84003640 100644
--- a/gl/getaddrinfo.c
+++ b/gl/getaddrinfo.c
@@ -140,7 +140,7 @@ getaddrinfo (const char *restrict nodename,
return getaddrinfo_ptr (nodename, servname, hints, res);
#endif
- if (hints && (hints->ai_flags & ~AI_CANONNAME))
+ if (hints && (hints->ai_flags & ~(AI_CANONNAME|AI_PASSIVE)))
/* FIXME: Support more flags. */
return EAI_BADFLAGS;
@@ -153,8 +153,16 @@ getaddrinfo (const char *restrict nodename,
return EAI_SOCKTYPE; /* FIXME: Better return code? */
if (!nodename)
- /* FIXME: Support server bind mode. */
- return EAI_NONAME;
+ {
+ if (!(hints->ai_flags & AI_PASSIVE))
+ return EAI_NONAME;
+
+#ifdef HAVE_IPV6
+ nodename = (hint->ai_family == AF_INET6) ? "::" : "0.0.0.0";
+#else
+ nodename = "0.0.0.0";
+#endif
+ }
if (servname)
{