From ea558241e08c575cfea49732b19eaf14bae9e672 Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Mon, 2 Jan 2006 16:05:26 +0000 Subject: [PATCH] Refine login in b_sock.c. --- crypto/bio/b_sock.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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); -- 2.25.1