richter     02/02/27 00:19:44

  Modified:    .        Tag: Embperl2c Embperl.pm embperl.h epapinit.c
                        epcgiinit.c epeval.c epinit.c epmain.c eputil.c
                        test.pl
               Embperl  Tag: Embperl2c Util.pm
               Embperl/Syntax Tag: Embperl2c EmbperlBlocks.pm
               test/cmp Tag: Embperl2c delrdsess.htm delsess.htm
                        delwrsess.htm execgetsess.htm getbsess.htm
                        getdelsess.htm getsess.htm input.htm seturlsess.htm
               test/cmp2 Tag: Embperl2c input.htm
               test/conf Tag: Embperl2c httpd.conf.src
               test/html Tag: Embperl2c delrdsess.htm delsess.htm
                        delwrsess.htm getdelsess.htm getnosess.htm
                        getsess.htm input.htm setsess.htm
               xsbuilder/maps Tag: Embperl2c ep_structure.map
  Log:
  session handling
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.118.4.90 +10 -74    embperl/Embperl.pm
  
  Index: Embperl.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl.pm,v
  retrieving revision 1.118.4.89
  retrieving revision 1.118.4.90
  diff -u -r1.118.4.89 -r1.118.4.90
  --- Embperl.pm        26 Feb 2002 08:48:42 -0000      1.118.4.89
  +++ Embperl.pm        27 Feb 2002 08:19:40 -0000      1.118.4.90
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: Embperl.pm,v 1.118.4.89 2002/02/26 08:48:42 richter Exp $
  +#   $Id: Embperl.pm,v 1.118.4.90 2002/02/27 08:19:40 richter Exp $
   #
   ###################################################################################
   
  @@ -364,39 +364,7 @@
   sub SetupSession
   
       {
  -    my $r ;
  -    $r = shift if (!(ref ($_[0]) =~ /^Apache/)) ;
  -    my ($req_rec, $Inputfile) = @_ ;
  -    local $^W = 0 ;
  -
  -    if ($Embperl::SessionMgnt && (!defined ($r) || !$r -> SubReq))
  -     {
  -     my $udat = tied(%Embperl::udat) ;
  -     my $mdat = tied(%Embperl::mdat) ;
  -     my $sdat = tied(%Embperl::sdat) ;
  -     my $cookie_name = $r?$r -> CookieName:$ENV{EMBPERL_COOKIE_NAME} || 
'EMBPERL_UID' ;
  -        my $cookie_val  = $ENV{HTTP_COOKIE} || 
($req_rec?$req_rec->header_in('Cookie'):undef) ;
  -
  -     if ((defined ($cookie_val) && ($cookie_val =~ /$cookie_name=(.*?)(\;|\s|$)/)) 
|| ($ENV{QUERY_STRING} =~ /$cookie_name=.*?:(.*?)(\;|\s|&|$)/) || $ENV{EMBPERL_UID} )
  -         {
  -         print Embperl::LOG "[$$]SES:  Received user session id $1\n" if 
($Embperl::dbgSession) ;
  -         $udat -> setid ($1) if (!$udat -> getid) ;
  -            }
  -
  -     $mdat -> setidfrom ($Inputfile) if ($Inputfile && !$mdat -> getid) ;
  -
  -     if (($ENV{QUERY_STRING} =~ /${cookie_name}=(.*?)(\;|\s|&|:|$)/))
  -         {
  -         print Embperl::LOG "[$$]SES:  Received state session id $1\n" if 
($Embperl::dbgSession) ;
  -         $sdat -> setid ($1) if (!$sdat -> getid) ;
  -            }
  -     }
  -    else
  -        {
  -        return undef ; # No session Management
  -        }
  -
  -    return wantarray?(\%Embperl::udat, \%Embperl::mdat, 
\%Embperl::sdat):\%Embperl::udat ;
  +    die "SetupSession Not implemented yet in 2.0" ;
       }
   
   
