LP#1449709: Always get a real hostname for the cache key
authorMike Rylander <mrylander@gmail.com>
Fri, 22 May 2015 17:11:18 +0000 (13:11 -0400)
committerBill Erickson <berickxx@gmail.com>
Wed, 10 Jun 2015 17:34:51 +0000 (13:34 -0400)
EGCatLoader overwrites $ctx->{hostname} when serving the staff client
version of TT-generated content.  This is bad for us because we use
that as part of the TT Processor cache key.  Instead, we'll just
always ask Apache, via $r.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGWeb.pm

index f2f6f40..da18d7e 100644 (file)
@@ -86,7 +86,7 @@ sub handler_guts {
     my $text_handler = set_text_handler($ctx, $r);
 
     my $processor_key = $as_xml ? 'xml:' : 'text:';                 # separate by XML strictness
-    $processor_key .= $ctx->{hostname}.':';                         # ... and vhost
+    $processor_key .= $r->hostname.':';                         # ... and vhost
     $processor_key .= $r->dir_config('OILSWebContextLoader').':';   # ... and context loader
     $processor_key .= $ctx->{locale};                               # ... and locale
     # NOTE: context loader and vhost together imply template path and debug template values
@@ -297,8 +297,8 @@ sub find_template {
     my $ext = $r->dir_config('OILSWebDefaultTemplateExtension');
     my $at_index = $r->dir_config('OILSWebStopAtIndex');
 
-    $vhost_path_cache{$ctx->{hostname}} ||= {};
-    my $path_cache = $vhost_path_cache{$ctx->{hostname}};
+    $vhost_path_cache{$r->hostname} ||= {};
+    my $path_cache = $vhost_path_cache{$r->hostname};
 
     my @parts = split('/', $path);
     my $localpath = $path;