Hello community, here is the log from the commit of package perl-IO-Socket-SSL checked in at Fri Mar 30 16:31:32 CEST 2007. -------- --- perl-IO-Socket-SSL/perl-IO-Socket-SSL.changes 2007-03-07 11:01:06.000000000 +0100 +++ /mounts/work_src_done/STABLE/perl-IO-Socket-SSL/perl-IO-Socket-SSL.changes 2007-03-30 16:11:15.000000000 +0200 @@ -1,0 +2,7 @@ +Fri Mar 30 16:02:45 CEST 2007 - anicka@suse.cz + +- update to 1.04 + * added way to create SSL object with predefined session + cache + +------------------------------------------------------------------- Old: ---- IO-Socket-SSL-1.03-store_set_flags.diff IO-Socket-SSL-1.03.tar.bz2 New: ---- IO-Socket-SSL-1.04-store_set_flags.diff IO-Socket-SSL-1.04.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-IO-Socket-SSL.spec ++++++ --- /var/tmp/diff_new_pack.L29186/_old 2007-03-30 16:31:24.000000000 +0200 +++ /var/tmp/diff_new_pack.L29186/_new 2007-03-30 16:31:24.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package perl-IO-Socket-SSL (Version 1.03) +# spec file for package perl-IO-Socket-SSL (Version 1.04) # # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -12,7 +12,7 @@ Name: perl-IO-Socket-SSL BuildRequires: perl-Net_SSLeay perl-libwww-perl -Version: 1.03 +Version: 1.04 Release: 1 Provides: p_iossl Obsoletes: p_iossl @@ -64,6 +64,10 @@ /var/adm/perl-modules/%{name} %changelog +* Fri Mar 30 2007 - anicka@suse.cz +- update to 1.04 + * added way to create SSL object with predefined session + cache * Wed Mar 07 2007 - anicka@suse.cz - update to 1.03 * add CLONE_SKIP ++++++ IO-Socket-SSL-1.03-store_set_flags.diff -> IO-Socket-SSL-1.04-store_set_flags.diff ++++++ ++++++ IO-Socket-SSL-1.03.tar.bz2 -> IO-Socket-SSL-1.04.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/IO-Socket-SSL-1.03/Changes new/IO-Socket-SSL-1.04/Changes --- old/IO-Socket-SSL-1.03/Changes 2007-03-06 19:06:50.000000000 +0100 +++ new/IO-Socket-SSL-1.04/Changes 2007-03-28 21:05:20.000000000 +0200 @@ -1,3 +1,11 @@ +v1.04 + - added way to create SSL object with predefined session + cache, thus making it possible to share the cache between + objects even if the rest of the context is not shared + key SSL_session_cache + Note that the arguments of IO::Socket::SSL::SessionCache::new + changed (but you should never have used this class directly + because it's internal to IO::Socket::SSL) v1.03 - add CLONE_SKIP as proposed by Jarrod Johnson jbjohnso at us dot ibm dot com diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/IO-Socket-SSL-1.03/SSL.pm new/IO-Socket-SSL-1.04/SSL.pm --- old/IO-Socket-SSL-1.03/SSL.pm 2007-03-06 19:05:11.000000000 +0100 +++ new/IO-Socket-SSL-1.04/SSL.pm 2007-03-28 21:00:07.000000000 +0200 @@ -41,7 +41,7 @@ BEGIN { # Declare @ISA, $VERSION, $GLOBAL_CONTEXT_ARGS @ISA = qw(IO::Socket::INET); - $VERSION = '1.03'; + $VERSION = '1.04'; $GLOBAL_CONTEXT_ARGS = {}; #Make $DEBUG another name for $Net::SSLeay::trace @@ -716,6 +716,10 @@ $GLOBAL_CONTEXT_ARGS->{'SSL_reuse_ctx'} = shift; } +sub set_default_session_cache { + $GLOBAL_CONTEXT_ARGS->{SSL_session_cache} = shift; +} + sub opened { my $self = shift; @@ -921,13 +925,13 @@ Net::SSLeay::CTX_set_verify($ctx, $verify_mode, $verify_callback); $ctx_object = { context => $ctx }; - if ($arg_hash->{'SSL_session_cache_size'}) { - if ($Net::SSLeay::VERSION < 1.26) { - return IO::Socket::SSL->error("Session caches not supported for Net::SSLeay < v1.26"); - } else { - $ctx_object->{'session_cache'} = - IO::Socket::SSL::Session_Cache->new($arg_hash) || undef; - } + if ( my $cache = $arg_hash->{SSL_session_cache} ) { + # use predefined cache + $ctx_object->{session_cache} = $cache + } elsif ( my $size = $arg_hash->{SSL_session_cache_size}) { + return IO::Socket::SSL->error("Session caches not supported for Net::SSLeay < v1.26") + if $Net::SSLeay::VERSION < 1.26; + $ctx_object->{session_cache} = IO::Socket::SSL::Session_Cache->new( $size ); } return bless $ctx_object, $class; @@ -936,19 +940,16 @@ sub session_cache { my $ctx = shift; - my $cache = $ctx->{'session_cache'}; - return unless defined $cache; - my ($addr, $port) = (shift, shift); + my $cache = $ctx->{'session_cache'} || return; + my ($addr,$port,$session) = @_; my $key = "$addr:$port"; - my $session = shift; - - return (defined($session) ? $cache->add_session($key, $session) - : $cache->get_session($key)); + return defined($session) + ? $cache->add_session($key, $session) + : $cache->get_session($key); } sub has_session_cache { - my $ctx = shift; - return (defined $ctx->{'session_cache'}); + return defined shift->{session_cache}; } @@ -965,10 +966,9 @@ sub CLONE_SKIP { 1 } sub new { - my ($class, $arg_hash) = @_; - my $cache = { _maxsize => $arg_hash->{'SSL_session_cache_size'}}; - return unless ($cache->{_maxsize} > 0); - return bless $cache, $class; + my ($class, $size) = @_; + $size>0 or return; + return bless { _maxsize => $size }, $class; } @@ -987,12 +987,11 @@ sub add_session { my ($self, $key, $val) = @_; - return if ($key eq '_maxsize' or $key eq '_head'); if ((keys %$self) > $self->{'_maxsize'} + 1) { my $last = $self->{'_head'}->{prev}; - &Net::SSLeay::SESSION_free($last->{session}); + Net::SSLeay::SESSION_free($last->{session}); delete($self->{$last->{key}}); $self->{'_head'}->{prev} = $self->{'_head'}->{prev}->{prev}; delete($self->{'_head'}) if ($self->{'_maxsize'} == 1); @@ -1211,6 +1210,18 @@ stored at one time; the oldest sessions in the cache will be removed if new ones are added. +=item SSL_session_cache + +Specifies session cache object which should be used instead of creating a new. +Overrules SSL_session_cache_size. +This option is useful if you wan't to reuse the cache, but not the rest of +the context. + +A session cache object can be created using +C<< IO::Socket::SSL::Session_Cache->new( cachesize ) >>. + +Use set_default_session_cache() to set a global cache object. + =item SSL_error_trap When using the accept() or connect() methods, it may be the case that the @@ -1325,6 +1336,16 @@ the SSL_reuse_ctx option of new() for more details. Note that this sets the default context globally, so use with caution (esp. in mod_perl scripts). +=item B<IO::Socket::SSL::set_default_session_cache(...)> + +You may use this to make IO::Socket::SSL automatically re-use a given session cache +(unless specifically overridden in a call to new()). It accepts one argument, which should +be an IO::Socket::SSL::SessionCache object or similar (e.g something which implements +get_session and set_session like IO::Socket::SSL::SessionCache does). +See the SSL_session_cache option of new() for more details. Note that this sets the default +cache globally, so use with caution. + + =back The following methods are unsupported (not to mention futile!) and IO::Socket::SSL ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de