[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