richter     02/05/23 00:54:49

  Modified:    .        Tag: Embperl2c Embperl.xs Makefile.PL ep.h
                        epapinit.c epinit.c epio.c epmain.c epnames.h
                        eppriv.h
  Log:
  start mod_perl 2.0 support
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.29.4.52 +1 -1      embperl/Embperl.xs
  
  Index: Embperl.xs
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl.xs,v
  retrieving revision 1.29.4.51
  retrieving revision 1.29.4.52
  diff -u -r1.29.4.51 -r1.29.4.52
  --- Embperl.xs        20 May 2002 06:57:35 -0000      1.29.4.51
  +++ Embperl.xs        23 May 2002 07:54:47 -0000      1.29.4.52
  @@ -30,7 +30,7 @@
       RETVAL
   
   
  -#ifdef APACHE
  +#ifdef APACHEXXX
   
   void 
   embperl_ApacheAddModule ()
  
  
  
  1.31.4.54 +30 -9     embperl/Makefile.PL
  
  Index: Makefile.PL
  ===================================================================
  RCS file: /home/cvs/embperl/Makefile.PL,v
  retrieving revision 1.31.4.53
  retrieving revision 1.31.4.54
  diff -u -r1.31.4.53 -r1.31.4.54
  --- Makefile.PL       7 May 2002 10:50:33 -0000       1.31.4.53
  +++ Makefile.PL       23 May 2002 07:54:47 -0000      1.31.4.54
  @@ -3,7 +3,7 @@
   #
   # (C) 1997-2001 G.Richter ([EMAIL PROTECTED]) / ECOS
   #
  -# $Id: Makefile.PL,v 1.31.4.53 2002/05/07 10:50:33 richter Exp $
  +# $Id: Makefile.PL,v 1.31.4.54 2002/05/23 07:54:47 richter Exp $
   #
   
   
  @@ -498,15 +498,27 @@
   
   if (!$apache && $apache_src eq '')
       {
  -    eval 'use Apache::MyConfig' ;
  +    # check for mod_perl 2.0
  +    eval 'use Apache::BuildConfig' ;
   
       if ($@ eq '')
           { 
  -        $apache_src = $Apache::MyConfig::Setup{Apache_Src} ; 
  +        $mp2cfg = Apache::BuildConfig -> new ;
  +        $apache_src = $mp2cfg -> {APXS_INCLUDEDIR} ;
  +        print "Found mod_perl 2.0\n" ;
           }
       else
           {
  -        $apache_src = '' ;
  +        eval 'use Apache::MyConfig' ;
  +
  +        if ($@ eq '')
  +            { 
  +            $apache_src = $Apache::MyConfig::Setup{Apache_Src} ; 
  +            }
  +        else
  +            {
  +            $apache_src = '' ;
  +            }
           }
       }
   
  @@ -661,6 +673,7 @@
           $o = '' ;
           }
       $d .= ' -DAPACHE' ;
  +    $d .= ' -DAPACHE2' if ($mp2cfg) ;
       $EPNOAPACHELIB = 0 ;
       }
   else
  @@ -737,6 +750,7 @@
           $EPHTTPD = "$apache_src/httpd" ;
           $EPHTTPD = $ENV{EPHTTPD} if (defined ($ENV{EPHTTPD})) ;
           $EPHTTPD = "$apache_src/httpsd" if (!-e $EPHTTPD && -e 
"$apache_src/httpsd") ;
  +        $EPHTTPD = "$apache_src/bin/httpd" if (!-e $EPHTTPD && -e 
"$apache_src/bin/httpd") ;
           
           if (!-e $EPHTTPD)
               {
  @@ -782,7 +796,7 @@
       $EPBINDIR          = dirname ($EPHTTPD) ;    
       $EPMODPERL         = '' ;
       
  -    $addmodpath = '' ;
  +    $addmodpath = $mp2cfg?$mp2cfg -> {MODPERL_AP_LIBEXECDIR}:'' ;
       while (($mod, $opt) = each %neededmodules)
        {
        if (!grep (/$mod/, @modules))
  @@ -858,9 +872,16 @@
        $use_dso = 1 ;
           }
   
  -    require Apache::src;
  -    $dynlib->{'OTHERLDFLAGS'} = Apache::src->new->otherldflags if (defined 
(&Apache::src::otherldflags)) ;
  -
  +    if ($mp2cfg)
  +        {
  +        require Apache::Build ;
  +        $dynlib->{'OTHERLDFLAGS'} = Apache::Build->new->otherldflags  ;
  +        }
  +    else
  +        {
  +        require Apache::src;
  +        $dynlib->{'OTHERLDFLAGS'} = Apache::src->new->otherldflags if (defined 
(&Apache::src::otherldflags)) ;
  +        }
   
       if ($EPSTRONGHOLD) 
           {
  @@ -878,7 +899,7 @@
           $sslbase = search_config ('SSL_BASE', "$apache_src/Configuration.apaci") ;
           $sslbase = search_config ('SSL_BASE', "$apache_src/Configuration") if 
(!$sslbase) ;
           print " + found mod_ssl\n" ;
  -        $EPSSLDISABLE = !start_errcode ("\"$EPHTTPD\" -t -f 
$EPPATH/test/conf/ssldisable.conf") ;
  +        $EPSSLDISABLE = $mp2cfg?0:!start_errcode ("\"$EPHTTPD\" -t -f 
$EPPATH/test/conf/ssldisable.conf") ;
           }
   
   
  
  
  
  1.27.4.46 +3 -1      embperl/ep.h
  
  Index: ep.h
  ===================================================================
  RCS file: /home/cvs/embperl/ep.h,v
  retrieving revision 1.27.4.45
  retrieving revision 1.27.4.46
  diff -u -r1.27.4.45 -r1.27.4.46
  --- ep.h      26 Feb 2002 20:14:42 -0000      1.27.4.45
  +++ ep.h      23 May 2002 07:54:48 -0000      1.27.4.46
  @@ -148,7 +148,9 @@
   #include "compat.h"
   #endif
   
  -
  +#ifdef APACHE2
  +#include <apr_strings.h>
  +#endif
   
   #endif
   
  
  
  
  1.1.2.37  +69 -13    embperl/epapinit.c
  
  Index: epapinit.c
  ===================================================================
  RCS file: /home/cvs/embperl/epapinit.c,v
  retrieving revision 1.1.2.36
  retrieving revision 1.1.2.37
  diff -u -r1.1.2.36 -r1.1.2.37
  --- epapinit.c        21 May 2002 12:09:07 -0000      1.1.2.36
  +++ epapinit.c        23 May 2002 07:54:48 -0000      1.1.2.37
  @@ -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.36 2002/05/21 12:09:07 richter Exp $
  +#   $Id: epapinit.c,v 1.1.2.37 2002/05/23 07:54:48 richter Exp $
   #
   
###################################################################################*/
   
  @@ -41,8 +41,13 @@
   
   /* define config prototypes */
   
  -static void embperl_ApacheInit (server_rec *s, pool *p) ;
  +#ifdef APACHE2
  +static void embperl_ApacheInit (apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, 
server_rec *s) ;
  +static apr_status_t embperl_ApacheInitCleanup (void * p) ;
  +#else
   static void embperl_ApacheInitCleanup (void * p) ;
  +static void embperl_ApacheInit (server_rec *s, apr_pool_t *p) ;
  +#endif
   
   #define EPCFG_STR EPCFG
   #define EPCFG_INT EPCFG
  @@ -87,34 +92,61 @@
   #define EPCFG_SAVE EPCFG
   #undef EPCFG 
   #define EPCFG(STRUCT,TYPE,NAME,CFGNAME) \
  -    char * embperl_Apache_Config_##STRUCT##NAME (cmd_parms *cmd, tApacheDirConfig * 
pDirCfg, char *  arg) ;
  +    char * embperl_Apache_Config_##STRUCT##NAME (cmd_parms *cmd, 
/*tApacheDirConfig*/ void * pDirCfg, const char *  arg) ;
   
   #include "epcfg.h"
   
  +#ifndef AP_INIT_TAKE1
  +#define AP_INIT_TAKE1(name,func,foo,valid,comment) { name,func,foo,valid, TAKE1, 
comment }
  +#endif
  +#ifndef AP_INIT_FLAG
  +#define AP_INIT_FLAG(name,func,foo,valid,comment) { name,func,foo,valid, FLAG, 
