cvs commit: modperl-2.0/src/modules/perl mod_perl.c modperl_callback.c modperl_callback.h modperl_types.h

2002-02-20 Thread dougm

dougm   02/02/20 17:45:34

  Modified:lib/ModPerl Code.pm
   src/modules/perl mod_perl.c modperl_callback.c
modperl_callback.h modperl_types.h
  Log:
  adjust to pre_connection hook prototype change.
  not supporting PreConnection handler for the moment.
  
  Revision  ChangesPath
  1.75  +8 -2  modperl-2.0/lib/ModPerl/Code.pm
  
  Index: Code.pm
  ===
  RCS file: /home/cvs/modperl-2.0/lib/ModPerl/Code.pm,v
  retrieving revision 1.74
  retrieving revision 1.75
  diff -u -r1.74 -r1.75
  --- Code.pm   18 Dec 2001 05:58:54 -  1.74
  +++ Code.pm   21 Feb 2002 01:45:34 -  1.75
  @@ -18,7 +18,8 @@
 Access Authen Authz
 Type Fixup Response Log
 InputFilter OutputFilter)], #Init Cleanup
  -Connection => [qw(PreConnection ProcessConnection)],
  +Connection => [qw(ProcessConnection)],
  +PreConnection => [qw(PreConnection)],
   );
   
   my %hooks = map { $_, canon_lc($_) }
  @@ -47,6 +48,11 @@
   ret  => 'int',
   args => [{type => 'conn_rec', name => 'c'}],
   },
  +PreConnection => {
  +ret  => 'int',
  +args => [{type => 'conn_rec', name => 'c'},
  + {type => 'void', name => 'csd'}],
  +},
   );
   
   $hook_proto{PerDir} = $hook_proto{PerSrv};
  @@ -73,7 +79,7 @@
   },
   );
   
  -for my $class (qw(Process Connection Files)) {
  +for my $class (qw(Process Connection PreConnection Files)) {
   $directive_proto{$class}->{cfg}->{name} = 'scfg';
   $directive_proto{$class}->{cfg}->{get} = $scfg_get;
   
  
  
  
  1.106 +1 -1  modperl-2.0/src/modules/perl/mod_perl.c
  
  Index: mod_perl.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
  retrieving revision 1.105
  retrieving revision 1.106
  diff -u -r1.105 -r1.106
  --- mod_perl.c18 Jan 2002 06:50:10 -  1.105
  +++ mod_perl.c21 Feb 2002 01:45:34 -  1.106
  @@ -414,7 +414,7 @@
*/
   }
   
  -static int modperl_hook_pre_connection(conn_rec *c)
  +static int modperl_hook_pre_connection(conn_rec *c, void *csd)
   {
   modperl_input_filter_register_connection(c);
   modperl_output_filter_register_connection(c);
  
  
  
  1.48  +5 -0  modperl-2.0/src/modules/perl/modperl_callback.c
  
  Index: modperl_callback.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_callback.c,v
  retrieving revision 1.47
  retrieving revision 1.48
  diff -u -r1.47 -r1.48
  --- modperl_callback.c24 Nov 2001 01:15:01 -  1.47
  +++ modperl_callback.c21 Feb 2002 01:45:34 -  1.48
  @@ -217,6 +217,11 @@
NULL, NULL, NULL);
   }
   
  +int modperl_callback_pre_connection(int idx, conn_rec *c, void *csd)
  +{
  +return DECLINED; /*XXX*/
  +}
  +
   void modperl_callback_process(int idx, apr_pool_t *p, server_rec *s)
   {
   modperl_callback_run_handlers(idx, MP_HANDLER_TYPE_PROCESS,
  
  
  
  1.21  +2 -0  modperl-2.0/src/modules/perl/modperl_callback.h
  
  Index: modperl_callback.h
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_callback.h,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- modperl_callback.h24 Nov 2001 01:15:01 -  1.20
  +++ modperl_callback.h21 Feb 2002 01:45:34 -  1.21
  @@ -25,6 +25,8 @@
   
   int modperl_callback_connection(int idx, conn_rec *c);
   
  +int modperl_callback_pre_connection(int idx, conn_rec *c, void *csd);
  +
   void modperl_callback_process(int idx, apr_pool_t *p, server_rec *s);
   
   int modperl_callback_files(int idx,
  
  
  
  1.56  +1 -0  modperl-2.0/src/modules/perl/modperl_types.h
  
  Index: modperl_types.h
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_types.h,v
  retrieving revision 1.55
  retrieving revision 1.56
  diff -u -r1.55 -r1.56
  --- modperl_types.h   6 Jan 2002 20:45:36 -   1.55
  +++ modperl_types.h   21 Feb 2002 01:45:34 -  1.56
  @@ -119,6 +119,7 @@
   MpAV *handlers_per_srv[MP_HANDLER_NUM_PER_SRV];
   MpAV *handlers_files[MP_HANDLER_NUM_FILES];
   MpAV *handlers_process[MP_HANDLER_NUM_PROCESS];
  +MpAV *handlers_pre_connection[MP_HANDLER_NUM_PRE_CONNECTION];
   MpAV *handlers_connection[MP_HANDLER_NUM_CONNECTION];
   int threaded_mpm;
   #ifdef USE_ITHREADS
  
  
  



cvs commit: modperl-2.0/src/modules/perl mod_perl.c modperl_callback.c modperl_callback.h

2001-03-15 Thread dougm

dougm   01/03/15 21:08:15

  Modified:lib/ModPerl Code.pm
   src/modules/perl mod_perl.c modperl_callback.c
modperl_callback.h
  Log:
  use proper prefix for all modperl_callback_ functions
  
  Revision  ChangesPath
  1.46  +1 -1  modperl-2.0/lib/ModPerl/Code.pm
  
  Index: Code.pm
  ===
  RCS file: /home/cvs/modperl-2.0/lib/ModPerl/Code.pm,v
  retrieving revision 1.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- Code.pm   2001/03/16 04:58:57 1.45
  +++ Code.pm   2001/03/16 05:08:15 1.46
  @@ -167,7 +167,7 @@
   my @register_hooks;
   
   while (my($class, $prototype) = each %{ $self->{hook_proto} }) {
  -my $callback = canon_func($class, 'callback');
  +my $callback = canon_func('callback', $class);
   my $return = $prototype->{ret} eq 'void' ? '' : 'return';
   my $i = -1;
   
  
  
  
  1.37  +1 -1  modperl-2.0/src/modules/perl/mod_perl.c
  
  Index: mod_perl.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- mod_perl.c2001/03/15 04:34:04 1.36
  +++ mod_perl.c2001/03/16 05:08:15 1.37
  @@ -286,7 +286,7 @@
   
   modperl_response_init(r);
   
  -retval = modperl_per_dir_callback(MP_RESPONSE_HANDLER, r);
  +retval = modperl_callback_per_dir(MP_RESPONSE_HANDLER, r);
   
   if ((retval == DECLINED) && r->content_type) {
   r->handler = r->content_type; /* let http_core or whatever try */
  
  
  
  1.31  +21 -16modperl-2.0/src/modules/perl/modperl_callback.c
  
  Index: modperl_callback.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_callback.c,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- modperl_callback.c2001/03/16 04:58:58 1.30
  +++ modperl_callback.c2001/03/16 05:08:15 1.31
  @@ -91,8 +91,8 @@
   return status;
   }
   
  -int modperl_run_handlers(int idx, request_rec *r, conn_rec *c,
  - server_rec *s, int type, ...)
  +int modperl_callback_run_handlers(int idx, request_rec *r, conn_rec *c,
  +  server_rec *s, int type, ...)
   {
   #ifdef USE_ITHREADS
   pTHX;
  @@ -230,33 +230,38 @@
   return status;
   }
   
  -int modperl_per_dir_callback(int idx, request_rec *r)
  +int modperl_callback_per_dir(int idx, request_rec *r)
   {
  -return modperl_run_handlers(idx, r, NULL, r->server,
  -MP_HANDLER_TYPE_PER_DIR);
  +return modperl_callback_run_handlers(idx, r, NULL,
  + r->server,
  + MP_HANDLER_TYPE_PER_DIR);
   }
   
  -int modperl_per_srv_callback(int idx, request_rec *r)
  +int modperl_callback_per_srv(int idx, request_rec *r)
   {
  -return modperl_run_handlers(idx, r, NULL, r->server,
  -MP_HANDLER_TYPE_PER_SRV);
  +return modperl_callback_run_handlers(idx, r, NULL,
  + r->server,
  + MP_HANDLER_TYPE_PER_SRV);
   }
   
  -int modperl_connection_callback(int idx, conn_rec *c)
  +int modperl_callback_connection(int idx, conn_rec *c)
   {
  -return modperl_run_handlers(idx, NULL, c, c->base_server,
  -MP_HANDLER_TYPE_CONNECTION);
  +return modperl_callback_run_handlers(idx, NULL, c,
  + c->base_server,
  + MP_HANDLER_TYPE_CONNECTION);
   }
   
  -void modperl_process_callback(int idx, apr_pool_t *p, server_rec *s)
  +void modperl_callback_process(int idx, apr_pool_t *p, server_rec *s)
   {
  -modperl_run_handlers(idx, NULL, NULL, s, MP_HANDLER_TYPE_PROCESS, p);
  +modperl_callback_run_handlers(idx, NULL, NULL, s,
  +  MP_HANDLER_TYPE_PROCESS, p);
   }
   
  -void modperl_files_callback(int idx,
  +void modperl_callback_files(int idx,
   apr_pool_t *pconf, apr_pool_t *plog,
   apr_pool_t *ptemp, server_rec *s)
   {
  -modperl_run_handlers(idx, NULL, NULL, s, MP_HANDLER_TYPE_FILES,
  - pconf, plog, ptemp);
  +modperl_callback_run_handlers(idx, NULL, NULL, s,
  +  MP_HANDLER_TYPE_FILES,
  +  pconf, plog, ptemp);
   }
  
  
  
  1.17  +9 -9  modperl-2.0/src/modules/perl/modperl_callback.h
  
  Index: modperl_callback.h
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/per

cvs commit: modperl-2.0/src/modules/perl mod_perl.c modperl_callback.c modperl_callback.h modperl_config.c modperl_config.h modperl_interp.c modperl_interp.h modperl_types.h

2000-04-27 Thread dougm

dougm   00/04/27 14:42:26

  Modified:lib/ModPerl Code.pm
   src/modules/perl mod_perl.c modperl_callback.c
modperl_callback.h modperl_config.c
modperl_config.h modperl_interp.c modperl_interp.h
modperl_types.h
  Log:
  stash selected interp object in the given pool (c->pool or r->pool),
  rather than r->request_config, required for Perl*ConnectionHandlers
  
  hookup PerlOpenLogsHandler and PerlChildInitHandler
  
  Revision  ChangesPath
  1.19  +16 -7 modperl-2.0/lib/ModPerl/Code.pm
  
  Index: Code.pm
  ===
  RCS file: /home/cvs/modperl-2.0/lib/ModPerl/Code.pm,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- Code.pm   2000/04/26 07:29:24 1.18
  +++ Code.pm   2000/04/27 21:42:24 1.19
  @@ -8,7 +8,7 @@
   #XXX Init, PreConfig
   my %handlers = (
   Process=> [qw(ChildInit ChildExit Restart)],
  -Files  => [qw(OpenLog PostConfig)],
  +Files  => [qw(OpenLogs PostConfig)],
   PerSrv => [qw(PostReadRequest Trans)],
   PerDir => [qw(HeaderParser
 Access Authen Authz
  @@ -30,6 +30,8 @@
   Log => 'log_transaction',
   PreConnection => 'pre_connection',
   ProcessConnection => 'process_connection',
  +OpenLogs => 'open_logs',
  +ChildInit => 'child_init',
   );
   
   my %hook_proto = (
  @@ -60,13 +62,14 @@
   my $dcfg_get = 
 'modperl_dir_config_t *dcfg = (modperl_dir_config_t *)dummy';
   
  +my $scfg_get = 'MP_dSCFG(parms->server)';
  +
   my %directive_proto = (
   PerSrv => {
   args => [{type => 'cmd_parms', name => 'parms'},
{type => 'void', name => 'dummy'},
{type => 'char', name => 'arg'}],
  -cfg  => {get => 'MP_dSCFG(parms->server)',
  - name => 'scfg'},
  +cfg  => {get => $scfg_get, name => 'scfg'},
   scope => 'RSRC_CONF',
   },
   PerDir => {
  @@ -78,12 +81,18 @@
   },
   );
   
  -while (my($k,$v) = each %directive_proto) {
  -$directive_proto{$k}->{ret} = 'const char *';
  +for my $class (qw(Process Connection Files)) {
  +my $lc_class = lc $class;
  +$directive_proto{$class}->{cfg}->{name} = "scfg->${lc_class}_cfg";
  +$directive_proto{$class}->{cfg}->{get} = $scfg_get;
  +
  +for (qw(args scope)) {
  +$directive_proto{$class}->{$_} = $directive_proto{PerSrv}->{$_};
  +}
   }
   
  -for (qw(Process Connection Files)) {
  -$directive_proto{$_} = $directive_proto{PerSrv};
  +while (my($k,$v) = each %directive_proto) {
  +$directive_proto{$k}->{ret} = 'const char *';
   }
   
   my %flags = (
  
  
  
  1.12  +1 -1  modperl-2.0/src/modules/perl/mod_perl.c
  
  Index: mod_perl.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- mod_perl.c2000/04/26 07:29:25 1.11
  +++ mod_perl.c2000/04/27 21:42:25 1.12
  @@ -61,7 +61,7 @@
   void modperl_register_hooks(void)
   {
   /* XXX: should be pre_config hook or 1.xx logic */
  -ap_hook_open_logs(modperl_hook_init, NULL, NULL, AP_HOOK_MIDDLE);
  +ap_hook_open_logs(modperl_hook_init, NULL, NULL, AP_HOOK_FIRST);
   modperl_register_handler_hooks();
   }
   
  
  
  
  1.6   +52 -24modperl-2.0/src/modules/perl/modperl_callback.c
  
  Index: modperl_callback.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_callback.c,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- modperl_callback.c2000/04/25 05:57:48 1.5
  +++ modperl_callback.c2000/04/27 21:42:25 1.6
  @@ -39,8 +39,7 @@
   ap_status_t modperl_handler_cleanup(void *data)
   {
   modperl_handler_t *handler = (modperl_handler_t *)data;
  -dTHXa(handler->perl);
  -modperl_handler_unparse(aTHX_ handler);
  +modperl_handler_unparse(handler);
   return APR_SUCCESS;
   }
   
  @@ -112,8 +111,9 @@
   return 0;
   }
   
  -void modperl_handler_unparse(pTHX_ modperl_handler_t *handler)
  +void modperl_handler_unparse(modperl_handler_t *handler)
   {
  +dTHXa(handler->perl);
   int was_parsed = handler->args || handler->cv || handler->obj;
   
   if (!MpHandlerPARSED(handler)) {
  @@ -153,6 +153,10 @@
   char *tmp;
   CV *cv;
   
  +#ifdef USE_ITHREADS
  +handler->perl = aTHX;
  +#endif
  +
   if (strnEQ(name, "sub ", 4)) {
   handler->cv = eval_pv(name, FALSE);
   MP_TRACE_h(MP_FUNC, "handler is anonymous\n");
  @@ -279,27 +283,46 @@
   
   #define MP_HANDLER_TYPE_DIR 1
   #define MP_HANDLER_TYPE_SRV 2
  +#define MP_HANDLER_TYPE_CONN 3
  +#define MP_H