aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/Running_on_an_alternative_port_fails.mdwn
diff options
context:
space:
mode:
authorhttps://www.google.com/accounts/o8/id?id=AItOawlqWSY9PNYRysA9vrU-JiQh7-s7q6SOcIE <Fergus@web>2011-11-23 18:40:41 -0400
committeradmin <admin@branchable.com>2011-11-23 18:40:41 -0400
commit0ee337113e722c9fd6ef46dda5819a607ec1a9b6 (patch)
tree23ce9a1810d6c67c8e2603e31f17d99f475b3ea2 /doc/bugs/Running_on_an_alternative_port_fails.mdwn
parent4580662795788b83107d20943c77c7d4a6136a0a (diff)
downloadikiwiki-0ee337113e722c9fd6ef46dda5819a607ec1a9b6.tar
ikiwiki-0ee337113e722c9fd6ef46dda5819a607ec1a9b6.tar.gz
Bug identified in user's web server [closed]
Diffstat (limited to 'doc/bugs/Running_on_an_alternative_port_fails.mdwn')
-rw-r--r--doc/bugs/Running_on_an_alternative_port_fails.mdwn46
1 files changed, 16 insertions, 30 deletions
diff --git a/doc/bugs/Running_on_an_alternative_port_fails.mdwn b/doc/bugs/Running_on_an_alternative_port_fails.mdwn
index d091bf1fc..864c99fed 100644
--- a/doc/bugs/Running_on_an_alternative_port_fails.mdwn
+++ b/doc/bugs/Running_on_an_alternative_port_fails.mdwn
@@ -25,47 +25,33 @@ right.
>>> SERVER_PORT=8181
>>> HTTP_HOST=zippy0.ie0.cobbled.net
+[ ... ]
+
>>>> In apache, `HTTP_HOST` includes the port. This is not part of the CGI
>>>> spec it seems, but perl's `CGI` module seems to rely on it,
>>>> in `virtual_port`:
-<pre>
- my $vh = $self->http('x_forwarded_host') || $self->http('host');
- my $protocol = $self->protocol;
- if ($vh) {
- return ($vh =~ /:(\d+)$/)[0] || ($protocol eq 'https' ? 443 : 80);
-</pre>
+>>>>> my $vh = $self->http('x_forwarded_host') || $self->http('host');
+>>>>> my $protocol = $self->protocol;
+>>>>> if ($vh) {
+>>>>> return ($vh =~ /:(\d+)$/)[0] || ($protocol eq 'https' ? 443 : 80);
>>>> The `CGI` module only looks at `SERVER_PORT` when there's no
>>>> `HTTP_HOST`. So this is either a bug in perl's CGI or thttpd.
>>>> --[[Joey]]
->>> HTTP_ACCEPT_LANGUAGE=en-ie, en
->>> PATH=/usr/local/bin:/usr/ucb:/bin:/usr/bin
->>> SCRIPT_NAME=/cgi-bin/printenv.sh
->>> HTTP_USER_AGENT=Mozilla/5.0 (X11; U; Linux i686; en-ie) AppleWebKit/531.2+ (KHTML, like Gecko) Version/5.0 Safari/531.2+ Ubuntu/10.10 () Epiphany/2.30.2
->>> PWD=/home/http1/www/cgi-bin
->>> REQUEST_METHOD=GET
->>> SERVER_SOFTWARE=thttpd
->>> SERVER_NAME=zippy0
->>> SERVER_PROTOCOL=HTTP/1.1
->>> HTTP_ACCEPT_ENCODING=gzip
->>> GATEWAY_INTERFACE=CGI/1.1
->>> CGI_PATTERN=cgi-bin/*
->>> HTTP_COOKIE=ikiwiki_session_c%5E2%3Fsupport%3Dtrue=bdf13df0460966a607ba497967ea5ff4
->>> REMOTE_ADDR=10.0.0.1
->>> HTTP_ACCEPT=application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
-
->>Seems to be. Using version from packaging system;
+[ ... ]
->>> ikiwiki-3.20110905
+---
->> which I'd guess is from Sep. Will look for updates and post back if still
-wrong.
+>>>>> This is interesting. If HTTP_HOST is wrong then
->> Cheers
+>>>>> 0. the client header must be wrong (i.e. not including the PORT)
+>>>>> 0. `perl`'s doing something bad[tm] (or at least lazy)
+>>>>> 0. `apache` is adding it
+>>>>> 0. `thttpd` is stripping it
->> -- fergus
+>>>>> Quick hack shows that `thttpd` must be stripping the port
+number from the `Host:` header. That can be fixed.
->> PS: all the links generated by CGI pages omit the port; this works if i login first and then
-reset the server on the 'odd' port -- hovering over the links absolute links with the port missing.
+>>>>> Thanks for the assist. -- fergus