diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2011-05-25 12:36:59 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2011-05-25 12:36:59 +0000 |
commit | 419b09b053fdcb4306284061ca4477c2beefd2be (patch) | |
tree | 7515c959e2f7f049b39ee04f2aa8488aa3e93082 /crypto/bio | |
parent | 88530f6b761edd3fae1d2cfab0a537ab7eb5e79d (diff) |
PR: 2512
Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
Reviewed by: steve
Fix BIO_accept so it can be bound to IPv4 or IPv6 sockets consistently.
Diffstat (limited to 'crypto/bio')
-rw-r--r-- | crypto/bio/b_sock.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/crypto/bio/b_sock.c b/crypto/bio/b_sock.c index 54112e6ebe..d47310d650 100644 --- a/crypto/bio/b_sock.c +++ b/crypto/bio/b_sock.c @@ -683,6 +683,7 @@ 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)); + hint.ai_flags = AI_PASSIVE; if (h) { if (strchr(h,':')) @@ -695,7 +696,10 @@ int BIO_get_accept_socket(char *host, int bind_mode) #endif } else if (h[0]=='*' && h[1]=='\0') + { + hint.ai_family = AF_INET; h=NULL; + } } if ((*p_getaddrinfo.f)(h,p,&hint,&res)) break; |