#######################################################################################
  @@ -404,11 +372,11 @@
   sub GetSession
   
       {
  -    if ($Embperl::SessionMgnt)
  -     {
  -     my $udat = tied(%Embperl::udat) ;
  +    my $r = shift || Embperl::CurrReq () ;
   
  -        return wantarray?(\%Embperl::udat, \%Embperl::mdat, 
\%Embperl::sdat):\%Embperl::udat ;
  +    if ($r -> session_mgnt)
  +     {
  +        return wantarray?($r -> app -> udat, $r -> app -> mdat, $r -> app -> 
sdat):$r -> app -> udat ;
        }
       else
           {
  @@ -424,7 +392,7 @@
       my $r = shift || Embperl::CurrReq () ;
       my $disabledelete = shift ;
   
  -    my $udat = tied (%Embperl::udat) ;
  +    my $udat = $r -> app -> user_session ;
       if (!$disabledelete)  # Delete session data
           {
           $udat -> delete  ;
  @@ -445,7 +413,7 @@
       {
       my $r = shift || Embperl::CurrReq () ;
   
  -    $r -> SessionMgnt ($Embperl::SessionMgnt | 4) ; # resend cookie 
  +    $r -> session_mgnt ($r -> session_mgnt | 4) if ($r -> session_mgnt) ; # resend 
cookie 
       }
   
   
#######################################################################################
  @@ -453,19 +421,7 @@
   sub CleanupSession
   
       {
  -    my $r = shift ;
  -    $r = Embperl::CurrReq () if (!(ref ($r) =~ /^Embperl/));
  -
  -    if ($Embperl::SessionMgnt && (!defined ($r) || !$r -> SubReq))
  -     {
  -     my $udat = tied(%Embperl::udat) ;
  -     my $mdat = tied(%Embperl::mdat) ;
  -     my $sdat = tied(%Embperl::sdat) ;
  -
  -     $udat -> cleanup ;
  -     $mdat -> cleanup ;
  -     $sdat -> cleanup ;
  -     }
  +    die "CleanupSession Not implemented yet in 2.0" ;
       }
   
   
  @@ -474,28 +430,8 @@
   sub SetSessionCookie
   
       {
  -    my $r = shift ;
  -    $r = undef if (!(ref ($r) =~ /^Embperl/));
  -
  -    if ($Embperl::SessionMgnt)
  -        {
  -        my $udat   = tied (%Embperl::udat) ;
  -        my ($initialid, $id, $modified)  = $udat -> getids ;
  -        
  -        my $name   = $ENV{EMBPERL_COOKIE_NAME} || 'EMBPERL_UID' ;
  -        my $domain = "; domain=$ENV{EMBPERL_COOKIE_DOMAIN}" if (exists 
($ENV{EMBPERL_COOKIE_DOMAIN})) ;
  -        my $path   = "; path=$ENV{EMBPERL_COOKIE_PATH}" if (exists 
($ENV{EMBPERL_COOKIE_PATH})) ;
  -        my $expires = "; expires=$ENV{EMBPERL_COOKIE_EXPIRES}" if (exists 
($ENV{EMBPERL_COOKIE_EXPIRES})) ;
  -                        
  -        if ($id || $initialid)
  -            {    
  -            Apache -> request -> header_out ("Set-Cookie" => 
"$name=$id$domain$path$expires") ;
  -            }
  -        }
  +    die "SetSessionCookie Not implemented yet in 2.0" ;
       }
  -
  -
  -
   
   
   
  
  
  
  1.19.4.21 +4 -4      embperl/embperl.h
  
  Index: embperl.h
  ===================================================================
  RCS file: /home/cvs/embperl/embperl.h,v
  retrieving revision 1.19.4.20
  retrieving revision 1.19.4.21
  diff -u -r1.19.4.20 -r1.19.4.21
  --- embperl.h 26 Feb 2002 20:14:42 -0000      1.19.4.20
  +++ embperl.h 27 Feb 2002 08:19:41 -0000      1.19.4.21
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: embperl.h,v 1.19.4.20 2002/02/26 20:14:42 richter Exp $
  +#   $Id: embperl.h,v 1.19.4.21 2002/02/27 08:19:41 richter Exp $
   #
   
###################################################################################*/
   
  @@ -221,9 +221,9 @@
       smodeUDatParam  = 2,
       smodeUDatUrl    = 4,
   
  -    smodeSDatCookie = 0x11,
  -    smodeSDatParam  = 0x12,
  -    smodeSDatUrl    = 0x14,
  +    smodeSDatCookie = 0x10,
  +    smodeSDatParam  = 0x20,
  +    smodeSDatUrl    = 0x40,
       } ;
   
   #define smodeStd smodeUDatCookie 
  
  
  
  1.1.2.22  +2 -2      embperl/epapinit.c
  
  Index: epapinit.c
  ===================================================================
  RCS file: /home/cvs/embperl/epapinit.c,v
  retrieving revision 1.1.2.21
  retrieving revision 1.1.2.22
  diff -u -r1.1.2.21 -r1.1.2.22
  --- epapinit.c        26 Feb 2002 20:14:42 -0000      1.1.2.21
  +++ epapinit.c        27 Feb 2002 08:19:41 -0000      1.1.2.22
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epapinit.c,v 1.1.2.21 2002/02/26 20:14:42 richter Exp $
  +#   $Id: epapinit.c,v 1.1.2.22 2002/02/27 08:19:41 richter Exp $
   #
   
###################################################################################*/
   
  @@ -336,7 +336,7 @@
   #define EPCFG_INT(STRUCT,TYPE,NAME,CFGNAME) \
   char * embperl_Apache_Config_##STRUCT##NAME (cmd_parms *cmd, tApacheDirConfig * 
pDirCfg, char * arg) \
       { \
  -    pDirCfg -> STRUCT.NAME = atoi(arg) ; \
  +    pDirCfg -> STRUCT.NAME = (TYPE)strtol(arg, NULL, 0) ; \
       pDirCfg -> set_##STRUCT##NAME = 1 ; \
       return NULL; \
       } 
  
  
  
  1.1.2.13  +8 -4      embperl/Attic/epcgiinit.c
  
  Index: epcgiinit.c
  ===================================================================
  RCS file: /home/cvs/embperl/Attic/epcgiinit.c,v
  retrieving revision 1.1.2.12
  retrieving revision 1.1.2.13
  diff -u -r1.1.2.12 -r1.1.2.13
  --- epcgiinit.c       26 Feb 2002 20:14:42 -0000      1.1.2.12
  +++ epcgiinit.c       27 Feb 2002 08:19:41 -0000      1.1.2.13
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epcgiinit.c,v 1.1.2.12 2002/02/26 20:14:42 richter Exp $
  +#   $Id: epcgiinit.c,v 1.1.2.13 2002/02/27 08:19:41 richter Exp $
   #
   
###################################################################################*/
   
  @@ -20,10 +20,14 @@
   
   #undef EPCFG
   #define EPCFG_INT(STRUCT,TYPE,NAME,CFGNAME) \
  +    { \
  +    char * p ; \
       tainted = 0 ; \
  -    pConfig -> NAME   = (TYPE)GetHashValueInt (aTHX_  pThread -> pEnvHash, 
"EMBPERL_"#CFGNAME, pConfig -> NAME) ; \
  -    tainted = 0 ; 
  -
  +    p = GetHashValueStr (aTHX_  pThread -> pEnvHash, "EMBPERL_"#CFGNAME, NULL) ; \
  +    if (p) \
  +        pConfig -> NAME   = (TYPE)strtol (p, NULL, 0) ; \
  +    tainted = 0 ; \
  +    }
   
   #undef EPCFG_BOOL
   #define EPCFG_BOOL(STRUCT,TYPE,NAME,CFGNAME) \
  
  
  
  1.23.4.23 +2 -1      embperl/epeval.c
  
  Index: epeval.c
  ===================================================================
  RCS file: /home/cvs/embperl/epeval.c,v
  retrieving revision 1.23.4.22
  retrieving revision 1.23.4.23
  diff -u -r1.23.4.22 -r1.23.4.23
  --- epeval.c  26 Feb 2002 08:48:42 -0000      1.23.4.22
  +++ epeval.c  27 Feb 2002 08:19:41 -0000      1.23.4.23
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epeval.c,v 1.23.4.22 2002/02/26 08:48:42 richter Exp $
  +#   $Id: epeval.c,v 1.23.4.23 2002/02/27 08:19:41 richter Exp $
   #
   
###################################################################################*/
   
  @@ -250,6 +250,7 @@
       
       tainted = 0 ;
       pSV = newSVpvf ("package Embperl::Regex ; sub { $_[0] %c~ m{%s} }", c, sRegex) ;
  +    newSVpvf2(pSV) ;
   
       /* perl_eval_pv seems to be broken in 5.005_03!! */
       /* p = SvPV(pSV, l) ; */
  
  
  
  1.1.2.31  +62 -35    embperl/Attic/epinit.c
  
  Index: epinit.c
  ===================================================================
  RCS file: /home/cvs/embperl/Attic/epinit.c,v
  retrieving revision 1.1.2.30
  retrieving revision 1.1.2.31
  diff -u -r1.1.2.30 -r1.1.2.31
  --- epinit.c  26 Feb 2002 20:14:42 -0000      1.1.2.30
  +++ epinit.c  27 Feb 2002 08:19:41 -0000      1.1.2.31
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epinit.c,v 1.1.2.30 2002/02/26 20:14:42 richter Exp $
  +#   $Id: epinit.c,v 1.1.2.31 2002/02/27 08:19:41 richter Exp $
   #
   
###################################################################################*/
   
  @@ -204,6 +204,7 @@
       pCfg -> sAppName    = "Embperl" ;
       pCfg -> sCookieName = "EMBPERL_UID" ;
       pCfg -> sSessionHandlerClass = "Apache::SessionX" ;
  +    pCfg -> nSessionMode = smodeUDatCookie ;
   #ifdef WIN32
       pCfg -> sLog        = "\\embperl.log" ;
   #else
  @@ -244,11 +245,17 @@
       tAppConfig * pCfg = &a -> Config ;
       char *       sPackage = pCfg -> sSessionHandlerClass ;
       HV * pHash = newHV () ;
  -    SV * pTie  = newRV_noinc((SV *)newHV()) ;
  +    SV * pTie  ;
       int n ;
  +    SV * pSVCode ;
  +
  +    pSVCode = newSVpvf ("require %s", sPackage) ; 
  +    newSVpvf2(pSVCode) ;
  +    /* there is no c api to the require function, eval it... */
  +    perl_eval_sv(pSVCode, G_EVAL) ;
  +    SvREFCNT_dec(pSVCode);
  +    tainted = 0 ;
   
  -    /*
  -    perl_require_pv (sPackage) ;
       if (SvTRUE (ERRSV))
        {
           STRLEN l ;
  @@ -256,9 +263,7 @@
           sv_setpv(ERRSV,"");
           return rcEvalErr ;
           }
  -    */
   
  -    hv_magic(pHash, (GV *)pTie, 'P') ;
       PUSHMARK(sp);
       XPUSHs(sv_2mortal(newSVpv(sPackage, 0))); 
       XPUSHs(&sv_undef); /* id */ 
  @@ -272,13 +277,16 @@
           sv_setpv(ERRSV,"");
           return rcEvalErr ;
           }
  +    SPAGAIN;
       if (n > 0)
           pTie = POPs ;
  +    PUTBACK;
       if (n == 0 || !SvROK(pTie))
           {
           LogErrorParam (a, rcNotHashRef, "Session handling", sPackage) ;
           return rcNotHashRef ;
           }
  +    hv_magic(pHash, (GV *)pTie, 'P') ;
   
       *ppHash = pHash ;
       *ppObj  = pTie ;
  @@ -324,6 +332,7 @@
       HV *  pArgs1 ;
       HV *  pArgs2 ;
       HV *  pArgs3 ;
  +    dSP ;
   
       if (!pArgs)
           pCfg ->  pSessionArgs = pArgs = newHV() ;
  @@ -331,27 +340,27 @@
       if (pCfg ->  pSessionClasses)
           {
           if ((ppStore = av_fetch (pCfg ->  pSessionClasses, 0, 0)))
  -            pStore = *ppStore ;
  -        if (!pStore)
  -            pStore = sv_2mortal(newSVpv("File", 4)) ;
  +            pStore = SvREFCNT_inc(*ppStore) ;
  +        else
  +            pStore = newSVpv("File", 4) ;
           hv_store (pArgs, "Store", 5, pStore, 0) ;
   
           if ((ppLocker = av_fetch (pCfg ->  pSessionClasses, 1, 0)))
  -            pLocker = *ppLocker ;
  -        if (!pLocker)
  -            pLocker = sv_2mortal(newSVpv("Null", 4)) ;
  -        hv_store (pArgs, "Locker", 6, pLocker, 0) ;
  +            pLocker = SvREFCNT_inc(*ppLocker) ;
  +        else
  +            pLocker = newSVpv("Null", 4) ;
  +        hv_store (pArgs, "Lock", 4, pLocker, 0) ;
   
           if ((ppSerializer = av_fetch (pCfg ->  pSessionClasses, 2, 0)))
  -            pSerializer = *ppSerializer ;
  -        if (!pSerializer)
  -            pSerializer = sv_2mortal(newSVpv("Storable", 8)) ;
  +            pSerializer = SvREFCNT_inc(*ppSerializer) ;
  +        else
  +            pSerializer = newSVpv("Storable", 8) ;
           hv_store (pArgs, "Serialize", 9, pSerializer, 0) ;
   
           if ((ppGenerator = av_fetch (pCfg ->  pSessionClasses, 3, 0)))
  -            pGenerator = *ppGenerator ;
  -        if (!pGenerator)
  -            pGenerator = sv_2mortal(newSVpv("MD5", 3)) ;
  +            pGenerator = SvREFCNT_inc(*ppGenerator) ;
  +        else
  +            pGenerator = newSVpv("MD5", 3) ;
           hv_store (pArgs, "Generate", 8, pGenerator, 0) ;
           }
   
  @@ -367,6 +376,12 @@
       if ((rc = embperl_CreateSessionObject (a, pArgs1, &a -> pAppHash, &a -> 
pAppObj)) != ok)
           return rc ;
   
  +    PUSHMARK(sp);
  +    XPUSHs(a -> pAppObj); 
  +    XPUSHs(sv_2mortal (newSVpv(a -> Config.sAppName, 0))); 
  +    PUTBACK;                        
  +    perl_call_method ("setidfrom", G_DISCARD) ;
  +
       pArgs2 = newHVhv(pArgs) ;
       hv_store (pArgs2, "recreate_id", 11, newSViv (1), 0) ;
       pArgs3 = newHVhv(pArgs2) ;
  @@ -1101,6 +1116,12 @@
       pConfig -> pPool   = pPool ;
       pParam  -> pPool   = pPool ;
   
  +    r -> pApp = pApp ;
  +    pThread = r -> pThread = pApp -> pThread  ;
  +    pThread -> pCurrReq = r ;
  +    pApp ->    pCurrReq = r ;
  +    sv_setsv(pThread -> pReqRV, r -> _perlsv) ;   
  +    
       r -> startclock      = clock () ;
       r -> stsv_count      = sv_count ;
   
  @@ -1145,8 +1166,6 @@
           }
   
       tainted = 0 ;
  -    r -> pApp = pApp ;
  -    pThread = r -> pThread = pApp -> pThread  ;
   
   
       ep_acquire_mutex(RequestCountMutex) ;
  @@ -1166,15 +1185,7 @@
        { /* remove session id  */
           char * pVal = GetHashValueStr (aTHX_ r -> Param.pCookies, pCookieName, 
NULL) ;
           if (pVal)
  -            {
  -            char * p = strchr(pVal, ':') ;
  -            if (p)
  -                {
  -                r -> sSessionUserID = ep_pstrdup (r -> pPool, p + 1) ;
  -                *p = '\0' ;
  -                }
  -            r -> sSessionStateID = ep_pstrdup (r -> pPool, pVal) ;
  -            }
  +            r -> sSessionUserID = ep_pstrdup (r -> pPool, pVal) ;
           }
   
       if (r -> pApp -> pUserHash)
  @@ -1205,10 +1216,6 @@
           }
   
       
  -    pThread -> pCurrReq = r ;
  -    pApp ->    pCurrReq = r ;
  -    sv_setsv(pThread -> pReqRV, r -> _perlsv) ;   
  -    
       r -> sInitialCWD = ep_palloc(pPool, PATH_MAX * 2) ;
       getcwd (r -> sInitialCWD, PATH_MAX * 2 - 1) ;
   
  @@ -1289,6 +1296,7 @@
           int i ;
           int n = av_len(pCallerISA) + 1;
           SV ** ppSV ;
  +        newSVpvf2(pName) ;
   
           SvREFCNT_dec (pName) ;
           
  @@ -1358,7 +1366,9 @@
       int i ;
       HE *   pEntry ;
       I32    l ;
  -    
  +    tApp * pApp = r -> pApp ;
  +    dSP ;
  +
       sv_setsv(r -> pThread -> pReqRV, &sv_undef) ;   
   
       while (r -> Component._perlsv)
  @@ -1373,6 +1383,23 @@
           }
       SvREFCNT_dec (r -> pCleanupPackagesHV) ;
   
  +
  +    if (r -> nSessionMgnt)
  +        {
  +        PUSHMARK(sp);
  +        XPUSHs(pApp -> pAppObj); 
  +        PUTBACK;                        
  +        perl_call_method ("cleanup", G_DISCARD) ;
  +        PUSHMARK(sp);
  +        XPUSHs(pApp -> pUserObj); 
  +        PUTBACK;                        
  +        perl_call_method ("cleanup", G_DISCARD) ;
  +        PUSHMARK(sp);
  +        XPUSHs(pApp -> pStateObj); 
  +        PUTBACK;                        
  +        perl_call_method ("cleanup", G_DISCARD) ;
  +        }
  +    
       hv_clear (r -> pThread -> pHeaderHash) ;
       hv_clear (r -> pThread -> pInputHash) ;
       av_clear (r -> pThread -> pFormArray) ;
  
  
  
  1.75.4.103 +28 -45    embperl/epmain.c
  
  Index: epmain.c
  ===================================================================
  RCS file: /home/cvs/embperl/epmain.c,v
  retrieving revision 1.75.4.102
  retrieving revision 1.75.4.103
  diff -u -r1.75.4.102 -r1.75.4.103
  --- epmain.c  26 Feb 2002 20:14:43 -0000      1.75.4.102
  +++ epmain.c  27 Feb 2002 08:19:41 -0000      1.75.4.103
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epmain.c,v 1.75.4.102 2002/02/26 20:14:43 richter Exp $
  +#   $Id: epmain.c,v 1.75.4.103 2002/02/27 08:19:41 richter Exp $
   #
   
