cvs commit: modperl-2.0/xs/maps apr_functions.map apr_structures.map apr_types.map

2001-03-15 Thread dougm

dougm   01/03/15 16:01:39

  Modified:xs/maps  apr_functions.map apr_structures.map apr_types.map
  Log:
  add new apr_ipsubnet_ functions
  
  Revision  ChangesPath
  1.4   +5 -1  modperl-2.0/xs/maps/apr_functions.map
  
  Index: apr_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apr_functions.map,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- apr_functions.map 2001/03/13 05:25:11 1.3
  +++ apr_functions.map 2001/03/16 00:01:36 1.4
  @@ -327,11 +327,15 @@
apr_get_user_passwd
apr_get_userid
   
  -!MODULE=APR::NetworkIO
  +MODULE=APR::NetLib
apr_gethostname
apr_getnameinfo
   -apr_getservbyname
apr_parse_addr_port
  +PACKAGE=guess
  + apr_ipsubnet_t *:apr_ipsubnet_create | mpxs_ | \
  +  SV *:CLASS, p, ipstr, mask_or_numbits=NULL | new
  + apr_ipsubnet_test
   
   !MODULE=APR::Getopt
apr_getopt
  
  
  
  1.2   +1 -1  modperl-2.0/xs/maps/apr_structures.map
  
  Index: apr_structures.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apr_structures.map,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- apr_structures.map2001/03/05 03:49:21 1.1
  +++ apr_structures.map2001/03/16 00:01:37 1.2
  @@ -2,7 +2,7 @@
   
   IGNORE: apr_pool_t apr_os_ apr_vformatter_buff_t apr_pool_t \
   apr_table_t apr_in_addr_t apr_bucket_ apr_md5_ctx_t apr_sha1_ctx_t \
  -apr_uuid_t apr_datum_t apr_mmap_t apr_hdtr_t
  +apr_uuid_t apr_datum_t apr_mmap_t apr_hdtr_t apr_ipsubnet_t
   
   #buckets
   
  
  
  
  1.2   +3 -0  modperl-2.0/xs/maps/apr_types.map
  
  Index: apr_types.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apr_types.map,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- apr_types.map 2001/03/05 03:49:21 1.1
  +++ apr_types.map 2001/03/16 00:01:37 1.2
  @@ -15,6 +15,9 @@
   apr_shutdown_how_e  | UNDEFINED
   apr_interface_e | UNDEFINED
   
  +#netlib stuff
  +struct apr_ipsubnet_t   | APR::IpSubnet
  +
   #bucket stuff
   struct apr_bucket   | APR::Bucket
   struct apr_bucket_brigade   | APR::Brigade
  
  
  



cvs commit: modperl-2.0/xs/APR/NetLib APR__NetLib.h

2001-03-15 Thread dougm

dougm   01/03/15 16:02:50

  Added:   xs/APR/NetLib APR__NetLib.h
  Log:
  wrapper for apr_ipsubnet_create()
  
  Revision  ChangesPath
  1.1  modperl-2.0/xs/APR/NetLib/APR__NetLib.h
  
  Index: APR__NetLib.h
  ===
  static MP_INLINE
  apr_ipsubnet_t *mpxs_apr_ipsubnet_create(pTHX_ SV *classname, apr_pool_t *p,
   const char *ipstr,
   const char *mask_or_numbits)
  {
  apr_status_t status;
  apr_ipsubnet_t *ipsub = NULL;
  status = apr_ipsubnet_create(ipsub, ipstr, mask_or_numbits, p);
  return ipsub;
  }
  
  
  



Sites running mod_perl

2001-03-15 Thread Lars Helgeson

I was just visiting the comanche site and saw a list of mod_perl
applications.  Just thought I'd share with you a few sites that I have
created using mod_perl.  Note: these are all on the same quad-P3 server
and receive together over 5,000 uniques per day.  We could not handle
this kind of load without a stable, powerful language like mod_perl.

