diff options
Diffstat (limited to 'networking/httpd.c')
-rw-r--r-- | networking/httpd.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/networking/httpd.c b/networking/httpd.c index a888c2424..e67e6bd64 100644 --- a/networking/httpd.c +++ b/networking/httpd.c | |||
@@ -598,7 +598,7 @@ static void parse_conf(const char *path, int flag) | |||
598 | ++p; /* so keep last character */ | 598 | ++p; /* so keep last character */ |
599 | } | 599 | } |
600 | *p = '\0'; | 600 | *p = '\0'; |
601 | sprintf(p0, "%s:%s", p0, c); | 601 | sprintf(p0 + strlen(p0), ":%s", c); |
602 | } | 602 | } |
603 | #endif | 603 | #endif |
604 | 604 | ||
@@ -1602,6 +1602,13 @@ static void handle_incoming_and_exit(const len_and_sockaddr *fromAddr) | |||
1602 | if (fromAddr->sa.sa_family == AF_INET) { | 1602 | if (fromAddr->sa.sa_family == AF_INET) { |
1603 | rmt_ip = ntohl(fromAddr->sin.sin_addr.s_addr); | 1603 | rmt_ip = ntohl(fromAddr->sin.sin_addr.s_addr); |
1604 | } | 1604 | } |
1605 | #if ENABLE_FEATURE_IPV6 | ||
1606 | if (fromAddr->sa.sa_family == AF_INET6 | ||
1607 | && fromAddr->sin6.sin6_addr.s6_addr32[0] == 0 | ||
1608 | && fromAddr->sin6.sin6_addr.s6_addr32[1] == 0 | ||
1609 | && ntohl(fromAddr->sin6.sin6_addr.s6_addr32[2]) == 0xffff) | ||
1610 | rmt_ip = ntohl(fromAddr->sin6.sin6_addr.s6_addr32[3]); | ||
1611 | #endif | ||
1605 | if (ENABLE_FEATURE_HTTPD_CGI || DEBUG || verbose) { | 1612 | if (ENABLE_FEATURE_HTTPD_CGI || DEBUG || verbose) { |
1606 | rmt_ip_str = xmalloc_sockaddr2dotted(&fromAddr->sa); | 1613 | rmt_ip_str = xmalloc_sockaddr2dotted(&fromAddr->sa); |
1607 | } | 1614 | } |