diff options
author | Glenn Strauss <gstrauss@gluelogic.com> | 2020-11-26 15:03:22 -0500 |
---|---|---|
committer | Glenn Strauss <gstrauss@gluelogic.com> | 2023-05-03 23:11:34 -0400 |
commit | b5ca7beb25419399a64bed459564e8cb712f603b (patch) | |
tree | aba5f63a53049edddc60120d7d8a1f5a6635042c /src | |
parent | 8acf2ae5e62269c33e4f6cc205d025de278924ae (diff) | |
download | lighttpd-git-b5ca7beb25419399a64bed459564e8cb712f603b.tar.gz |
[core] _WIN32 protect code w/ HAVE_IPV6
Diffstat (limited to 'src')
-rw-r--r-- | src/network.c | 2 | ||||
-rw-r--r-- | src/sock_addr.c | 6 | ||||
-rw-r--r-- | src/t/test_request.c | 6 |
3 files changed, 14 insertions, 0 deletions
diff --git a/src/network.c b/src/network.c index b312a492..8c1d302b 100644 --- a/src/network.c +++ b/src/network.c @@ -369,7 +369,9 @@ static int network_server_init(server *srv, const network_socket_config *s, buff sock_addr addr; int family = 0; int use_ipv6 = s->use_ipv6; + #ifdef HAVE_IPV6 int set_v6only = 0; + #endif if (buffer_is_blank(host_token)) { log_error(srv->errh, __FILE__, __LINE__, diff --git a/src/sock_addr.c b/src/sock_addr.c index cc702187..3874b85e 100644 --- a/src/sock_addr.c +++ b/src/sock_addr.c @@ -288,6 +288,8 @@ const char * sock_addr_inet_ntop(const sock_addr * const restrict saddr, char * #if defined(HAVE_INET_PTON) /*(expect inet_ntop if inet_pton)*/ return inet_ntop(AF_INET,(const void *)&saddr->ipv4.sin_addr,buf,sz); #else /*(inet_ntoa() not thread-safe)*/ + UNUSED(buf); + UNUSED(sz); return inet_ntoa(saddr->ipv4.sin_addr); #endif #ifdef HAVE_IPV6 @@ -689,7 +691,11 @@ int sock_addr_from_buffer_hints_numeric(sock_addr * const restrict saddr, sockle else if (1 == sock_addr_inet_pton(saddr, b->ptr, family, port)) { *len = (family == AF_INET) ? sizeof(struct sockaddr_in) /* family == AF_INET */ + #ifdef HAVE_IPV6 : sizeof(struct sockaddr_in6); /* family == AF_INET6 */ + #else + : 0; /*(should not happen; sock_addr_inet_pton() would not succeed)*/ + #endif return 1; } #if defined(HAVE_IPV6) && defined(HAVE_INET_PTON) diff --git a/src/t/test_request.c b/src/t/test_request.c index 372fec38..bed75d86 100644 --- a/src/t/test_request.c +++ b/src/t/test_request.c @@ -163,12 +163,14 @@ static void test_request_http_request_parse(request_st * const r) "\r\n")); assert(r->http_host && buffer_eq_slen(r->http_host, CONST_STR_LEN("127.0.0.1"))); + #ifdef HAVE_IPV6 run_http_request_parse(r, __LINE__, 0, "IPv6 address", CONST_STR_LEN("GET / HTTP/1.0\r\n" "Host: [::1]\r\n" "\r\n")); assert(r->http_host && buffer_eq_slen(r->http_host, CONST_STR_LEN("[::1]"))); + #endif run_http_request_parse(r, __LINE__, 0, "hostname + port", @@ -184,12 +186,14 @@ static void test_request_http_request_parse(request_st * const r) "\r\n")); assert(r->http_host && buffer_eq_slen(r->http_host, CONST_STR_LEN("127.0.0.1"))); + #ifdef HAVE_IPV6 run_http_request_parse(r, __LINE__, 0, "IPv6 address + port", CONST_STR_LEN("GET / HTTP/1.0\r\n" "Host: [::1]:80\r\n" "\r\n")); assert(r->http_host && buffer_eq_slen(r->http_host, CONST_STR_LEN("[::1]"))); + #endif run_http_request_parse(r, __LINE__, 400, "directory traversal", @@ -277,6 +281,7 @@ static void test_request_http_request_parse(request_st * const r) "Host: 192.168.2:1234\r\n" "\r\n")); + #ifdef HAVE_IPV6 run_http_request_parse(r, __LINE__, 400, "IPv6 address + SQL injection", CONST_STR_LEN("GET / HTTP/1.0\r\n" @@ -288,6 +293,7 @@ static void test_request_http_request_parse(request_st * const r) CONST_STR_LEN("GET / HTTP/1.0\r\n" "Host: [::1]/../../../\r\n" "\r\n")); + #endif run_http_request_parse(r, __LINE__, 400, "negative Content-Length", |