1.  iceBase.com - a template-driven website builder and HTML email
campaign manager (rebranded under CoolerEmail.com and eKwiq.com)

2.  ArtRover.com - over 120,000 fully indexed works of art from over 20
different databases integrated together using SQL, performs the actual
search in under a second, and then goes out to each of the participating
companies' servers to bring in the images for that art

3.  JustOriginals.com - over 9,000 fully indexed works of art, completes
searches in about 200 ms


Just thought I'd let you know that I appreciate all the work you guys
have put into the software and that it has formed the basis for our
business.

--
Lars Helgeson
President/CEO
Sirius Technologies Inc.
iceBase.com

iceBase.com - Empower Yourself
Build Your Own Websites and Electronic Newsletters in Minutes





cvs commit: modperl-2.0/lib/Apache SourceTables.pm

2001-03-15 Thread dougm

dougm   01/03/15 18:30:47

  Added:   lib/Apache SourceTables.pm
  Log:
  module to include the generated source tables and build hash versions of each
  
  Revision  ChangesPath
  1.1  modperl-2.0/lib/Apache/SourceTables.pm
  
  Index: SourceTables.pm
  ===
  package Apache::SourceTables;
  
  use Apache::StructureTable ();
  use Apache::FunctionTable ();
  
  #build hash versions of the tables
  %Apache::StructureTable =
map { $_-{type}, $_-{elts} } @$Apache::StructureTable;
  
  %Apache::FunctionTable =
map { $_-{name}, {elts = $_-{elts},
   return_type = $_-{return_type} } }
@$Apache::FunctionTable;
  
  1;
  __END__
  
  
  



cvs commit: modperl-2.0/util apr_pool_check.pl

2001-03-15 Thread dougm

dougm   01/03/15 18:32:44

  Added:   util apr_pool_check.pl
  Log:
  script to check which apr_ functions do not have access to a pool
  
  Revision  ChangesPath
  1.1  modperl-2.0/util/apr_pool_check.pl
  
  Index: apr_pool_check.pl
  ===
  #check which apr_ functions do not have access to a pool
  
  use lib qw(lib);
  
  use strict;
  use Apache::SourceTables ();
  
  my($functions, @nopool);
  
  #incomplete types (C::Scan only scans *.h, not *.c) we know have an apr_pool_t
  my %private = map { $_, 1 } qw{
  apr_dir_t apr_file_t apr_dso_handle_t apr_hash_t apr_hash_index_t apr_lock_t
  apr_socket_t apr_pollfd_t apr_threadattr_t apr_thread_t apr_threadkey_t
  apr_procattr_t apr_xlate_t apr_dbm_t apr_xml_parser
  };
  
  for my $entry (@$Apache::FunctionTable) {
  next unless $entry-{name} =~ /^apr_/;
  
  $functions++;
  
  unless (grep { find_pool($_-{type}) } @{ $entry-{args} }) {
  push @nopool, $entry;
  }
  }
  
  my $num_nopool = @nopool;
  
  print "$num_nopool functions (out of $functions) do not have access to a pool:\n\n";
  
  for my $entry (@nopool) {
  print "$entry-{return_type} $entry-{name}(",
(join ', ', map "$_-{type} $_-{name}", @{ $entry-{args} }),
  ")\n\n";
  }
  
  sub find_pool {
  my $type = shift;
  
  return 1 if $type =~ /^apr_pool_t/;
  
  $type =~ s/\s+\*+$//;
  $type =~ s/^(const|struct)\s+//g;
  
  if (my $elts = $Apache::StructureTable{$type}) {
  return 1 if $private{$type};
  
  for my $e (@$elts) {
  next if $e-{type} =~ /^$type/;
  return 1 if find_pool($e-{type});
  }
  }
  }
  
  
  



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: 

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

2001-03-15 Thread dougm

dougm   01/03/15 21:52:29

  Modified:lib/ModPerl Code.pm
   src/modules/perl mod_perl.c mod_perl.h modperl_config.c
