£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyʦ•ꎅȮFÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~芩ÊǍí`ÔÑ©ú뙵'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶êםӼ㞪éUWŸÈË%DÒÕ¬ï‘]/Åcx ‰ï2ß]ä6G[]S£Ôϯrs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ ¯¹ægƒÛowЍø^d™ý½ßB7áyMä9ÜÖUã !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! package Crypt::SSLeay::MainContext; # maintains a single instance of the Crypt::SSLeay::CTX class use strict; use Carp (); require Crypt::SSLeay::CTX; my $ctx = &main_ctx(); sub main_ctx { my $ssl_version = shift || 23; my $ctx = Crypt::SSLeay::CTX->new($ssl_version); $ctx->set_cipher_list($ENV{CRYPT_SSLEAY_CIPHER}) if $ENV{CRYPT_SSLEAY_CIPHER}; $ctx; } my %sub_cache = ('main_ctx' => \&main_ctx ); sub import { my $pkg = shift; my $callpkg = caller(); my @func = @_; for (@func) { s/^&//; Carp::croak("Can't export $_ from $pkg") if /\W/;; my $sub = $sub_cache{$_}; unless ($sub) { my $method = $_; $method =~ s/^main_ctx_//; # optional prefix $sub = $sub_cache{$_} = sub { $ctx->$method(@_) }; } no strict 'refs'; *{"${callpkg}::$_"} = $sub; } } 1;