Index: openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl,v diff -u -r1.113.2.1 -r1.113.2.2 --- openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl 27 Aug 2013 11:01:49 -0000 1.113.2.1 +++ openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl 3 Sep 2013 08:08:38 -0000 1.113.2.2 @@ -1300,16 +1300,18 @@ return 0 } peeraddr { - # Get the address provided by a reverse proxy such as NGINX via - # X-Forwarded-For, if available - set headers [ns_conn headers] - set i [ns_set find $headers "X-Forwarded-For"] - if {$i < 0 } { - # Use ns_conn - return [ns_conn $var] - } else { - return [ns_set value $headers $i] - } + if {[ns_config "ns/parameters" ReverseProxyMode false]} { + # Try to get the address provided by a + # reverse proxy such as NGINX via + # X-Forwarded-For, if available + set headers [ns_conn headers] + set i [ns_set ifind $headers "X-Forwarded-For"] + if {$i > -1 } { + return [ns_set value $headers $i] + } + } + # return the physical peer address + return [ns_conn $var] } default { return [ns_conn $var] Index: openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl,v diff -u -r1.133.2.2 -r1.133.2.3 --- openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl 29 Aug 2013 15:59:51 -0000 1.133.2.2 +++ openacs-4/packages/acs-tcl/tcl/utilities-procs.tcl 3 Sep 2013 08:07:24 -0000 1.133.2.3 @@ -2518,8 +2518,9 @@ } } - if { [ns_config "ns/parameters" ReverseProxyMode] == "true" } { - if { [ns_set iget [ad_conn headers] X-Forwarded-For] != "" && [ns_set iget [ad_conn headers] X-SSL-Request] == "1"} { + if { [ns_config "ns/parameters" ReverseProxyMode false] } { + if { [ns_set ifind [ad_conn headers] X-Forwarded-For] > -1 + && [ns_set iget [ad_conn headers] X-SSL-Request] == "1"} { set proto https } }