[Slim-Checkins] r12535 - /trunk/server/Slim/Networking/Async/HTTP.pm
adrian at svn.slimdevices.com
adrian at svn.slimdevices.com
Sun Aug 12 03:20:29 PDT 2007
Author: adrian
Date: Sun Aug 12 03:20:28 2007
New Revision: 12535
URL: http://svn.slimdevices.com?rev=12535&view=rev
Log:
Bug: N/A
Description: add cookie handling to asynchttp
Modified:
trunk/server/Slim/Networking/Async/HTTP.pm
Modified: trunk/server/Slim/Networking/Async/HTTP.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Networking/Async/HTTP.pm?rev=12535&r1=12534&r2=12535&view=diff
==============================================================================
--- trunk/server/Slim/Networking/Async/HTTP.pm (original)
+++ trunk/server/Slim/Networking/Async/HTTP.pm Sun Aug 12 03:20:28 2007
@@ -38,8 +38,10 @@
use HTTP::Headers;
use HTTP::Request;
use HTTP::Response;
+use HTTP::Cookies;
use MIME::Base64 qw(encode_base64);
use URI;
+use File::Spec::Functions qw(:ALL);
use Slim::Networking::Async::Socket::HTTP;
use Slim::Utils::Log;
@@ -48,6 +50,9 @@
use Slim::Utils::Timers;
my $prefs = preferences('server');
+
+my $cookieJar = HTTP::Cookies->new( file => catdir($prefs->get('cachedir'), 'cookies.dat'), autosave => 1 );
+
__PACKAGE__->mk_classaccessors( qw(
uri request response saveAs fh timeout
@@ -184,6 +189,14 @@
$headers->init_header( 'Cache-Control' => 'no-cache' );
$headers->init_header( Connection => 'close' );
$headers->init_header( 'Icy-Metadata' => 1 );
+
+ # Add cookies
+ $cookieJar->add_cookie_header( $self->request );
+}
+
+# allow people to access our cookie jar
+sub cookie_jar {
+ return $cookieJar;
}
sub _format_request {
@@ -295,6 +308,11 @@
# Save previous response
$self->response->previous( $previous );
+ $self->response->request( $self->request );
+
+ # Save cookies
+ $cookieJar->extract_cookies( $self->response );
+
if ( $log->is_debug ) {
$log->debug("Headers read. code: $code status: $mess");
More information about the checkins
mailing list