From: Andy Polyakov Date: Mon, 2 Jan 2006 16:05:26 +0000 (+0000) Subject: Refine login in b_sock.c. X-Git-Tag: OpenSSL_0_9_8k^2~1615 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ea558241e08c575cfea49732b19eaf14bae9e672;p=oweals%2Fopenssl.git Refine login in b_sock.c. --- diff --git a/crypto/bio/b_sock.c b/crypto/bio/b_sock.c index bbf627de55..fd45bec331 100644 --- a/crypto/bio/b_sock.c +++ b/crypto/bio/b_sock.c @@ -640,7 +640,21 @@ int BIO_get_accept_socket(char *host, int bind_mode) * note that commonly IPv6 wildchard socket can service * IPv4 connections just as well... */ memset(&hint,0,sizeof(hint)); - if (h && strchr(h,':')) hint.ai_family = AF_INET6; + if (h) + { + if (strchr(h,':')) + { + if (h[1]=='\0') h=NULL; +#ifdef AF_INET6 + hint.ai_family = AF_INET6; +#else + h=NULL; +#endif + } + else if (h[0]=='*' && h[1]=='\0') + h=NULL; + } + if ((*getaddrinfo.f)(h,p,&hint,&res)) break; server = *res->ai_addr; (*freeaddrinfo.f)(res);