comment }
  +#endif
  +
   /* define config data structure */
   #undef EPCFG
   #undef EPCFG_SAVE
   #define EPCFG_SAVE EPCFG
   #define EPCFG(STRUCT,TYPE,NAME,CFGNAME) \
  -    { "EMBPERL_"#CFGNAME,   embperl_Apache_Config_##STRUCT##NAME,   NULL, RSRC_CONF 
| OR_OPTIONS, TAKE1, "" },
  +    AP_INIT_TAKE1( "EMBPERL_"#CFGNAME,   embperl_Apache_Config_##STRUCT##NAME,   
NULL, RSRC_CONF | OR_OPTIONS,  "" ),
   
  -static char * embperl_Apache_Config_useenv (cmd_parms *cmd, tApacheDirConfig * 
pDirCfg, bool arg) ;
  -static void *embperl_create_dir_config(pool *p, char *d) ;
  -static void *embperl_create_server_config(pool *p, server_rec *s) ;
  -static void *embperl_merge_dir_config (pool *p, void *basev, void *addv) ;
  +static char * embperl_Apache_Config_useenv (cmd_parms *cmd, /*tApacheDirConfig*/ 
void * pDirCfg, bool arg) ;
  +static void *embperl_create_dir_config(apr_pool_t *p, char *d) ;
  +static void *embperl_create_server_config(apr_pool_t *p, server_rec *s) ;
  +static void *embperl_merge_dir_config (apr_pool_t *p, void *basev, void *addv) ;
   
   static const command_rec embperl_cmds[] =
   {
   #include "epcfg.h"
       
  -    {"EMBPERL_USEENV", embperl_Apache_Config_useenv, NULL, RSRC_CONF, FLAG, ""},
  +    AP_INIT_FLAG("EMBPERL_USEENV", embperl_Apache_Config_useenv, NULL, RSRC_CONF, 
"If set to 'on' Embperl will also scan the environment variable for configuration 
informations"),
       {NULL}
   };
   
   
   
  +#ifdef APACHE2
  +
  +static void embperl_register_hooks (apr_pool_t * p)
  +    {
  +    ap_hook_post_config(embperl_ApacheInit, NULL, NULL, APR_HOOK_MIDDLE) ;
  +    }
  +
  +
  +static module AP_MODULE_DECLARE_DATA embperl_module =
  +    {
  +    STANDARD20_MODULE_STUFF,
  +    embperl_create_dir_config,  /* dir config creater */
  +    embperl_merge_dir_config,   /* dir merger --- default is to override */
  +    embperl_create_server_config, /* server config */
  +    embperl_merge_dir_config,   /* merge server configs */
  +    embperl_cmds,               /* command table */
  +    embperl_register_hooks      /* register hooks */
  +    };
  +
   
   
  +#else
   
   /* static module MODULE_VAR_EXPORT embperl_module = { */
   static module embperl_module = {
  @@ -140,11 +172,11 @@
   };
   
   
  +#endif
   
   
   
  -
  -void embperl_ApacheAddModule ()
  +void embperl_ApacheAddModule (apr_pool_t * pool)
   
       {
       bApDebug = ap_exists_config_define("EMBPERL_APDEBUG") ;
  @@ -155,7 +187,11 @@
               aplog_error (APLOG_MARK, APLOG_WARNING | APLOG_NOERRNO, NULL, "Embperl: 
About to add embperl.c as dynamic module [%d/%d]\n", getpid(), gettid()) ;
           
           embperl_module.name = "embperl.c" ;
  +#ifdef APACHE2
  +        ap_add_module (&embperl_module, pool) ;
  +#else
           ap_add_module (&embperl_module) ;
  +#endif
           }
       else
           if (bApDebug)
  @@ -163,18 +199,31 @@
       }
   
   
  -static void embperl_ApacheInit (server_rec *s, pool *p)
  +#ifdef APACHE2
  +static void embperl_ApacheInit (apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, 
server_rec *s)
  +#else
  +static void embperl_ApacheInit (server_rec *s, apr_pool_t *p)
  +#endif
   
       {
       int    rc ;
  +#ifdef APACHE2
  +    apr_pool_t * subpool ;
  +    apr_pool_sub_make(&subpool, p, NULL);
  +#else
       pool * subpool = ap_make_sub_pool(p);
  +#endif
       dTHX ;
       
       if (bApDebug)
           aplog_error (APLOG_MARK, APLOG_WARNING | APLOG_NOERRNO, NULL, "Embperl: 
ApacheInit [%d/%d]\n", getpid(), gettid()) ;
   
       ap_register_cleanup(subpool, NULL, embperl_ApacheInitCleanup, 
embperl_ApacheInitCleanup);
  +#ifdef APACHE2
       ap_add_version_component ("Embperl/"VERSION) ;
  +#else
  +    ap_add_version_component (p, "Embperl/"VERSION) ;
  +#endif
   
       if ((rc = embperl_Init (aTHX_ NULL, NULL, s)) != ok)
           {
  @@ -182,7 +231,12 @@
           }
       }
   
  +
  +#ifdef APACHE2
  +static apr_status_t embperl_ApacheInitCleanup (void * p)
  +#else
   static void embperl_ApacheInitCleanup (void * p)
  +#endif
   
       {
       module * m ;
  @@ -203,7 +257,9 @@
           if (bApDebug)
               aplog_error (APLOG_MARK, APLOG_WARNING | APLOG_NOERRNO, NULL, "Embperl: 
ApacheInitCleanup: mod_perl.c not found [%d/%d]\n", getpid(), gettid()) ;
   
  -            
  +#ifdef APACHE2
  +    return APR_SUCCESS ;
  +#endif
       }
   
   
  
  
  
  1.1.2.51  +2 -2      embperl/Attic/epinit.c
  
  Index: epinit.c
  ===================================================================
  RCS file: /home/cvs/embperl/Attic/epinit.c,v
  retrieving revision 1.1.2.50
  retrieving revision 1.1.2.51
  diff -u -r1.1.2.50 -r1.1.2.51
  --- epinit.c  20 May 2002 11:07:28 -0000      1.1.2.50
  +++ epinit.c  23 May 2002 07:54:48 -0000      1.1.2.51
  @@ -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.50 2002/05/20 11:07:28 richter Exp $
  +#   $Id: epinit.c,v 1.1.2.51 2002/05/23 07:54:48 richter Exp $
   #
   
###################################################################################*/
   
  @@ -709,7 +709,7 @@
           {
           /* when running under mod_perl only register the module */
           /*  rest will be call from module initialzation when config has been read */
  -        embperl_ApacheAddModule () ;
  +        embperl_ApacheAddModule (ap_s -> pool) ;
           return ok ;
           }
   #endif
  
  
  
  1.16.4.14 +3 -3      embperl/epio.c
  
  Index: epio.c
  ===================================================================
  RCS file: /home/cvs/embperl/epio.c,v
  retrieving revision 1.16.4.13
  retrieving revision 1.16.4.14
  diff -u -r1.16.4.13 -r1.16.4.14
  --- epio.c    20 May 2002 11:07:28 -0000      1.16.4.13
  +++ epio.c    23 May 2002 07:54:48 -0000      1.16.4.14
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epio.c,v 1.16.4.13 2002/05/20 11:07:28 richter Exp $
  +#   $Id: epio.c,v 1.16.4.14 2002/05/23 07:54:48 richter Exp $
   #
   
###################################################################################*/
   
  @@ -1193,7 +1193,7 @@
   
       if (r -> pApacheReq)
           {
  -        p = palloc (r -> pApacheReq -> pool, size + sizeof (size)) ;
  +        p = apr_palloc (r -> pApacheReq -> pool, size + sizeof (size)) ;
           }
       else
   #endif
  @@ -1228,7 +1228,7 @@
   #ifdef APACHE
       if (r -> pApacheReq)
           {
  -        p = palloc (r -> pApacheReq -> pool, size + sizeof (size)) ;
  +        p = apr_palloc (r -> pApacheReq -> pool, size + sizeof (size)) ;
           if (p == NULL)
               return NULL ;
           
  
  
  
  1.75.4.117 +9 -9      embperl/epmain.c
  
  Index: epmain.c
  ===================================================================
  RCS file: /home/cvs/embperl/epmain.c,v
  retrieving revision 1.75.4.116
  retrieving revision 1.75.4.117
  diff -u -r1.75.4.116 -r1.75.4.117
  --- epmain.c  20 May 2002 11:07:28 -0000      1.75.4.116
  +++ epmain.c  23 May 2002 07:54:48 -0000      1.75.4.117
  @@ -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.116 2002/05/20 11:07:28 richter Exp $
  +#   $Id: epmain.c,v 1.75.4.117 2002/05/23 07:54:48 richter Exp $
   #
   
###################################################################################*/
   
  @@ -853,7 +853,7 @@
                        p = SvPV(pHeader, ldummy);
                        }
                    if (p) 
  -                     r->pApacheReq->content_type = pstrdup(r->pApacheReq->pool, p);
  +                     r->pApacheReq->content_type = apr_pstrdup(r->pApacheReq->pool, 
p);
                    } 
                else if (SvROK(pHeader)  && SvTYPE(SvRV(pHeader)) == SVt_PVAV ) 
                    {
  @@ -863,8 +863,8 @@
                        {
                        svp = av_fetch(arr, i, 0);
                        p = SvPV(*svp, ldummy);
  -                     table_add( r->pApacheReq->headers_out, 
pstrdup(r->pApacheReq->pool, pKey),
  -                                pstrdup(r->pApacheReq->pool, p ) );
  +                     table_add( r->pApacheReq->headers_out, 
apr_pstrdup(r->pApacheReq->pool, pKey),
  +                                apr_pstrdup(r->pApacheReq->pool, p ) );
                        if (loc == 1) 
                            {
                            loc = 2;
  @@ -875,7 +875,7 @@
                else 
                    {
                    p = SvPV(pHeader, ldummy);
  -                 table_set(r -> pApacheReq->headers_out, pstrdup(r -> 
pApacheReq->pool, pKey), pstrdup(r -> pApacheReq->pool, p)) ;
  +                 table_set(r -> pApacheReq->headers_out, apr_pstrdup(r -> 
pApacheReq->pool, pKey), apr_pstrdup(r -> pApacheReq->pool, p)) ;
                    if (loc == 1) loc = 2;
                    }
   
  @@ -895,11 +895,11 @@
           if (r -> Component.Config.bDebug & dbgHeadersIn)
               {
               int i;
  -            array_header *hdrs_arr;
  -            table_entry  *hdrs;
  +            apr_array_header_t *hdrs_arr;
  +            apr_table_entry_t  *hdrs;
   
  -            hdrs_arr = table_elts (r -> pApacheReq->headers_out);
  -         hdrs = (table_entry *)hdrs_arr->elts;
  +            hdrs_arr = apr_table_elts (r -> pApacheReq->headers_out);
  +         hdrs = (apr_table_entry_t *)hdrs_arr->elts;
   
               lprintf (r -> pApp,   "[%d]HDR:  %d\n", r -> pThread -> nPid, 
hdrs_arr->nelts) ; 
            for (i = 0; i < hdrs_arr->nelts; ++i)
  
  
  
  1.19.4.21 +12 -1     embperl/epnames.h
  
  Index: epnames.h
  ===================================================================
  RCS file: /home/cvs/embperl/epnames.h,v
  retrieving revision 1.19.4.20
  retrieving revision 1.19.4.21
  diff -u -r1.19.4.20 -r1.19.4.21
  --- epnames.h 21 May 2002 07:48:30 -0000      1.19.4.20
  +++ epnames.h 23 May 2002 07:54:48 -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: epnames.h,v 1.19.4.20 2002/05/21 07:48:30 richter Exp $
  +#   $Id: epnames.h,v 1.19.4.21 2002/05/23 07:54:48 richter Exp $
   #
   
###################################################################################*/
   
  @@ -459,3 +459,14 @@
   #endif
   
   #endif
  +
  +
  +#ifndef APACHE2
  +#define apr_pstrdup         ap_pstrdup
  +#define apr_palloc          ap_palloc
  +#define apr_pool_t          pool
  +#define apr_array_header_t  array_header
  +#define apr_table_entry_t   table_entry
  +#define apr_table_elts      table_elts
  +#endif
  +
  
  
  
  1.1.2.17  +2 -2      embperl/Attic/eppriv.h
  
  Index: eppriv.h
  ===================================================================
  RCS file: /home/cvs/embperl/Attic/eppriv.h,v
  retrieving revision 1.1.2.16
  retrieving revision 1.1.2.17
  diff -u -r1.1.2.16 -r1.1.2.17
  --- eppriv.h  20 Mar 2002 08:12:53 -0000      1.1.2.16
  +++ eppriv.h  23 May 2002 07:54:48 -0000      1.1.2.17
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: eppriv.h,v 1.1.2.16 2002/03/20 08:12:53 richter Exp $
  +#   $Id: eppriv.h,v 1.1.2.17 2002/05/23 07:54:48 richter Exp $
   #
   
###################################################################################*/
   
  @@ -158,7 +158,7 @@
   /* --- configuration --- */
   
   
  -void embperl_ApacheAddModule (void) ;
  +void embperl_ApacheAddModule (apr_pool_t * pool) ;
   int embperl_GetApacheConfig (/*in*/ tThreadData * pThread,
                               /*in*/  request_rec * r,
                               /*in*/  server_rec * s,
  
  
  

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

Reply via email to