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]