diff options
author | Ruslan Ermilov <ru@nginx.com> | 2013-08-05 13:44:56 +0400 |
---|---|---|
committer | Ruslan Ermilov <ru@nginx.com> | 2013-08-05 13:44:56 +0400 |
commit | 3693daa20f13712afc413691a74c6116c5a5bce2 (patch) | |
tree | e86b5fd2453650b694664f5b2dad794c5f9df8bc | |
parent | 4d1b08bb1cb1edaa413d0f652ba68a7fba292419 (diff) | |
download | nginx-3693daa20f13712afc413691a74c6116c5a5bce2.tar.gz nginx-3693daa20f13712afc413691a74c6116c5a5bce2.zip |
Core: guard use of AI_ADDRCONFIG.
Some systems (notably NetBSD and OpenBSD) lack AI_ADDRCONFIG support.
Reported by Piotr Sikora.
-rwxr-xr-x | auto/unix | 8 | ||||
-rw-r--r-- | src/core/ngx_inet.c | 2 |
2 files changed, 4 insertions, 6 deletions
@@ -788,11 +788,7 @@ ngx_feature_incs="#include <sys/types.h> #include <netdb.h>" ngx_feature_path= ngx_feature_libs= -ngx_feature_test='struct addrinfo hints, *res; - hints.ai_family = AF_UNSPEC; - hints.ai_socktype = SOCK_STREAM; - hints.ai_flags = AI_ADDRCONFIG; - if (getaddrinfo("localhost", NULL, &hints, &res) != 0) - return 1; +ngx_feature_test='struct addrinfo *res; + if (getaddrinfo("localhost", NULL, NULL, &res) != 0) return 1; freeaddrinfo(res)' . auto/feature diff --git a/src/core/ngx_inet.c b/src/core/ngx_inet.c index bb03720f7..0792d6e8c 100644 --- a/src/core/ngx_inet.c +++ b/src/core/ngx_inet.c @@ -963,7 +963,9 @@ ngx_inet_resolve_host(ngx_pool_t *pool, ngx_url_t *u) ngx_memzero(&hints, sizeof(struct addrinfo)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; +#ifdef AI_ADDRCONFIG hints.ai_flags = AI_ADDRCONFIG; +#endif if (getaddrinfo((char *) host, NULL, &hints, &res) != 0) { u->err = "host not found"; |