1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
--- libhttpd.c.orig 2003-12-25 20:06:05.000000000 +0100
+++ libhttpd.c 2005-01-09 00:26:04.867255248 +0100
@@ -2207,6 +2207,18 @@
if ( strcasecmp( cp, "keep-alive" ) == 0 )
hc->keep_alive = 1;
}
+ else if ( strncasecmp( buf, "X-Forwarded-For:", 16 ) == 0 )
+ { // Use real IP if available
+ cp = &buf[16];
+ cp += strspn( cp, " \t" );
+#ifdef USE_IPV6
+ if (strchr(cp, '.') == NULL)
+ inet_pton( AF_INET6, cp,
+ &(hc->client_addr.sa_in6.sin6_addr) );
+ else
+#endif
+ inet_aton( cp, &(hc->client_addr.sa_in.sin_addr) );
+ }
#ifdef LOG_UNKNOWN_HEADERS
else if ( strncasecmp( buf, "Accept-Charset:", 15 ) == 0 ||
strncasecmp( buf, "Accept-Language:", 16 ) == 0 ||
|