Bug #2333
closed$_SERVER['SERVER_NAME'] returns an incorrect value when using IPv6
Description
Problem:
$_SERVER['SERVER_NAME'] returns an incorrect value when using IPv6. i.e., when accessing a site at http://[2001:860:fc29:5000::1], $_SERVER['SERVER_NAME'] would contain "[2001".
Steps to Replicate:
1. Create this script:
<?php var_dump($_SERVER); ?>
2. Run the above script via IPv6.
Expected Result:
$_SERVER['SERVER_NAME'] should contain a valid IPv6 address.
Files
Updated by stbuehler about 13 years ago
- Target version set to 1.4.30
the bug is in the *cgi modules when they try to remove the port from the http_host var.
i'm not sure whether SERVER_NAME should wrap ipv6 addresses in [...]
Updated by simoncpu about 13 years ago
I don't have a working Apache setup right now, but it seems that they wrap IPv6 addresses in brackets too:
[[https://issues.apache.org/bugzilla/show_bug.cgi?id=26005]]
nginx, however, uses my machine's hostname if I don't set a server_name statement in the configuration.
Updated by stbuehler almost 13 years ago
- Target version changed from 1.4.30 to 1.4.x
Updated by simoncpu over 12 years ago
- File mod_fastcgi.c.patch mod_fastcgi.c.patch added
- File mod_cgi.c.patch mod_cgi.c.patch added
Attached are patches for mod_cgi.c and mod_fastcgi.c.
Updated by stbuehler over 12 years ago
- you can cat the patches into one file next time :)
- i think these patches fail when you use dns names, like "Host: lighttpd.net:443" - lighttpd.net has an IPv6 address, so the socket type could be IPv6, but there is no [...]:443. i'd say if the first (non white-space?) char is '[' then search for ']:', otherwise for ':'. (this also means we can test it easier, as this doesn't depend on the socket type, just on the Host: header)
- it would be very nice if you could add some test-cases for this, probably in the mod_fastcgi part.
Updated by simoncpu over 12 years ago
- File server_name.patch server_name.patch added
Updated by simoncpu over 12 years ago
- File server_name.patch server_name.patch added
Updated by simoncpu over 12 years ago
- File server_name.patch server_name.patch added
lighttpd patch, take 5 hehehe:
This has been tested with:
- 192.0.2.1
- 192.0.2.1:8080
- [2001:DB8::1]
- [2001:DB8::1]:8080
- example.org (both IPv4 and IPv6)
- example.org:8080 (both IPv4 and IPv6)
- with and without --disable-ipv6
Updated by stbuehler over 12 years ago
- Status changed from New to Fixed
- % Done changed from 0 to 100
Applied in changeset r2834.
Updated by stbuehler over 12 years ago
- Target version changed from 1.4.x to 1.4.31
Also available in: Atom