modperl_config.h modperl_interp.c modperl_interp.h
  Added:   src/modules/perl modperl_cmd.c modperl_cmd.h
  Log:
  move cmd stuffs into its own module
  
  Revision  ChangesPath
  1.48  +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.47
  retrieving revision 1.48
  diff -u -r1.47 -r1.48
  --- Code.pm   2001/03/16 05:32:34 1.47
  +++ Code.pm   2001/03/16 05:52:28 1.48
  @@ -511,7 +511,7 @@
  generate_trace  = {h = 'modperl_trace.h'},
   );
   
  -my @c_src_names = qw(interp tipool log config options callback handler
  +my @c_src_names = qw(interp tipool log config cmd options callback handler
gtop util filter mgv pcw);
   my @g_c_names = map { "modperl_$_" } qw(hooks directives flags xsinit);
   my @c_names   = ('mod_perl', (map "modperl_$_", @c_src_names));
  
  
  
  1.39  +9 -9  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.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- mod_perl.c2001/03/16 05:32:35 1.38
  +++ mod_perl.c2001/03/16 05:52:29 1.39
  @@ -233,23 +233,23 @@
   }
   
   static const command_rec modperl_cmds[] = {  
  -MP_SRV_CMD_ITERATE("PerlSwitches", switches, "Perl Switches"),
  -MP_SRV_CMD_ITERATE("PerlOptions", options, "Perl Options"),
  +MP_CMD_SRV_ITERATE("PerlSwitches", switches, "Perl Switches"),
  +MP_CMD_SRV_ITERATE("PerlOptions", options, "Perl Options"),
   #ifdef MP_TRACE
  -MP_SRV_CMD_TAKE1("PerlTrace", trace, "Trace level"),
  +MP_CMD_SRV_TAKE1("PerlTrace", trace, "Trace level"),
   #endif
   #ifdef USE_ITHREADS
  -MP_SRV_CMD_TAKE1("PerlInterpStart", interp_start,
  +MP_CMD_SRV_TAKE1("PerlInterpStart", interp_start,
"Number of Perl interpreters to start"),
  -MP_SRV_CMD_TAKE1("PerlInterpMax", interp_max,
  +MP_CMD_SRV_TAKE1("PerlInterpMax", interp_max,
"Max number of running Perl interpreters"),
  -MP_SRV_CMD_TAKE1("PerlInterpMaxSpare", interp_max_spare,
  +MP_CMD_SRV_TAKE1("PerlInterpMaxSpare", interp_max_spare,
"Max number of spare Perl interpreters"),
  -MP_SRV_CMD_TAKE1("PerlInterpMinSpare", interp_min_spare,
  +MP_CMD_SRV_TAKE1("PerlInterpMinSpare", interp_min_spare,
"Min number of spare Perl interpreters"),
  -MP_SRV_CMD_TAKE1("PerlInterpMaxRequests", interp_max_requests,
  +MP_CMD_SRV_TAKE1("PerlInterpMaxRequests", interp_max_requests,
"Max number of requests per Perl interpreters"),
  -MP_DIR_CMD_TAKE1("PerlInterpLifetime", interp_lifetime,
  +MP_CMD_DIR_TAKE1("PerlInterpLifetime", interp_lifetime,
"Lifetime of a Perl interpreter"),
   #endif
   MP_CMD_ENTRIES,
  
  
  
  1.28  +1 -0  modperl-2.0/src/modules/perl/mod_perl.h
  
  Index: mod_perl.h
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.h,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- mod_perl.h2001/03/16 04:58:58 1.27
  +++ mod_perl.h2001/03/16 05:52:29 1.28
  @@ -16,6 +16,7 @@
   #include "modperl_types.h"
   #include "modperl_util.h"
   #include "modperl_config.h"
  +#include "modperl_cmd.h"
   #include "modperl_handler.h"
   #include "modperl_callback.h"
   #include "modperl_tipool.h"
  
  
  
  1.26  +2 -147modperl-2.0/src/modules/perl/modperl_config.c
  
  Index: modperl_config.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_config.c,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- modperl_config.c  2001/03/16 05:32:35 1.25
  +++ modperl_config.c  2001/03/16 05:52:29 1.26
  @@ -1,23 +1,5 @@
   #include "mod_perl.h"
   
  -char *modperl_cmd_push_handlers(MpAV **handlers, const char *name,
  -apr_pool_t *p)
  -{
  -modperl_handler_t *h = modperl_handler_new(p, name);
  -
  -if (!*handlers) {
  -*handlers = apr_array_make(p, 1, sizeof(modperl_handler_t *));
  -MP_TRACE_d(MP_FUNC, "created handler stack\n");
  -}
  -
  -/* XXX parse_handler if Perl is running */
  -
  -*(modperl_handler_t **)apr_array_push(*handlers) = h;
  -MP_TRACE_d(MP_FUNC, "pushed handler: %s\n", h-name);
  -
  -return NULL;
  -}
  -
   void 

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

2001-03-15 Thread dougm

dougm   01/03/15 22:32:15

  Modified:lib/ModPerl Code.pm
   src/modules/perl modperl_callback.c modperl_handler.c
modperl_handler.h
  Log:
  move some code into modperl_handler_lookup_handlers() so it can be reused for 
{get,set,push}_handlers
  
  Revision  ChangesPath
  1.49  +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.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- Code.pm   2001/03/16 05:52:28 1.48
  +++ Code.pm   2001/03/16 06:32:14 1.49
  @@ -113,7 +113,7 @@
   my($self, $h_add, $c_add) = @_;
   local $" = ",\n";
   while (my($class, $h) = each %{ $self-{handler_index_desc} }) {
  -my $func = canon_func($class, 'handler', 'desc');
  +my $func = canon_func('handler', 'desc', $class);
   my $array = join '_', 'MP', $func;
   my $proto = "const char *$func(int idx)";
   
  
  
  
  1.32  +2 -22 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.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- modperl_callback.c2001/03/16 05:08:15 1.31
  +++ modperl_callback.c2001/03/16 06:32:15 1.32
  @@ -114,28 +114,8 @@
   return DECLINED;
   }
   
  -switch (type) {
  -  case MP_HANDLER_TYPE_PER_DIR:
  -av = dcfg-handlers[idx];
  -MP_TRACE_a_do(desc = modperl_per_dir_handler_desc(idx));
  -break;
  -  case MP_HANDLER_TYPE_PER_SRV:
  -av = scfg-handlers[idx];
  -MP_TRACE_a_do(desc = modperl_per_srv_handler_desc(idx));
  -break;
  -  case MP_HANDLER_TYPE_CONNECTION:
  -av = scfg-connection_cfg-handlers[idx];
  -MP_TRACE_a_do(desc = modperl_connection_handler_desc(idx));
  -break;
  -  case MP_HANDLER_TYPE_FILES:
  -av = scfg-files_cfg-handlers[idx];
  -MP_TRACE_a_do(desc = modperl_files_handler_desc(idx));
  -break;
  -  case MP_HANDLER_TYPE_PROCESS:
  -av = scfg-process_cfg-handlers[idx];
  -MP_TRACE_a_do(desc = modperl_process_handler_desc(idx));
  -break;
  -};
  +av = modperl_handler_lookup_handlers(dcfg, scfg, NULL,
  + type, idx, desc);
   
   if (!av) {
   MP_TRACE_h(MP_FUNC, "no %s handlers configured (%s)\n",
  
  
  
  1.2   +37 -0 modperl-2.0/src/modules/perl/modperl_handler.c
  
  Index: modperl_handler.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_handler.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- modperl_handler.c 2001/03/16 04:58:59 1.1
  +++ modperl_handler.c 2001/03/16 06:32:15 1.2
  @@ -60,3 +60,40 @@
   
   va_end(args);
   }
  +
  +#define set_desc(dtype) \
  +MP_TRACE_a_do(if (desc) *desc = modperl_handler_desc_##dtype(idx))
  +
  +MpAV *modperl_handler_lookup_handlers(modperl_config_dir_t *dcfg,
  +  modperl_config_srv_t *scfg,
  +  modperl_config_req_t *rcfg,
  +  int type, int idx,
  +  const char **desc)
  +{
  +MpAV *av = NULL;
  +
  +switch (type) {
  +  case MP_HANDLER_TYPE_PER_DIR:
  +av = dcfg-handlers[idx];
  +set_desc(per_dir);
  +break;
  +  case MP_HANDLER_TYPE_PER_SRV:
  +av = scfg-handlers[idx];
  +set_desc(per_srv);
  +break;
  +  case MP_HANDLER_TYPE_CONNECTION:
  +av = scfg-connection_cfg-handlers[idx];
  +set_desc(connection);
  +break;
  +  case MP_HANDLER_TYPE_FILES:
  +av = scfg-files_cfg-handlers[idx];
  +set_desc(files);
  +break;
  +  case MP_HANDLER_TYPE_PROCESS:
  +av = scfg-process_cfg-handlers[idx];
  +set_desc(process);
  +break;
  +};
  +
  +return av;
  +}
  
  
  
  1.2   +5 -0  modperl-2.0/src/modules/perl/modperl_handler.h
  
  Index: modperl_handler.h
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_handler.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- modperl_handler.h 2001/03/16 04:58:59 1.1
  +++ modperl_handler.h 2001/03/16 06:32:15 1.2
  @@ -8,5 +8,10 @@
   
   void modperl_handler_make_args(pTHX_ AV **avp, ...);
   
  +MpAV *modperl_handler_lookup_handlers(modperl_config_dir_t *dcfg,
  +  modperl_config_srv_t *scfg,
  +

cvs commit: modperl-2.0/src/modules/perl modperl_config.h

2001-03-15 Thread dougm

dougm   01/03/15 22:35:18

  Modified:src/modules/perl modperl_config.h
  Log:
  allow modperl_config_req_get() to not core-dump if r == NULL
  
  Revision  ChangesPath
  1.23  +2 -2  modperl-2.0/src/modules/perl/modperl_config.h
  
  Index: modperl_config.h
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_config.h,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- modperl_config.h  2001/03/16 05:52:29 1.22
  +++ modperl_config.h  2001/03/16 06:35:18 1.23
  @@ -27,8 +27,8 @@
   }
   
   #define modperl_config_req_get(r) \
  - (modperl_config_req_t *) \
  -  ap_get_module_config(r-request_config, perl_module)
  + (r ? (modperl_config_req_t *) \
  +  ap_get_module_config(r-request_config, perl_module) : NULL)
   
   #define MP_dRCFG \
  modperl_config_req_t *rcfg = modperl_config_req_get(r)
  
  
  



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

2001-03-15 Thread dougm

dougm   01/03/15 22:41:46

  Modified:src/modules/perl modperl_callback.c modperl_handler.c
modperl_handler.h
  Log:
  need to return the address incase caller needs to initialize (e.g. push/set)
  
  Revision  ChangesPath
  1.33  +4 -4  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.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- modperl_callback.c2001/03/16 06:32:15 1.32
  +++ modperl_callback.c2001/03/16 06:41:46 1.33
  @@ -102,7 +102,7 @@
   MP_dDCFG;
   modperl_handler_t **handlers;
   apr_pool_t *p = NULL;
  -MpAV *av = NULL;
  +MpAV *av, **avp;
   int i, status = OK;
   const char *desc = NULL;
   va_list args;
  @@ -114,10 +114,10 @@
   return DECLINED;
   }
   
  -av = modperl_handler_lookup_handlers(dcfg, scfg, NULL,
  - type, idx, desc);
  +avp = modperl_handler_lookup_handlers(dcfg, scfg, NULL,
  +  type, idx, desc);
   
  -if (!av) {
  +if (!(avp  (av = *avp))) {
   MP_TRACE_h(MP_FUNC, "no %s handlers configured (%s)\n",
  desc, r ? r-uri : "");
   return DECLINED;
  
  
  
  1.3   +6 -6  modperl-2.0/src/modules/perl/modperl_handler.c
  
  Index: modperl_handler.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_handler.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- modperl_handler.c 2001/03/16 06:32:15 1.2
  +++ modperl_handler.c 2001/03/16 06:41:46 1.3
  @@ -64,11 +64,11 @@
   #define set_desc(dtype) \
   MP_TRACE_a_do(if (desc) *desc = modperl_handler_desc_##dtype(idx))
   
  -MpAV *modperl_handler_lookup_handlers(modperl_config_dir_t *dcfg,
  -  modperl_config_srv_t *scfg,
  -  modperl_config_req_t *rcfg,
  -  int type, int idx,
  -  const char **desc)
  +MpAV **modperl_handler_lookup_handlers(modperl_config_dir_t *dcfg,
  +   modperl_config_srv_t *scfg,
  +   modperl_config_req_t *rcfg,
  +   int type, int idx,
  +   const char **desc)
   {
   MpAV *av = NULL;
   
  @@ -95,5 +95,5 @@
   break;
   };
   
  -return av;
  +return av ? av : NULL;
   }
  
  
  
  1.3   +5 -5  modperl-2.0/src/modules/perl/modperl_handler.h
  
  Index: modperl_handler.h
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_handler.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- modperl_handler.h 2001/03/16 06:32:15 1.2
  +++ modperl_handler.h 2001/03/16 06:41:46 1.3
  @@ -8,10 +8,10 @@
   
   void modperl_handler_make_args(pTHX_ AV **avp, ...);
   
  -MpAV *modperl_handler_lookup_handlers(modperl_config_dir_t *dcfg,
  -  modperl_config_srv_t *scfg,
  -  modperl_config_req_t *rcfg,
  -  int type, int idx,
  -  const char **desc);
  +MpAV **modperl_handler_lookup_handlers(modperl_config_dir_t *dcfg,
  +   modperl_config_srv_t *scfg,
  +   modperl_config_req_t *rcfg,
  +   int type, int idx,
  +   const char **desc);
   
   #endif /* MODPERL_HANDLER_H */
  
  
  



cvs commit: modperl-2.0/src/modules/perl modperl_config.c modperl_filter.c modperl_handler.c modperl_mgv.c modperl_types.h

2001-03-15 Thread dougm

dougm   01/03/15 23:30:25

  Modified:lib/ModPerl Code.pm
   src/modules/perl modperl_config.c modperl_filter.c
modperl_handler.c modperl_mgv.c modperl_types.h
  Log:
  no need for modperl_{files,process,connection}_config_t
  
  Revision  ChangesPath
  1.50  +6 -4  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.49
  retrieving revision 1.50
  diff -u -r1.49 -r1.50
  --- Code.pm   2001/03/16 06:32:14 1.49
  +++ Code.pm   2001/03/16 07:30:21 1.50
  @@ -71,8 +71,7 @@
   );
   
   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}-{name} = 'scfg';
   $directive_proto{$class}-{cfg}-{get} = $scfg_get;
   
   for (qw(args scope)) {
  @@ -82,6 +81,9 @@
   
   while (my($k,$v) = each %directive_proto) {
   $directive_proto{$k}-{ret} = 'const char *';
  +my $handlers = join '_', 'handlers', canon_lc($k);
  +$directive_proto{$k}-{handlers} =
  +  join '-', $directive_proto{$k}-{cfg}-{name}, $handlers;
   }
   
   #XXX: allow disabling of PerDir hooks on a PerDir basis
  @@ -144,7 +146,7 @@
   my $handler_type = canon_define('HANDLER_TYPE', $class);
   
   print $h_fh "\n#define ",
  -  canon_define($class, 'num_handlers'), " $n\n\n";
  +  canon_define('HANDLER_NUM', $class), " $n\n\n";
   
   print $h_fh "#define $handler_type $type\n\n";
   
  @@ -271,7 +273,7 @@
   my $protostr = canon_proto($prototype, $name);
   my $flag = 'MpSrv' . canon_uc($h);
   my $ix = $self-{handler_index}-{$class}-[$i++];
  -my $av = "$prototype-{cfg}-{name}-handlers[$ix]";
  +my $av = "$prototype-{handlers} [$ix]";
   
   print $h_fh "$protostr;\n";
   
  
  
  
  1.27  +13 -22modperl-2.0/src/modules/perl/modperl_config.c
  
  Index: modperl_config.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_config.c,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- modperl_config.c  2001/03/16 05:52:29 1.26
  +++ modperl_config.c  2001/03/16 07:30:22 1.27
  @@ -32,8 +32,8 @@
   { /* XXX: should do a proper merge of the arrays */
 /* XXX: and check if Perl*Handler is disabled */
   int i;
  -for (i=0; iMP_PER_DIR_NUM_HANDLERS; i++) {
  -merge_item(handlers[i]);
  +for (i=0; i  MP_HANDLER_NUM_PER_DIR; i++) {
  +merge_item(handlers_per_dir[i]);
   }
   }
   
  @@ -63,21 +63,6 @@
   
   modperl_config_srv_argv_push((char *)ap_server_argv0);
   
  -#ifdef MP_CONNECTION_NUM_HANDLERS
  -scfg-connection_cfg = (modperl_connection_config_t *)
  -apr_pcalloc(p, sizeof(*scfg-connection_cfg));
  -#endif
  -
  -#ifdef MP_FILES_NUM_HANDLERS
  -scfg-files_cfg = (modperl_files_config_t *)
  -apr_pcalloc(p, sizeof(*scfg-files_cfg));
  -#endif
  -
  -#ifdef MP_PROCESS_NUM_HANDLERS
  -scfg-process_cfg = (modperl_process_config_t *)
  -apr_pcalloc(p, sizeof(*scfg-process_cfg));
  -#endif
  -
   MP_TRACE_d(MP_FUNC, "0x%lx\n", (unsigned long)scfg);
   
   return scfg;
  @@ -161,15 +146,21 @@
   #endif
   
   merge_item(argv);
  -merge_item(files_cfg);
  -merge_item(process_cfg);
  -merge_item(connection_cfg);
   
   { /* XXX: should do a proper merge of the arrays */
 /* XXX: and check if Perl*Handler is disabled */
   int i;
  -for (i=0; iMP_PER_SRV_NUM_HANDLERS; i++) {
  -merge_item(handlers[i]);
  +for (i=0; i  MP_HANDLER_NUM_PER_SRV; i++) {
  +merge_item(handlers_per_srv[i]);
  +}
  +for (i=0; i  MP_HANDLER_NUM_FILES; i++) {
  +merge_item(handlers_files[i]);
  +}
  +for (i=0; i  MP_HANDLER_NUM_PROCESS; i++) {
  +merge_item(handlers_process[i]);
  +}
  +for (i=0; i  MP_HANDLER_NUM_CONNECTION; i++) {
  +merge_item(handlers_connection[i]);
   }
   }
   
  
  
  
  1.10  +1 -1  modperl-2.0/src/modules/perl/modperl_filter.c
  
  Index: modperl_filter.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_filter.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- modperl_filter.c  2001/03/15 05:39:07 1.9
  +++ modperl_filter.c  2001/03/16 07:30:22 1.10
  @@ -336,7 +336,7 @@
   MP_dDCFG;
   MpAV *av;
   
  -if ((av = dcfg-handlers[MP_OUTPUT_FILTER_HANDLER])) {
  +if ((av = dcfg-handlers_per_dir[MP_OUTPUT_FILTER_HANDLER])) {