###################################################################################*/
   
  @@ -455,7 +455,7 @@
   /* ---------------------------------------------------------------------------- */
   
   
  -static SV * CreateSessionCookie (/*i/o*/ register req * r,
  +static char * CreateSessionCookie (/*i/o*/ register req * r,
                                 /*in*/  SV * pSessionObj,
                                 /*in*/  char type,
                                    /*in*/  int  bReturnCookie)
  @@ -468,8 +468,9 @@
       STRLEN  ulen = 0 ;
       STRLEN  ilen = 0 ;
       IV           bModified ;
  -    SV *    pCookie = NULL ;
  +    char *  pCookie = NULL ;
       STRLEN  ldummy ;
  +    tAppConfig * pCfg = &r -> pApp -> Config ;
       epTHX ;
   
       if (r -> nSessionMgnt)
  @@ -503,14 +504,15 @@
            { /* delete cookie */
               if (bReturnCookie)
                   {                    
  -                pCookie = newSVpvf ("%s%s=; expires=Thu, 1-Jan-1970 00:00:01 
GMT%s%s%s%s",  r -> pApp -> Config.sCookieName, type == 's'?"s":"",
  -                         r -> pApp -> Config.sCookieDomain[0]?"; domain=":""  , r 
-> pApp -> Config.sCookieDomain, 
  -                         r -> pApp -> Config.sCookiePath[0]?"; path=":""      , r 
-> pApp -> Config.sCookiePath) ;
  -             newSVpvf2(pCookie) ;
  +                pCookie = ep_pstrcat (r -> pPool, pCfg -> sCookieName, type == 
's'?"s=":"=", "; expires=Thu, 1-Jan-1970 00:00:01 GMT", NULL) ;
  +                if (pCfg -> sCookieDomain)
  +                    pCookie = ep_pstrcat (r -> pPool, pCookie, "; domain=", pCfg -> 
sCookieDomain, NULL) ;
  +                if (pCfg -> sCookiePath)
  +                    pCookie = ep_pstrcat (r -> pPool, pCookie, "; path=", pCfg -> 
sCookiePath, NULL) ;
                   }
   
            if (r -> Config.bDebug & dbgSession)  
  -             lprintf (r -> pApp,  "[%d]SES:  Delete Cookie -> %s\n", r -> pThread 
-> nPid, SvPV(pCookie, ldummy)) ;
  +             lprintf (r -> pApp,  "[%d]SES:  Delete Cookie -> %s\n", r -> pThread 
-> nPid, pCookie) ;
            }
        else if (ulen > 0 && 
                    ((bModified && (ilen == 0 || strcmp (pInitialUID, pUID) !=0)) ||
  @@ -518,17 +520,20 @@
            {
               if (bReturnCookie)
                   {                    
  -             pCookie = newSVpvf ("%s%s=%s%s%s%s%s%s%s",  r -> pApp -> 
Config.sCookieName, type == 's'?"s":"", pUID,
  -                         r -> pApp -> Config.sCookieDomain[0]?"; domain=":""  , r 
-> pApp -> Config.sCookieDomain, 
  -                         r -> pApp -> Config.sCookiePath[0]?"; path=":""      , r 
-> pApp -> Config.sCookiePath, 
  -                         r -> pApp -> Config.sCookieExpires[0]?"; expires=":"", r 
-> pApp -> Config.sCookieExpires) ;
  -             newSVpvf2(pCookie) ;
  +                pCookie = ep_pstrcat (r -> pPool, pCfg -> sCookieName, type == 
's'?"s=":"=", pUID, NULL) ;
  +                if (pCfg -> sCookieDomain)
  +                    pCookie = ep_pstrcat (r -> pPool, pCookie, "; domain=", pCfg -> 
sCookieDomain, NULL) ;
  +                if (pCfg -> sCookiePath)
  +                    pCookie = ep_pstrcat (r -> pPool, pCookie, "; path=", pCfg -> 
sCookiePath, NULL) ;
  +                if (pCfg -> sCookieExpires)
  +                    pCookie = ep_pstrcat (r -> pPool, pCookie, "; expires=", pCfg 
-> sCookieExpires, NULL) ;
  +
                if (r -> Config.bDebug & dbgSession)  
  -                 lprintf (r -> pApp,  "[%d]SES:  Send Cookie -> %s\n", r -> pThread 
-> nPid, SvPV(pCookie, ldummy)) ; 
  +                 lprintf (r -> pApp,  "[%d]SES:  Send Cookie -> %s\n", r -> pThread 
-> nPid, pCookie) ; 
                   }
               else
                   {
  -                pCookie = pSVUID ;
  +                pCookie = ep_pstrdup (r -> pPool, SvPV(pSVUID, ldummy)) ;
                   }
            }
        }
  @@ -703,25 +708,21 @@
   
       if ((r -> pApp -> Config.nSessionMode & smodeSDatParam) && !r -> 
Component.pPrev)
        {
  -     SV * pCookie = CreateSessionCookie (r, r -> pApp -> pStateObj, 's', 0) ; 
  -        STRLEN l ;
  +     char * pCookie = CreateSessionCookie (r, r -> pApp -> pStateObj, 's', 0) ; 
           /* lprintf (r -> pApp,  "opt %x optadd %x options %x cookie %s\n", 
optAddStateSessionToLinks, r -> Component.Config.bOptions & optAddStateSessionToLinks, 
r -> Component.Config.bOptions, SvPV(pCookie, l)) ; */
        if (pCookie)
  -            {
  -            r -> sSessionID = ep_pstrcat  (r -> pPool, r -> pApp -> 
Config.sCookieName, "=", SvPV (pCookie, l), NULL) ;
  -            }
  +            r -> sSessionID = ep_pstrcat  (r -> pPool, r -> pApp -> 
Config.sCookieName, "=", pCookie, NULL) ;
           }
       
       if ((r -> pApp -> Config.nSessionMode & smodeUDatParam) && !r -> 
Component.pPrev)
           {
  -     SV * pCookie = CreateSessionCookie (r, r -> pApp -> pUserObj, 'u', 0) ; 
  +     char * pCookie = CreateSessionCookie (r, r -> pApp -> pUserObj, 'u', 0) ; 
           if (pCookie)
               {
  -            STRLEN l ;
               if (r -> sSessionID)
  -                r -> sSessionID = ep_pstrcat  (r -> pPool, r -> sSessionID, ":", 
SvPV (pCookie, l), NULL) ;
  +                r -> sSessionID = ep_pstrcat  (r -> pPool, r -> sSessionID, ":", 
pCookie, NULL) ;
               else
  -             r -> sSessionID = ep_pstrcat  (r -> pPool, r -> pApp -> 
Config.sCookieName, "=:", SvPV (pCookie, l), NULL) ;
  +             r -> sSessionID = ep_pstrcat  (r -> pPool, r -> pApp -> 
Config.sCookieName, "=:", pCookie, NULL) ;
               }
           }
   
  @@ -798,8 +799,7 @@
   
       {                    
       epTHX_
  -    SV * pCookie = NULL ;
  -    SV * pCookie2 = NULL ;
  +    char * pCookie = NULL ;
   
       if (r -> pApp -> Config.nSessionMode & smodeUDatCookie)
           pCookie = CreateSessionCookie (r, r -> pApp -> pUserObj, 'u', 1) ;
  @@ -885,15 +885,7 @@
   
   
        if (pCookie)
  -         {
  -         table_add(r -> pApacheReq->headers_out, sSetCookie, pstrdup(r -> 
pApacheReq->pool, SvPV(pCookie, ldummy))) ;
  -         SvREFCNT_dec (pCookie) ;
  -         }
  -     if (pCookie2)
  -         {
  -         table_add(r -> pApacheReq->headers_out, sSetCookie, pstrdup(r -> 
pApacheReq->pool, SvPV(pCookie2, ldummy))) ;
  -         SvREFCNT_dec (pCookie2) ;
  -         }
  +         table_add(r -> pApacheReq->headers_out, sSetCookie, pCookie) ;
   #if 0
        if (r -> Component.Config.bEP1Compat)  /*  Embperl 2 currently cannot calc 
Content Length */
            set_content_length (r -> pApacheReq, GetContentLength (r) + (r -> 
Component.pCurrEscape?2:0)) ;
  @@ -983,17 +975,8 @@
            {
            oputs (r, sSetCookie) ;
            oputs (r, ": ") ;
  -         oputs (r, SvPV(pCookie, na)) ;
  -         oputs (r, "\n") ;
  -         SvREFCNT_dec (pCookie) ;
  -         }
  -     if (pCookie2)
  -         {
  -         oputs (r, sSetCookie) ;
  -         oputs (r, ": ") ;
  -         oputs (r, SvPV(pCookie2, na)) ;
  +         oputs (r, pCookie) ;
            oputs (r, "\n") ;
  -         SvREFCNT_dec (pCookie2) ;
            }
   
        oputs (r, "\n") ;
  
  
  
  1.15.4.47 +6 -3      embperl/eputil.c
  
  Index: eputil.c
  ===================================================================
  RCS file: /home/cvs/embperl/eputil.c,v
  retrieving revision 1.15.4.46
  retrieving revision 1.15.4.47
  diff -u -r1.15.4.46 -r1.15.4.47
  --- eputil.c  26 Feb 2002 20:14:43 -0000      1.15.4.46
  +++ eputil.c  27 Feb 2002 08:19:41 -0000      1.15.4.47
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: eputil.c,v 1.15.4.46 2002/02/26 20:14:43 richter Exp $
  +#   $Id: eputil.c,v 1.15.4.47 2002/02/27 08:19:41 richter Exp $
   #
   
###################################################################################*/
   
  @@ -1682,6 +1682,11 @@
           while (isspace(*sData))
               sData++ ;
           
  +        if (*sData == '\'' || *sData == '"')
  +            q = *sData++ ;
  +        else
  +            q = cSeparator ;
  +
           p = strchr (sData, '=') ;
           if (!p)
               break ;
  @@ -1695,8 +1700,6 @@
   
           if (*p == '\'' || *p == '"')
               q = *p++ ;
  -        else
  -            q = cSeparator ;
           
           pVal = p ;
           while (*p && *p != q)
  
  
  
  1.70.4.116 +2 -1      embperl/test.pl
  
  Index: test.pl
  ===================================================================
  RCS file: /home/cvs/embperl/test.pl,v
  retrieving revision 1.70.4.115
  retrieving revision 1.70.4.116
  diff -u -r1.70.4.115 -r1.70.4.116
  --- test.pl   25 Feb 2002 11:20:26 -0000      1.70.4.115
  +++ test.pl   27 Feb 2002 08:19:41 -0000      1.70.4.116
  @@ -11,7 +11,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: test.pl,v 1.70.4.115 2002/02/25 11:20:26 richter Exp $
  +#   $Id: test.pl,v 1.70.4.116 2002/02/27 08:19:41 richter Exp $
   #
   ###################################################################################
   
  @@ -480,6 +480,7 @@
           'modperl'    => 1,
           'cgi'        => 0,
           'cookie'     => 'expectno',
  +        'version'    => 1,
           },
       'getsess.htm' => {
           'offline'    => 0,
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.6   +5 -1      embperl/Embperl/Attic/Util.pm
  
  Index: Util.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Attic/Util.pm,v
  retrieving revision 1.1.2.5
  retrieving revision 1.1.2.6
  diff -u -r1.1.2.5 -r1.1.2.6
  --- Util.pm   5 Feb 2002 09:04:05 -0000       1.1.2.5
  +++ Util.pm   27 Feb 2002 08:19:42 -0000      1.1.2.6
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: Util.pm,v 1.1.2.5 2002/02/05 09:04:05 richter Exp $
  +#   $Id: Util.pm,v 1.1.2.6 2002/02/27 08:19:42 richter Exp $
   #
   ###################################################################################
   
  @@ -101,6 +101,10 @@
               *{"$package\:\:exit"}    = \&Embperl::exit 
               }
                       
  +
  +        *{"$package\:\:udat"} = $Embperl::req -> app -> udat ;
  +        *{"$package\:\:mdat"} = $Embperl::req -> app -> mdat ;
  +        *{"$package\:\:sdat"} = $Embperl::req -> app -> sdat ;
   
           *{"$package\:\:MailFormTo"} = \&Embperl::MailFormTo ;
           *{"$package\:\:Execute"} = \&Embperl::Req::ExecuteComponent ;
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.23  +2 -2      embperl/Embperl/Syntax/Attic/EmbperlBlocks.pm
  
  Index: EmbperlBlocks.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Syntax/Attic/EmbperlBlocks.pm,v
  retrieving revision 1.1.2.22
  retrieving revision 1.1.2.23
  diff -u -r1.1.2.22 -r1.1.2.23
  --- EmbperlBlocks.pm  10 Feb 2002 21:26:16 -0000      1.1.2.22
  +++ EmbperlBlocks.pm  27 Feb 2002 08:19:43 -0000      1.1.2.23
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: EmbperlBlocks.pm,v 1.1.2.22 2002/02/10 21:26:16 richter Exp $
  +#   $Id: EmbperlBlocks.pm,v 1.1.2.23 2002/02/27 08:19:43 richter Exp $
   #
   ###################################################################################
    
  @@ -535,7 +535,7 @@
                           [
                           'if (!defined (_ep_rpurl(%$x%,scalar(do{%#~0:$col%})))) 
%#~-0:$row% { if ($col == 0) { _ep_dcp (%^*htmltable%) ; last l%^*htmltable% ; } else 
{ _ep_dcp (%^*htmlrow%) ; last l%^*htmlrow% ; }}',
                           'if (!defined (_ep_rpurl(%$x%,scalar(do{%#~0:$col%})))) { 
_ep_dcp (%^*htmlrow%) ; last l%^*htmlrow% ; }',
  -                        'if (!defined 
(_ep_rpurl(%$x%,scalar($val3=do{%#~0:$row%;})))) {  _ep_dcp (%^*htmltable%) ; last 
l%^*htmltable% ; }',
  +                        'if (!defined (_ep_rpurl(%$x%,scalar(do{%#~0:$row%;})))) {  
_ep_dcp (%^*htmltable%) ; last l%^*htmltable% ; }',
                           '_ep_rpurl(%$x%,scalar(do{%#0%}));', 
                           ],
                       removenode  => 4,
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.2.2.2   +1 -1      embperl/test/cmp/delrdsess.htm
  
  Index: delrdsess.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/delrdsess.htm,v
  retrieving revision 1.2.2.1
  retrieving revision 1.2.2.2
  diff -u -r1.2.2.1 -r1.2.2.2
  --- delrdsess.htm     10 Nov 2000 08:52:35 -0000      1.2.2.1
  +++ delrdsess.htm     27 Feb 2002 08:19:43 -0000      1.2.2.2
  @@ -15,7 +15,7 @@
   
        ok (num=1)<p>
   
  -    $mdat{cnt} = -- <br>
  +^    \$mdat\{cnt\} = -\d- <br>
       $udat{cnt} = -- <br>
   
        udat after:<br>
  
  
  
  1.2.4.2   +1 -1      embperl/test/cmp/delsess.htm
  
  Index: delsess.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/delsess.htm,v
  retrieving revision 1.2.4.1
  retrieving revision 1.2.4.2
  diff -u -r1.2.4.1 -r1.2.4.2
  --- delsess.htm       10 Nov 2000 08:52:35 -0000      1.2.4.1
  +++ delsess.htm       27 Feb 2002 08:19:43 -0000      1.2.4.2
  @@ -15,7 +15,7 @@
   
        ok (num=1)<p>
   
  -    $mdat{cnt} = -- <br>
  +^    \$mdat\{cnt\} = -\d- <br>
       $udat{cnt} = -- <br>
   
        </body>
  
  
  
  1.3.2.2   +1 -1      embperl/test/cmp/delwrsess.htm
  
  Index: delwrsess.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/delwrsess.htm,v
  retrieving revision 1.3.2.1
  retrieving revision 1.3.2.2
  diff -u -r1.3.2.1 -r1.3.2.2
  --- delwrsess.htm     10 Nov 2000 08:52:35 -0000      1.3.2.1
  +++ delwrsess.htm     27 Feb 2002 08:19:43 -0000      1.3.2.2
  @@ -15,7 +15,7 @@
   
        ok (num=1)<p>
   
  -    $mdat{cnt} = -- <br>
  +^    \$mdat\{cnt\} = -\d- <br>
       $udat{cnt} = -- <br>
   
        udat after:<br>
  
  
  
  1.3.6.2   +3 -3      embperl/test/cmp/execgetsess.htm
  
  Index: execgetsess.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/execgetsess.htm,v
  retrieving revision 1.3.6.1
  retrieving revision 1.3.6.2
  diff -u -r1.3.6.1 -r1.3.6.2
  --- execgetsess.htm   13 Sep 2001 07:29:45 -0000      1.3.6.1
  +++ execgetsess.htm   27 Feb 2002 08:19:43 -0000      1.3.6.2
  @@ -27,7 +27,7 @@
   
   ^    ok \(num=\d+\)<p>
   
  -     $mdat{cnt} = -- <br>
  +^    \$mdat\{cnt\} = -\d- <br>
           $udat{cnt} = -- <br>
   
   
  @@ -74,7 +74,7 @@
   
   ^    ok \(num=(1|6)\)<p>
   
  -     $mdat{cnt} = -- <br>
  +^    \$mdat\{cnt\} = -\d- <br>
           $udat{cnt} = -- <br>
   
   
  @@ -99,7 +99,7 @@
   
   ^    ok \(num=(1|6)\)<p>
   
  -     $mdat{cnt} = -- <br>
  +^    \$mdat\{cnt\} = -\d- <br>
           $udat{cnt} = -- <br>
   
   
  
  
  
  1.1.2.2   +1 -1      embperl/test/cmp/getbsess.htm
  
  Index: getbsess.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/getbsess.htm,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- getbsess.htm      10 Nov 2000 08:52:35 -0000      1.1.2.1
  +++ getbsess.htm      27 Feb 2002 08:19:43 -0000      1.1.2.2
  @@ -19,7 +19,7 @@
   
   ^    ok \(num=\d+\)<p>
   
  -     $mdat{cnt} = -- <br>
  +^    \$mdat\{cnt\} = -\d- <br>
           $udat{cnt} = -- <br>
   
   
  
  
  
  1.2.4.1   +1 -1      embperl/test/cmp/getdelsess.htm
  
  Index: getdelsess.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/getdelsess.htm,v
  retrieving revision 1.2
  retrieving revision 1.2.4.1
  diff -u -r1.2 -r1.2.4.1
  --- getdelsess.htm    11 Sep 2000 09:53:34 -0000      1.2
  +++ getdelsess.htm    27 Feb 2002 08:19:43 -0000      1.2.4.1
  @@ -15,7 +15,7 @@
   
        Not a session hash (num=0)<p>
   
  -     $mdat{cnt} = -- <br>
  +^    \$mdat\{cnt\} = -\d- <br>
           $udat{cnt} = -- <br>
   
   
  
  
  
  1.4.4.2   +1 -1      embperl/test/cmp/getsess.htm
  
  Index: getsess.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/getsess.htm,v
  retrieving revision 1.4.4.1
  retrieving revision 1.4.4.2
  diff -u -r1.4.4.1 -r1.4.4.2
  --- getsess.htm       13 Sep 2001 07:29:45 -0000      1.4.4.1
  +++ getsess.htm       27 Feb 2002 08:19:43 -0000      1.4.4.2
  @@ -19,7 +19,7 @@
   
   ^    ok \(num=\d+\)<p>
   
  -     $mdat{cnt} = -- <br>
  +^    \$mdat\{cnt\} = -\d- <br>
           $udat{cnt} = -- <br>
   
   
  
  
  
  1.12.4.7  +31 -0     embperl/test/cmp/input.htm
  
  Index: input.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/input.htm,v
  retrieving revision 1.12.4.6
  retrieving revision 1.12.4.7
  diff -u -r1.12.4.6 -r1.12.4.7
  --- input.htm 16 Feb 2002 23:31:34 -0000      1.12.4.6
  +++ input.htm 27 Feb 2002 08:19:43 -0000      1.12.4.7
  @@ -419,6 +419,37 @@
        <textarea name="feld6">feld6</textarea>
           <textarea name="feld6">Wert6</textarea>
   
  +     <table><tr><td>
  +             <textarea name="feld1"></textarea>
  +                <textarea name="feld1"></textarea>
  +        </td></tr><tr><td>
  +             <textarea name="feld5">feld5</textarea>
  +                <textarea name="feld5">Wert5</textarea>
  +        </td></tr><tr><td>
  +             <textarea name="feld2"></textarea>
  +                <textarea name="feld2"></textarea>
  +        </td></tr><tr><td>
  +             <textarea name="feld6">feld6</textarea>
  +                <textarea name="feld6">Wert6</textarea>
  +        </td></tr></table>
  +
  +        <table><tr><td>
  +                <textarea name="feld6">Wert6</textarea>
  +        </td></tr></table>
  +
  +        <table><tr><td>
  +                <textarea name="ta">blabla</textarea>
  +        </td></tr></table>
  +
  +        <table>
  +            <tr><td><input name="feld1" value=""></td></tr>
  +            <tr><td><input name="feld2" value=""></td></tr>
  +            <tr><td><input name="feld5" value="Wert5"></td></tr>
  +            <tr><td><input name="feld6" value="Wert6"></td></tr>
  +            <tr><td><textarea name="ta">blabla</textarea></td></tr>
  +        </table>
  +
  +
        <p>
           i = 5 fdat{feld5} Wert5<br>
                <input type="checkbox" value="cbv5" name="cb5" checked>
  
  
  
  1.1.2.2   +2 -2      embperl/test/cmp/seturlsess.htm
  
  Index: seturlsess.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/seturlsess.htm,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- seturlsess.htm    17 Sep 2001 08:49:59 -0000      1.1.2.1
  +++ seturlsess.htm    27 Feb 2002 08:19:43 -0000      1.1.2.2
  @@ -25,8 +25,8 @@
   ^    <a href=\"cont\.htm\?EMBPERL_UID=[a-f0-9]*?:[a-f0-9]+\">continue</a>
   ^    <a href=\"cont.htm\?q=1&EMBPERL_UID=[a-f0-9]*?:[a-f0-9]+\">continue</a>
   ^    <a href=\"cont.htm\?q=1&b=2&EMBPERL_UID=[a-f0-9]*?:[a-f0-9]+\">continue</a>
  -     <form action="cont.htm">
  -^    <input type=\"hidden\" name=\"EMBPERL_UID\" 
value=\"[a-f0-9]*?:[a-f0-9]+\"></form>
  +^    <form action="cont.htm"><input type=\"hidden\" name=\"EMBPERL_UID\" 
value=\"[a-f0-9]*?:[a-f0-9]+\">
  +        </form>
   
   </body>
   </html>
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.9   +36 -1     embperl/test/cmp2/Attic/input.htm
  
  Index: input.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp2/Attic/input.htm,v
  retrieving revision 1.1.2.8
  retrieving revision 1.1.2.9
  diff -u -r1.1.2.8 -r1.1.2.9
  --- input.htm 16 Feb 2002 23:31:34 -0000      1.1.2.8
  +++ input.htm 27 Feb 2002 08:19:43 -0000      1.1.2.9
  @@ -383,6 +383,37 @@
        <textarea name="feld6">feld6</textarea>
           <textarea name="feld6">Wert6</textarea>
   
  +     <table><tr><td>
  +             <textarea name="feld1"></textarea>
  +                <textarea name="feld1"></textarea>
  +        </td></tr><tr><td>
  +             <textarea name="feld5">feld5</textarea>
  +                <textarea name="feld5">Wert5</textarea>
  +        </td></tr><tr><td>
  +             <textarea name="feld2"></textarea>
  +                <textarea name="feld2"></textarea>
  +        </td></tr><tr><td>
  +             <textarea name="feld6">feld6</textarea>
  +                <textarea name="feld6">Wert6</textarea>
  +        </td></tr></table>
  +
  +        <table><tr><td>
  +                <textarea name="feld6">Wert6</textarea>
  +        </td></tr></table>
  +
  +        <table><tr><td>
  +                <textarea name="ta">blabla</textarea>
  +        </td></tr></table>
  +
  +        <table>
  +            <tr><td><input name="feld1" value=""></td></tr>
  +            <tr><td><input name="feld2" value=""></td></tr>
  +            <tr><td><input name="feld5" value="Wert5"></td></tr>
  +            <tr><td><input name="feld6" value="Wert6"></td></tr>
  +            <tr><td><textarea name="ta">blabla</textarea></td></tr>
  +        </table>
  +
  +
        <p>
           i = 5 fdat{feld5} Wert5<br>
                <input type="checkbox" value="cbv5" name="cb5" checked>
  @@ -407,7 +438,7 @@
                <input type="text" name="feld1" value="">
                <input type="text" name="feld1" value="">
           </p>
  -     ks = cb1 cb2 cb5 cb6 cb7 cb8 dec feld1 feld2 feld3 feld4 feld5 feld6 feld7 
feld8 mult neu1 neu2 neu3 undef<p>
  +     ks = cb1 cb2 cb5 cb6 cb7 cb8 dec feld1 feld2 feld3 feld4 feld5 feld6 feld7 
feld8 mult neu1 neu2 neu3 ta undef<p>
   
        <table border=10>
                <tr>
  @@ -484,6 +515,10 @@
        
                <tr>
                        <td>neu3</td><td>&gt;&gt;</td>
  +             </tr>
  +     
  +             <tr>
  +                     <td>ta</td><td>blabla</td>
                </tr>
        
                <tr>
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.24.4.41 +6 -3      embperl/test/conf/httpd.conf.src
  
  Index: httpd.conf.src
  ===================================================================
  RCS file: /home/cvs/embperl/test/conf/httpd.conf.src,v
  retrieving revision 1.24.4.40
  retrieving revision 1.24.4.41
  diff -u -r1.24.4.40 -r1.24.4.41
  --- httpd.conf.src    25 Feb 2002 11:20:29 -0000      1.24.4.40
  +++ httpd.conf.src    27 Feb 2002 08:19:43 -0000      1.24.4.41
  @@ -639,7 +639,8 @@
   SetHandler perl-script
   PerlHandler Embperl
   Options ExecCGI
  -PerlSetEnv EMBPERL_OPTIONS 0x6000000
  +PerlSetEnv EMBPERL_APPNAME sidurl
  +PerlSetEnv EMBPERL_SESSION_MODE 0x20
   </Location>
   
   
  @@ -648,7 +649,8 @@
   SetHandler perl-script
   PerlHandler Embperl
   Options ExecCGI
  -PerlSetEnv EMBPERL_OPTIONS 0x5000000
  +PerlSetEnv EMBPERL_APPNAME uidurl
  +PerlSetEnv EMBPERL_SESSION_MODE 0x02
   </Location>
   
   
  @@ -657,7 +659,8 @@
   SetHandler perl-script
   PerlHandler Embperl
   Options ExecCGI
  -PerlSetEnv EMBPERL_OPTIONS 0x7000000
  +PerlSetEnv EMBPERL_APPNAME sidurl
  +PerlSetEnv EMBPERL_SESSION_MODE 0x22
   </Location>
   
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.3   +1 -1      embperl/test/html/delrdsess.htm
  
  Index: delrdsess.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/delrdsess.htm,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- delrdsess.htm     18 Dec 2000 11:38:53 -0000      1.1.2.2
  +++ delrdsess.htm     27 Feb 2002 08:19:44 -0000      1.1.2.3
  @@ -20,7 +20,7 @@
       $mdat{cnt} = -[+ $mdat{cnt}  +]- <br>
       $udat{cnt} = -[+ $udat{cnt}  +]- <br>
   
  -     [- HTML::Embperl::Req::DeleteSession (undef, 1) ; -]
  +     [- $_[0] -> DeleteSession (1) ; -]
   
        udat after:<br>
        [- @ks = grep (!/^_/, sort (keys %udat)) ; $num = keys (%udat) - $#ks - 1 ; -]
  
  
  
  1.2.4.3   +1 -1      embperl/test/html/delsess.htm
  
  Index: delsess.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/delsess.htm,v
  retrieving revision 1.2.4.2
  retrieving revision 1.2.4.3
  diff -u -r1.2.4.2 -r1.2.4.3
  --- delsess.htm       18 Dec 2000 11:38:53 -0000      1.2.4.2
  +++ delsess.htm       27 Feb 2002 08:19:44 -0000      1.2.4.3
  @@ -20,7 +20,7 @@
       $mdat{cnt} = -[+ $mdat{cnt}  +]- <br>
       $udat{cnt} = -[+ $udat{cnt}  +]- <br>
   
  -     [- HTML::Embperl::Req::DeleteSession (undef, 1) ; -]
  +     [- $_[0] -> DeleteSession (1) ; -]
   
   </body>
   </html>
  
  
  
  1.2.2.3   +1 -1      embperl/test/html/delwrsess.htm
  
  Index: delwrsess.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/delwrsess.htm,v
  retrieving revision 1.2.2.2
  retrieving revision 1.2.2.3
  diff -u -r1.2.2.2 -r1.2.2.3
  --- delwrsess.htm     18 Dec 2000 11:38:54 -0000      1.2.2.2
  +++ delwrsess.htm     27 Feb 2002 08:19:44 -0000      1.2.2.3
  @@ -20,7 +20,7 @@
       $mdat{cnt} = -[+ $mdat{cnt}  +]- <br>
       $udat{cnt} = -[+ $udat{cnt}  +]- <br>
   
  -     [- HTML::Embperl::Req::DeleteSession (undef, 1) ; -]
  +     [- $_[0] -> DeleteSession (1) ; -]
   
        udat after:<br>
        [- @ks = grep (!/^_/, sort (keys %udat)) ; $num = keys (%udat) - $#ks - 1 ; -]
  
  
  
  1.1.4.2   +3 -3      embperl/test/html/getdelsess.htm
  
  Index: getdelsess.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/getdelsess.htm,v
  retrieving revision 1.1.4.1
  retrieving revision 1.1.4.2
  diff -u -r1.1.4.1 -r1.1.4.2
  --- getdelsess.htm    18 Dec 2000 11:38:57 -0000      1.1.4.1
  +++ getdelsess.htm    27 Feb 2002 08:19:44 -0000      1.1.4.2
  @@ -17,8 +17,8 @@
        </table>
   
        udat:<br>
  -     [- $off = 0 ; $off-- if ($HTML::Embperl::SessionMgnt == 2 && !defined (tied 
(%udat) -> getid)) ; -]
  -     [- @ks = grep (!/^_/, sort (keys %udat)) ; $num = keys (%udat) - $#ks - 1 + 
$off ; -]
  +     [- $id = tied (%udat) -> getid -]
  +     [- @ks = grep (!/^_/, sort (keys %udat)) ; $num = keys (%udat) - @ks - 
($id?0:1) -]
   
        <table>
                <tr>
  @@ -26,7 +26,7 @@
                </tr>
        </table>
   
  -     [+ $num > 0?"ok (num=$num)":"Not a session hash (num=$num)" +]<p>
  +     [+ $id?"ok (num=$num)":"Not a session hash (num=$num)" +]<p>
   
        [- 
        while (($k, $v) = each (%fdat))
  
  
  
  1.6.6.1   +3 -3      embperl/test/html/getnosess.htm
  
  Index: getnosess.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/getnosess.htm,v
  retrieving revision 1.6
  retrieving revision 1.6.6.1
  diff -u -r1.6 -r1.6.6.1
  --- getnosess.htm     4 Nov 1999 05:30:26 -0000       1.6
  +++ getnosess.htm     27 Feb 2002 08:19:44 -0000      1.6.6.1
  @@ -17,8 +17,8 @@
        </table>
   
        udat:<br>
  -     [- $off = 0 ; $off-- if ($HTML::Embperl::SessionMgnt == 2 && !defined (tied 
(%udat) -> getid)) ; -]
  -     [- @ks = grep (!/^_/, sort (keys %udat)) ; $num = keys (%udat) - $#ks - 1 + 
$off ; -]
  +     [- $id = tied (%udat) -> getid -]
  +     [- @ks = grep (!/^_/, sort (keys %udat)) ; $num = keys (%udat) - @ks - 
($id?0:1) -]
   
        <table>
                <tr>
  @@ -26,7 +26,7 @@
                </tr>
        </table>
   
  -     [+ $num > 0?"ok (num=$num)":"Not a session hash (num=$num)" +]<p>
  +     [+ $id?"ok (num=$num)":"Not a session hash (num=$num)" +]<p>
   
        [- 
        while (($k, $v) = each (%fdat))
  
  
  
  1.7.6.4   +3 -3      embperl/test/html/getsess.htm
  
  Index: getsess.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/getsess.htm,v
  retrieving revision 1.7.6.3
  retrieving revision 1.7.6.4
  diff -u -r1.7.6.3 -r1.7.6.4
  --- getsess.htm       13 Sep 2001 07:29:45 -0000      1.7.6.3
  +++ getsess.htm       27 Feb 2002 08:19:44 -0000      1.7.6.4
  @@ -36,8 +36,8 @@
        </table>
   
        udat:<br>
  -     [- $off = 0 ; $off-- if ($HTML::Embperl::SessionMgnt == 2 && !defined (tied 
(%udat) -> getid)) ; -]
  -     [- @ks = grep (!/^_/, sort (keys %udat)) ; $num = keys (%udat) - $#ks - 1 + 
$off ; -]
  +     [- $id = tied (%udat) -> getid -]
  +     [- @ks = grep (!/^_/, sort (keys %udat)) ; $num = keys (%udat) - @ks - 
($id?0:1) -]
   
        <table>
                <tr>
  @@ -45,7 +45,7 @@
                </tr>
        </table>
   
  -     [+ $num > 0?"ok (num=$num)":"Not a session hash (num=$num)" +]<p>
  +     [+ $id?"ok (num=$num)":"Not a session hash (num=$num)" +]<p>
   
        [- 
        while (($k, $v) = each (%fdat))
  
  
  
  1.10.4.11 +24 -0     embperl/test/html/input.htm
  
  Index: input.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/input.htm,v
  retrieving revision 1.10.4.10
  retrieving revision 1.10.4.11
  diff -u -r1.10.4.10 -r1.10.4.11
  --- input.htm 12 Feb 2002 16:55:01 -0000      1.10.4.10
  +++ input.htm 27 Feb 2002 08:19:44 -0000      1.10.4.11
  @@ -280,6 +280,30 @@
   
        [$endforeach$]
   
  +        [- @order = (1,5,2,6) -]
  +        <table><tr><td>
  +             <textarea name="feld[+ $i = $order[$row] +]">[+ $i > 2?"feld$i":'' 
+]</textarea>
  +                <textarea name="feld[+ $i +]"></textarea>
  +        </td></tr></table>
  +
  +        <table><tr><td>
  +                <textarea name="feld6"></textarea>
  +        </td></tr></table>
  +
  +        [- $fdat{ta} = 'blabla' -]
  +        <table><tr><td>
  +                <textarea name="ta"></textarea>
  +        </td></tr></table>
  +
  +        <table>
  +            <tr><td><input name="feld1"></td></tr>
  +            <tr><td><input name="feld2"></td></tr>
  +            <tr><td><input name="feld5"></td></tr>
  +            <tr><td><input name="feld6"></td></tr>
  +            <tr><td><textarea name="ta"></textarea></td></tr>
  +        </table>
  +
  +
        [$ foreach $i (5,2,6,1) $]
           <p>
           i = [+ $i +] fdat{feld5} [+ $fdat{feld5} +]<br>
  
  
  
  1.9.6.2   +3 -3      embperl/test/html/setsess.htm
  
  Index: setsess.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/setsess.htm,v
  retrieving revision 1.9.6.1
  retrieving revision 1.9.6.2
  diff -u -r1.9.6.1 -r1.9.6.2
  --- setsess.htm       13 Sep 2001 07:29:45 -0000      1.9.6.1
  +++ setsess.htm       27 Feb 2002 08:19:44 -0000      1.9.6.2
  @@ -17,8 +17,8 @@
        </table>
   
        udat:<br> 
  -     [- $off = 0 ; $off-- if ($HTML::Embperl::SessionMgnt == 2 && !defined (tied 
(%udat) -> getid)) ; -]
  -     [- @ks = grep (!/^_/, sort (keys %udat)) ; $num = keys (%udat) - $#ks - 1 + 
$off -]
  +     [- $id = tied (%udat) -> getid -]
  +     [- @ks = grep (!/^_/, sort (keys %udat)) ; $num = keys (%udat) - @ks - 
($id?0:1) -]
   
        <table>
                <tr>
  @@ -26,7 +26,7 @@
                </tr>
        </table>
   
  -     [+ $num > 0?"ok (num=$num)":"Not a session hash (num=$num)" +]<p>
  +     [+ $id?"ok (num=$num)":"Not a session hash (num=$num)" +]<p>
   
        [- 
        while (($k, $v) = each (%fdat))
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.20  +0 -1      embperl/xsbuilder/maps/Attic/ep_structure.map
  
  Index: ep_structure.map
  ===================================================================
  RCS file: /home/cvs/embperl/xsbuilder/maps/Attic/ep_structure.map,v
  retrieving revision 1.1.2.19
  retrieving revision 1.1.2.20
  diff -u -r1.1.2.19 -r1.1.2.20
  --- ep_structure.map  26 Feb 2002 20:14:44 -0000      1.1.2.19
  +++ ep_structure.map  27 Feb 2002 08:19:44 -0000      1.1.2.20
  @@ -68,7 +68,6 @@
      lfd
      pUserObj     | user_session
      pStateObj    | state_session
  -
      pAppObj      | app_session
      pUserHash    | udat
      pStateHash   | sdat
  
  
  

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

Reply via email to