diff options
author | Damien Miller <djm@mindrot.org> | 2003-03-24 13:35:58 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2003-03-24 13:35:58 +1100 |
commit | 62b6b17080f24da1513e41e426064fdc2e53cf23 (patch) | |
tree | 7c40f8132ad85f38c8756679f0bca64356a4b6a6 /openbsd-compat | |
parent | b062c293e084f16df3d09f9db510be4ddec6d2d6 (diff) | |
download | openssh-git-62b6b17080f24da1513e41e426064fdc2e53cf23.tar.gz |
- Fix sshd BindAddress and -b options for systems using fake-getaddrinfo.
Report from murple@murple.net, diagnosis from dtucker@zip.com.au
Diffstat (limited to 'openbsd-compat')
-rw-r--r-- | openbsd-compat/fake-getaddrinfo.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/openbsd-compat/fake-getaddrinfo.c b/openbsd-compat/fake-getaddrinfo.c index e0477660..e63bda97 100644 --- a/openbsd-compat/fake-getaddrinfo.c +++ b/openbsd-compat/fake-getaddrinfo.c @@ -12,7 +12,7 @@ #include "includes.h" #include "ssh.h" -RCSID("$Id: fake-getaddrinfo.c,v 1.4 2003/02/24 01:35:09 djm Exp $"); +RCSID("$Id: fake-getaddrinfo.c,v 1.5 2003/03/24 02:35:59 djm Exp $"); #ifndef HAVE_GAI_STRERROR char *gai_strerror(int ecode) @@ -71,6 +71,7 @@ int getaddrinfo(const char *hostname, const char *servname, struct in_addr in; int i; long int port; + u_long addr; port = 0; if (servname != NULL) { @@ -86,7 +87,10 @@ int getaddrinfo(const char *hostname, const char *servname, } if (hints && hints->ai_flags & AI_PASSIVE) { - if (NULL != (*res = malloc_ai(port, htonl(0x00000000)))) + addr = htonl(0x00000000); + if (hostname && inet_aton(hostname, &in) != 0) + addr = in.s_addr; + if (NULL != (*res = malloc_ai(port, addr))) return 0; else return EAI_MEMORY; |