better handling of character encoding in Cache

This commit is contained in:
Graham Knop 2008-07-08 16:55:08 +00:00
parent 9f9f9aa572
commit 97f75c2a33

View file

@ -19,6 +19,8 @@ use File::Path;
use HTTP::Headers; use HTTP::Headers;
use HTTP::Request; use HTTP::Request;
use LWP::UserAgent; use LWP::UserAgent;
use Digest::MD5;
use Encode;
=head1 NAME =head1 NAME
@ -157,17 +159,16 @@ sub parseKey {
my $class = shift; my $class = shift;
my $key = shift; my $key = shift;
if (ref $key eq "ARRAY") { if (ref $key eq "ARRAY") {
my @parts = @{$key}; my @parts = @{ $key };
my @fixed; foreach my $part (@parts) {
foreach my $part (@parts) { $part = Digest::MD5::md5_base64(Encode::encode_utf8($part));
$part = Digest::MD5::md5_base64($part); $part =~ tr{/}{-};
$part =~ s/\//-/g; }
push(@fixed,$part); return join('/',@parts);
} }
return join('/',@fixed); else {
} else { $key = Digest::MD5::md5_base64(Encode::encode_utf8($key));
$key = Digest::MD5::md5_base64($key); $key =~ tr{/}{-};
$key =~ s/\//-/g;
return $key; return $key;
} }
} }
@ -234,14 +235,15 @@ sub setByHTTP {
my $referer = "http://webgui.http.request/".$self->session->env->get("SERVER_NAME").$self->session->env->get("REQUEST_URI"); my $referer = "http://webgui.http.request/".$self->session->env->get("SERVER_NAME").$self->session->env->get("REQUEST_URI");
chomp $referer; chomp $referer;
$header->referer($referer); $header->referer($referer);
my $request = new HTTP::Request (GET => $url, $header); my $request = HTTP::Request->new(GET => $url, $header);
my $response = $userAgent->request($request); my $response = $userAgent->request($request);
if ($response->is_error) { if ($response->is_error) {
$self->session->errorHandler->error($url." could not be retrieved."); $self->session->errorHandler->error($url." could not be retrieved.");
} else { }
$self->set($response->content,$ttl); else {
} $self->set($response->decoded_content,$ttl);
return $response->content; }
return $response->decoded_content;
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------