richter     00/11/09 05:58:39

  Modified:    .        epmain.c test.pl
               Embperl  Session.pm
  Log:
  Sessionmanagement
  
  Revision  Changes    Path
  1.84      +3 -0      embperl/epmain.c
  
  Index: epmain.c
  ===================================================================
  RCS file: /home/cvs/embperl/epmain.c,v
  retrieving revision 1.83
  retrieving revision 1.84
  diff -u -r1.83 -r1.84
  --- epmain.c  2000/11/09 08:03:14     1.83
  +++ epmain.c  2000/11/09 13:58:37     1.84
  @@ -2595,6 +2595,9 @@
                    PUTBACK;
                    }
                
  +             if (r -> bDebug & dbgSession)  
  +                 lprintf (r, "[%d]SES:  Received Cookie ID: %s  New Cookie ID: 
%s\n", r -> nPid, pInitialUID, pUID) ; 
  +
                if (ilen > 0 && ulen == 0)
                    { /* delete cookie */
                    pCookie = newSVpvf ("%s=; expires=Thu, 1-Jan-1970 00:00:01 
GMT%s%s%s%s",  r -> pConf -> sCookieName, 
  
  
  
  1.79      +34 -12    embperl/test.pl
  
  Index: test.pl
  ===================================================================
  RCS file: /home/cvs/embperl/test.pl,v
  retrieving revision 1.78
  retrieving revision 1.79
  diff -u -r1.78 -r1.79
  --- test.pl   2000/11/09 08:03:15     1.78
  +++ test.pl   2000/11/09 13:58:37     1.79
  @@ -306,63 +306,80 @@
           },
       'mdatsess.htm' => { 
           'offline'    => 0,
  -        'query_info' => 'cnt=0',
  +        'query_info' => 'cnt=0',
  +        'cookie'     => 'expectno',
           },
       'setsess.htm' => { 
           'offline'    => 0,
           'query_info' => 'a=1',
  +        'cookie'     => 'expectnew',
           },
       'mdatsess.htm' => { 
           'offline'    => 0,
           'query_info' => 'cnt=1',
  +        'cookie'     => 'expectno',
           },
       'getnosess.htm' => { 
           'offline'    => 0,
           'query_info' => 'nocookie=2',
  +        'cookie'     => 'expectnew,nocookie',
           },
       'mdatsess.htm' => { 
           'offline'    => 0,
           'query_info' => 'cnt=2',
  +        'cookie'     => 'expectno',
           },
       'getsess.htm' => {
           'offline'    => 0,
  +        'cookie'     => 'expectno',
           },
       'mdatsess.htm' => { 
           'offline'    => 0,
           'query_info' => 'cnt=3',
  +        'cookie'     => 'expectno',
           },
       'execgetsess.htm' => {
           'offline'    => 0,
  +        'cookie'     => 'expectno',
           },
       'registry/reggetsess.htm' => { 
           'modperl'    => 1,
           'cgi'        => 0,
  +        'cookie'     => 'expectno',
           },
       'getsess.htm' => {
           'offline'    => 0,
  +        'cookie'     => 'expectno',
           },
       'delwrsess.htm' => { 
           'offline'    => 0,
  +        'cookie'     => 'expectnew',
           },
       'getsess.htm' => {
           'offline'    => 0,
  +        'cookie'     => 'expectno',
           },
       'delsess.htm' => { 
           'offline'    => 0,
  +        'cookie'     => 'expectno',
           },
       'getdelsess.htm' => { 
           'offline'    => 0,
  +        'cookie'     => 'expectno',
           },
       'clearsess.htm' => {
           'offline'    => 0,
  +        'cookie'     => 'expectno',
           },
       'setbadsess.htm' => { 
           'offline'    => 0,
  -        'query_info' => 'val=2&cookie=/etc/passwd',
  +        'query_info' => 'val=2',
  +        'cookie'     => 'expectnew,cookie=/etc/passwd',
           },
       'setunknownsess.htm' => { 
           'offline'    => 0,
  -        'query_info' => 'val=3&cookie=1234567890abcdefABCDEF',
  +        'query_info' => 'val=3',
  +        'cookie'     => 'expectnew,cookie=1234567890abcdefABCDEF',
           },
       'EmbperlObject/epopage1.htm' => {
           'offline'    => 0,
  @@ -735,10 +752,11 @@
   sub REQ
   
       {
  -    my ($loc, $file, $query, $ofile, $content, $upload) = @_ ;
  +    my ($loc, $file, $query, $ofile, $content, $upload, $cookieaction) = @_ ;
        
       eval 'require LWP::UserAgent' ;
       
  +    $cookieaction |= '' ;
   
       if ($@)
        {
  @@ -757,21 +775,22 @@
       my $ua = new LWP::UserAgent;    # create a useragent to test
   
       my($request,$response,$url);
  -    my $cookiesend  ;
  +    my $sendcookie = '' ;
   
       if (!$upload)
        {
        $url = new URI::URL("http://$host:$port/$loc/$file?$query");
   
        $request = new HTTP::Request($content?'POST':'GET', $url);
  -        if ($query =~ /cookie=(.*?)$/)
  +        if ($cookieaction =~ /cookie=(.*?)$/)
               {
               $request -> header ('Cookie' => $1) ;
  -            $cookiesend = $1 ;
  +            $sendcookie = $1 ;
               }
  -        else
  +        elsif ($cookie && !($cookieaction =~ /nocookie/)) 
               {             
  -            $request -> header ('Cookie' => $cookie) if ($cookie && !($query =~ 
/nocookie/)) ;
  +            $request -> header ('Cookie' => $cookie) ;
  +            $sendcookie = $cookie ;
               }
           
        $request -> content ($content) if ($content) ;
  @@ -801,9 +820,12 @@
       my $c = $response -> header ('Set-Cookie') || '' ;
       $cookie = $c if (!$cookie && ($c =~ /EMBPERL_UID/)) ;  
       $cookie = undef if (($c =~ /EMBPERL_UID=;/)) ;  
  -    #print "Got Cookie $cookie\n" ;
   
  -    print "Expected new cookie: Send $sendcookie, Got: $cookie\n" if ($sendcookie 
&& $sendcookie eq $cookie) ;
  +    $sendcookie ||= '' ;
  +    #print "\nSend: $sendcookie, Got: " , ($c||''), "\n" ;
  +    print "\nExpected new cookie:  Send: $sendcookie, Got: " , ($c||''), "\n" if 
(($cookieaction =~ /expectnew/) && $sendcookie eq $c) ;
  +    print "\nExpected same cookie: Send: $sendcookie, Got: " , ($c||''), "\n" if 
(($cookieaction =~ /expectsame/) && $sendcookie ne $c) ;
  +    print "\nExpected no cookie:   Send: $sendcookie, Got: " , ($c||''), "\n" if 
(($cookieaction =~ /expectno/) && $c) ;
       
       #print $response -> headers -> as_string () ;
   
  @@ -1585,7 +1607,7 @@
                }
            else
                {                               
  -             $m = REQ ("$loc$locver", $file, $test -> {query_info}, $outfile, 
$content, $upload) ;
  +             $m = REQ ("$loc$locver", $file, $test -> {query_info}, $outfile, 
$content, $upload, $test -> {cookie}) ;
                }
            $t_req += HTML::Embperl::Clock () - $t1 ; 
   
  
  
  
  1.7       +7 -1      embperl/Embperl/Session.pm
  
  Index: Session.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Session.pm,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Session.pm        2000/11/09 08:03:15     1.6
  +++ Session.pm        2000/11/09 13:58:39     1.7
  @@ -239,6 +239,8 @@
   
       my $session_id = $self->{data}->{_session_id} ;
   
  +    $self->{initial_session_id} = $session_id ;
  +
       $self->populate;
   
       if (defined $session_id  && $session_id) 
  @@ -289,6 +291,8 @@
           $self->save;
           }
       
  +    #warn "Session INIT $self->{initial_session_id};$self->{data}->{_session_id};" 
;
  +
       return $self;
       }
   
  @@ -375,6 +379,7 @@
       {
       my $self = shift;
       
  +    $self->{initial_session_id} = undef ;
       if (!$self -> {'status'})
        {
        $self->{data} = {} ;
  @@ -401,7 +406,8 @@
       my $self = shift;
   
       $self->{'status'} = 0 ;
  -    $self->{data}->{_session_id} = shift ;
  +    $self->{data}->{_session_id} = $self->{initial_session_id} = shift ;
  +
   }
   
   sub getid {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to