cvs commit: modperl-2.0/xs/maps apache_functions.map

2002-03-09 Thread dougm

dougm   02/03/09 16:14:23

  Modified:xs/maps  apache_functions.map
  Log:
  Submitted by:   Philippe M. Chiasson <[EMAIL PROTECTED]>
  Reviewed by:  dougm
  fix $r->no_cache
  
  Revision  ChangesPath
  1.45  +0 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- apache_functions.map  26 Feb 2002 19:04:24 -  1.44
  +++ apache_functions.map  10 Mar 2002 00:14:23 -  1.45
  @@ -42,7 +42,6 @@
   !ap_content_type_tolower
ap_get_status_line
ap_is_initial_req
  - mpxs_Apache__RequestRec_no_cache
ap_method_register
   >ap_method_registry_init
   >ap_process_request_internal
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map

2002-02-26 Thread dougm

dougm   02/02/26 11:04:25

  Modified:xs/maps  apache_functions.map
  Log:
  call the modperl wrapper for ap_run_sub_req
  
  Revision  ChangesPath
  1.44  +1 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- apache_functions.map  25 Jan 2002 04:04:22 -  1.43
  +++ apache_functions.map  26 Feb 2002 19:04:24 -  1.44
  @@ -81,7 +81,7 @@
   
   PACKAGE=Apache::SubRequest   ISA=Apache::RequestRec
ap_destroy_sub_req  | | r | DESTROY
  - ap_run_sub_req  | | r | run
  + ap_run_sub_req  | mpxs_ | | run
   
   MODULE=Apache::RequestIO   PACKAGE=Apache::RequestRec
ap_discard_request_body
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map

2002-01-24 Thread dougm

dougm   02/01/24 20:04:22

  Modified:src/modules/perl modperl_filter.c modperl_filter.h
   xs/Apache/Filter Apache__Filter.h
   xs/maps  apache_functions.map
  Log:
  adjust to ap_get_brigade() API change
  
  Revision  ChangesPath
  1.31  +3 -3  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.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- modperl_filter.c  20 Jan 2002 18:37:04 -  1.30
  +++ modperl_filter.c  25 Jan 2002 04:04:22 -  1.31
  @@ -116,7 +116,7 @@
   int modperl_run_filter(modperl_filter_t *filter,
  ap_input_mode_t mode,
  apr_read_type_e block,
  -   apr_off_t *readbytes)
  +   apr_off_t readbytes)
   {
   AV *args = Nullav;
   int status;
  @@ -140,7 +140,7 @@
   if (filter->mode == MP_INPUT_FILTER_MODE) {
   av_push(args, newSViv(mode));
   av_push(args, newSViv(block));
  -av_push(args, newSViv(*readbytes));
  +av_push(args, newSViv(readbytes));
   }
   
   if ((status = modperl_callback(aTHX_ handler, p, r, s, args)) != OK) {
  @@ -394,7 +394,7 @@
 apr_bucket_brigade *bb,
 ap_input_mode_t mode,
 apr_read_type_e block,
  -  apr_off_t *readbytes)
  +  apr_off_t readbytes)
   {
   modperl_filter_t *filter;
   int status;
  
  
  
  1.12  +2 -2  modperl-2.0/src/modules/perl/modperl_filter.h
  
  Index: modperl_filter.h
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_filter.h,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- modperl_filter.h  20 Jan 2002 18:37:04 -  1.11
  +++ modperl_filter.h  25 Jan 2002 04:04:22 -  1.12
  @@ -28,7 +28,7 @@
   int modperl_run_filter(modperl_filter_t *filter,
  ap_input_mode_t mode,
  apr_read_type_e block,
  -   apr_off_t *readbytes);
  +   apr_off_t readbytes);
   
   /* output filters */
   apr_status_t modperl_output_filter_handler(ap_filter_t *f,
  @@ -56,7 +56,7 @@
 apr_bucket_brigade *bb,
 ap_input_mode_t mode,
 apr_read_type_e block,
  -  apr_off_t *readbytes);
  +  apr_off_t readbytes);
   
   void modperl_input_filter_register_connection(conn_rec *c);
   
  
  
  
  1.18  +0 -17 modperl-2.0/xs/Apache/Filter/Apache__Filter.h
  
  Index: Apache__Filter.h
  ===
  RCS file: /home/cvs/modperl-2.0/xs/Apache/Filter/Apache__Filter.h,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- Apache__Filter.h  20 Jan 2002 18:37:05 -  1.17
  +++ Apache__Filter.h  25 Jan 2002 04:04:22 -  1.18
  @@ -60,23 +60,6 @@
   return len;
   }
   
  -static apr_status_t mpxs_ap_get_brigade(pTHX_ ap_filter_t *filter,
  -apr_bucket_brigade *brigade,
  -ap_input_mode_t mode,
  -apr_read_type_e block,
  -SV *svreadbytes)
  -{
  -apr_off_t readbytes = svreadbytes ? SvIV(svreadbytes) : 0;
  -apr_status_t status = ap_get_brigade(filter, brigade,
  - mode, block, &readbytes);
  -
  -if (svreadbytes) {
  -sv_setiv(svreadbytes, readbytes);
  -}
  -
  -return status;
  -}
  -
   static MP_INLINE U32 *modperl_filter_attributes(SV *package, SV *cvrv)
   {
   return (U32 *)&MP_CODE_ATTRS(SvRV(cvrv));
  
  
  
  1.43  +2 -2  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- apache_functions.map  21 Jan 2002 08:27:30 -  1.42
  +++ apache_functions.map  25 Jan 2002 04:04:22 -  1.43
  @@ -203,10 +203,10 @@
   PACKAGE=guess
   ~ap_add_output_filter
   ~ap_add_input_filter
  - ap_get_brigade | mpxs_ | \
  + ap_get_brigade | | \
  filter, bucket, mode=AP_MODE_READBYTES, \
  block=APR_BLOCK_READ, \
  -

cvs commit: modperl-2.0/xs/maps apache_functions.map modperl_functions.map

2002-01-21 Thread stas

stas02/01/21 00:27:30

  Modified:xs/Apache/Response Apache__Response.h
   xs/maps  apache_functions.map modperl_functions.map
  Log:
  - write a wrapper for $r->set_last_modified() to be the same as in 1.x
  - specify default values for $r->set_content_length and $r->update_mtime
  as in 1.x
  
  Revision  ChangesPath
  1.6   +9 -0  modperl-2.0/xs/Apache/Response/Apache__Response.h
  
  Index: Apache__Response.h
  ===
  RCS file: /home/cvs/modperl-2.0/xs/Apache/Response/Apache__Response.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Apache__Response.h6 Jan 2002 22:23:24 -   1.5
  +++ Apache__Response.h21 Jan 2002 08:27:30 -  1.6
  @@ -25,3 +25,12 @@
   
   rcfg->wbucket->header_parse = 0; /* turn off PerlOptions +ParseHeaders */
   }
  +
  +static MP_INLINE void
  +mpxs_Apache__RequestRec_set_last_modified(request_rec *r, apr_time_t mtime)
  +{
  +if (mtime) {
  +ap_update_mtime(r, mtime);
  +}
  +ap_set_last_modified(r);
  +}
  
  
  
  1.42  +3 -3  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- apache_functions.map  20 Jan 2002 18:37:05 -  1.41
  +++ apache_functions.map  21 Jan 2002 08:27:30 -  1.42
  @@ -100,16 +100,16 @@
   
   MODULE=Apache::Response   PACKAGE=guess
ap_make_etag | | r, force_weak=0
  - ap_set_content_length
  + ap_set_content_length | | r, length=r->finfo.csize
ap_set_etag
ap_meets_conditions
ap_rationalize_mtime
  - ap_update_mtime
  + ap_update_mtime | | r, dependency_mtime=0
ap_send_error_response
   ~ap_send_fd
ap_send_mmap | | r, mm, offset, length
ap_set_keepalive
  - ap_set_last_modified
  +-ap_set_last_modified
ap_custom_response
   
   MODULE=Apache::Access   PACKAGE=Apache::RequestRec
  
  
  
  1.33  +2 -0  modperl-2.0/xs/maps/modperl_functions.map
  
  Index: modperl_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/modperl_functions.map,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- modperl_functions.map 8 Jan 2002 22:48:38 -   1.32
  +++ modperl_functions.map 21 Jan 2002 08:27:30 -  1.33
  @@ -43,6 +43,8 @@
   MODULE=Apache::Response   PACKAGE=Apache::RequestRec
   DEFINE_send_cgi_header | | request_rec *:r, SV *:buffer
mpxs_Apache__RequestRec_send_http_header | | r, type=NULL
  + mpxs_Apache__RequestRec_set_last_modified | | r, mtime=0
  +
   
   MODULE=Apache::ServerUtil   PACKAGE=guess
mpxs_Apache__Server_push_handlers
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map

2002-01-20 Thread dougm

dougm   02/01/20 10:37:05

  Modified:src/modules/perl modperl_filter.c modperl_filter.h
   t/filter/TestFilter input_body.pm input_msg.pm
   t/protocol/TestProtocol echo_filter.pm
   xs/Apache/Filter Apache__Filter.h
   xs/maps  apache_functions.map
  Log:
  adjust to ap_get_brigade and input filter api changes
  
  Revision  ChangesPath
  1.30  +7 -3  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.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- modperl_filter.c  8 Jan 2002 00:04:33 -   1.29
  +++ modperl_filter.c  20 Jan 2002 18:37:04 -  1.30
  @@ -113,7 +113,9 @@
   return mg ? (modperl_filter_t *)mg->mg_ptr : NULL;
   }
   
  -int modperl_run_filter(modperl_filter_t *filter, ap_input_mode_t mode,
  +int modperl_run_filter(modperl_filter_t *filter,
  +   ap_input_mode_t mode,
  +   apr_read_type_e block,
  apr_off_t *readbytes)
   {
   AV *args = Nullav;
  @@ -137,6 +139,7 @@
   
   if (filter->mode == MP_INPUT_FILTER_MODE) {
   av_push(args, newSViv(mode));
  +av_push(args, newSViv(block));
   av_push(args, newSViv(*readbytes));
   }
   
  @@ -374,7 +377,7 @@
   }
   else {
   filter = modperl_filter_new(f, bb, MP_OUTPUT_FILTER_MODE);
  -status = modperl_run_filter(filter, 0, 0);
  +status = modperl_run_filter(filter, 0, 0, 0);
   }
   
   switch (status) {
  @@ -390,6 +393,7 @@
   apr_status_t modperl_input_filter_handler(ap_filter_t *f,
 apr_bucket_brigade *bb,
 ap_input_mode_t mode,
  +  apr_read_type_e block,
 apr_off_t *readbytes)
   {
   modperl_filter_t *filter;
  @@ -402,7 +406,7 @@
   }
   else {
   filter = modperl_filter_new(f, bb, MP_INPUT_FILTER_MODE);
  -status = modperl_run_filter(filter, mode, readbytes);
  +status = modperl_run_filter(filter, mode, block, readbytes);
   }
   
   switch (status) {
  
  
  
  1.11  +4 -1  modperl-2.0/src/modules/perl/modperl_filter.h
  
  Index: modperl_filter.h
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_filter.h,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- modperl_filter.h  9 Aug 2001 16:52:51 -   1.10
  +++ modperl_filter.h  20 Jan 2002 18:37:04 -  1.11
  @@ -25,7 +25,9 @@
   
   modperl_filter_t *modperl_filter_mg_get(pTHX_ SV *obj);
   
  -int modperl_run_filter(modperl_filter_t *filter, ap_input_mode_t mode,
  +int modperl_run_filter(modperl_filter_t *filter,
  +   ap_input_mode_t mode,
  +   apr_read_type_e block,
  apr_off_t *readbytes);
   
   /* output filters */
  @@ -53,6 +55,7 @@
   apr_status_t modperl_input_filter_handler(ap_filter_t *f,
 apr_bucket_brigade *bb,
 ap_input_mode_t mode,
  +  apr_read_type_e block,
 apr_off_t *readbytes);
   
   void modperl_input_filter_register_connection(conn_rec *c);
  
  
  
  1.9   +2 -2  modperl-2.0/t/filter/TestFilter/input_body.pm
  
  Index: input_body.pm
  ===
  RCS file: /home/cvs/modperl-2.0/t/filter/TestFilter/input_body.pm,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- input_body.pm 21 Dec 2001 11:30:38 -  1.8
  +++ input_body.pm 20 Jan 2002 18:37:05 -  1.9
  @@ -11,11 +11,11 @@
   use APR::Bucket ();
   
   sub handler : FilterRequestHandler {
  -my($filter, $bb, $mode, $readbytes) = @_;
  +my($filter, $bb, $mode, $block, $readbytes) = @_;
   
   my $ctx_bb = APR::Brigade->new($filter->r->pool);
   
  -my $rv = $filter->next->get_brigade($ctx_bb, $mode, $readbytes);
  +my $rv = $filter->next->get_brigade($ctx_bb, $mode, $block, $readbytes);
   
   if ($rv != APR::SUCCESS) {
   return $rv;
  
  
  
  1.9   +2 -2  modperl-2.0/t/filter/TestFilter/input_msg.pm
  
  Index: input_msg.pm
  ===
  RCS file: /home/cvs/modperl-2.0/t/filter/TestFilter/input_msg.pm,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- input_msg.pm  21 Dec 2001 11:30:38 -  1.8
  +++ input_msg.pm  20 Jan 2002 18:37:05 -  1.9
  @

cvs commit: modperl-2.0/xs/maps apache_functions.map

2001-12-04 Thread dougm

dougm   01/12/04 14:42:29

  Modified:xs/maps  apache_functions.map
  Log:
  properly default next_filter for subrequest methods to r->output_filters->next 
rather than NULL
  
  Revision  ChangesPath
  1.40  +3 -3  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- apache_functions.map  2001/11/19 23:46:48 1.39
  +++ apache_functions.map  2001/12/04 22:42:29 1.40
  @@ -71,13 +71,13 @@
ap_sub_req_lookup_dirent
   
   subrequest_rec *:ap_sub_req_lookup_file | | \
  - r, new_file, next_filter=NULL | lookup_file
  + r, new_file, next_filter=r->output_filters->next | lookup_file
   
   subrequest_rec *:ap_sub_req_lookup_uri  | | \
  - r, new_file, next_filter=NULL | lookup_uri
  + r, new_file, next_filter=r->output_filters->next | lookup_uri
   
   subrequest_rec *:ap_sub_req_method_uri  | | \
  - r, method, new_file, next_filter=NULL | lookup_method_uri
  + r, method, new_file, next_filter=r->output_filters->next | lookup_method_uri
   
   PACKAGE=Apache::SubRequest   ISA=Apache::RequestRec
ap_destroy_sub_req  | | r | DESTROY
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map

2001-11-19 Thread dougm

dougm   01/11/19 15:46:48

  Modified:xs/Apache/ServerUtil Apache__ServerUtil.h
   xs/maps  apache_functions.map
  Log:
  add Apache::server_root constant
  
  Revision  ChangesPath
  1.8   +6 -0  modperl-2.0/xs/Apache/ServerUtil/Apache__ServerUtil.h
  
  Index: Apache__ServerUtil.h
  ===
  RCS file: /home/cvs/modperl-2.0/xs/Apache/ServerUtil/Apache__ServerUtil.h,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- Apache__ServerUtil.h  2001/11/19 23:32:00 1.7
  +++ Apache__ServerUtil.h  2001/11/19 23:46:48 1.8
  @@ -50,3 +50,9 @@
   
   return ap_server_root_relative(p, fname);
   }
  +
  +static void mpxs_Apache__ServerUtil_BOOT(pTHX)
  +{
  +newCONSTSUB(PL_defstash, "Apache::server_root",
  +newSVpv(ap_server_root, 0));
  +}
  
  
  
  1.39  +1 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- apache_functions.map  2001/11/19 23:32:00 1.38
  +++ apache_functions.map  2001/11/19 23:46:48 1.39
  @@ -138,7 +138,7 @@
   -ap_scan_script_header_err_core
   -ap_scan_script_header_err_strs
   
  -MODULE=Apache::ServerUtil   PACKAGE=guess
  +MODULE=Apache::ServerUtil   PACKAGE=guess   BOOT=1
ap_add_version_component
ap_construct_server
ap_construct_url | | r,uri,p
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map

2001-11-12 Thread dougm

dougm   01/11/12 14:42:28

  Modified:t/response/TestAPI server_util.pm
   xs/Apache/ServerUtil Apache__ServerUtil.h
   xs/maps  apache_functions.map
  Log:
  default Apache::server_root_relative() fname to ""
  
  Revision  ChangesPath
  1.2   +9 -5  modperl-2.0/t/response/TestAPI/server_util.pm
  
  Index: server_util.pm
  ===
  RCS file: /home/cvs/modperl-2.0/t/response/TestAPI/server_util.pm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- server_util.pm2001/11/12 22:39:04 1.1
  +++ server_util.pm2001/11/12 22:42:28 1.2
  @@ -14,15 +14,19 @@
   
   my $s = $r->server;
   
  -plan $r, tests => 2;
  +plan $r, tests => 3;
   
  -my $t_dir = Apache::server_root_relative('conf', $r->pool);
  +my $dir = Apache::server_root_relative('conf', $r->pool);
   
  -ok -d $t_dir;
  +ok -d $dir;
   
  -$t_dir = Apache::server_root_relative('logs');
  +$dir = Apache::server_root_relative('logs');
   
  -ok -d $t_dir;
  +ok -d $dir;
  +
  +$dir = Apache::server_root_relative();
  +
  +ok -d $dir;
   
   Apache::OK;
   }
  
  
  
  1.6   +4 -0  modperl-2.0/xs/Apache/ServerUtil/Apache__ServerUtil.h
  
  Index: Apache__ServerUtil.h
  ===
  RCS file: /home/cvs/modperl-2.0/xs/Apache/ServerUtil/Apache__ServerUtil.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Apache__ServerUtil.h  2001/11/12 22:38:27 1.5
  +++ Apache__ServerUtil.h  2001/11/12 22:42:28 1.6
  @@ -46,6 +46,10 @@
   const char *fname,
   apr_pool_t *p)
   {
  +if (!fname) {
  +fname = "";
  +}
  +
   if (!p) {
   /* XXX: should do something better if called at request time
* without a pool
  
  
  
  1.37  +1 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- apache_functions.map  2001/11/12 22:38:27 1.36
  +++ apache_functions.map  2001/11/12 22:42:28 1.37
  @@ -152,7 +152,7 @@
ap_get_server_built
ap_get_server_version
ap_psignature | | r,prefix
  - ap_server_root_relative | mpxs_ | fname, p=NULL
  + ap_server_root_relative | mpxs_ | fname=NULL, p=NULL
   
   MODULE=Apache::Connection   PACKAGE=guess
ap_get_remote_host
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map modperl_functions.map

2001-11-06 Thread dougm

dougm   01/11/06 10:41:46

  Modified:todo api.txt
   xs/Apache/RequestIO Apache__RequestIO.h
   xs/maps  apache_functions.map modperl_functions.map
  Log:
  add Apache::RequestIO::{printf,PRINTF} methods
  
  Revision  ChangesPath
  1.13  +1 -1  modperl-2.0/todo/api.txt
  
  Index: api.txt
  ===
  RCS file: /home/cvs/modperl-2.0/todo/api.txt,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- api.txt   2001/10/29 01:19:16 1.12
  +++ api.txt   2001/11/06 18:41:46 1.13
  @@ -3,7 +3,7 @@
   --
   
   tied filehandle interface:
  - -CLOSE, GETC, PRINTF, READLINE
  + -CLOSE, GETC, READLINE
   
   $r->finfo:
   need apr_finfo_t <-> struct stat conversion (might already be there,
  
  
  
  1.18  +30 -1 modperl-2.0/xs/Apache/RequestIO/Apache__RequestIO.h
  
  Index: Apache__RequestIO.h
  ===
  RCS file: /home/cvs/modperl-2.0/xs/Apache/RequestIO/Apache__RequestIO.h,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- Apache__RequestIO.h   2001/11/06 17:50:56 1.17
  +++ Apache__RequestIO.h   2001/11/06 18:41:46 1.18
  @@ -1,7 +1,8 @@
   #define mpxs_Apache__RequestRec_TIEHANDLE(stashsv, sv) \
   modperl_newSVsv_obj(aTHX_ stashsv, sv)
   
  -#define mpxs_Apache__RequestRec_PRINT mpxs_Apache__RequestRec_print
  +#define mpxs_Apache__RequestRec_PRINT  mpxs_Apache__RequestRec_print
  +#define mpxs_Apache__RequestRec_PRINTF mpxs_ap_rprintf
   
   #define mpxs_output_flush(r, rcfg) \
   /* if ($|) */ \
  @@ -55,6 +56,34 @@
   
   mpxs_output_flush(r, rcfg);
   
  +return bytes;
  +}  
  +
  +static MP_INLINE
  +apr_size_t mpxs_ap_rprintf(pTHX_ I32 items, SV **MARK, SV **SP)
  +{
  +modperl_config_req_t *rcfg;
  +request_rec *r;
  +apr_size_t bytes = 0;
  +SV *sv;
  +
  +mpxs_usage_va(2, r, "$r->printf($fmt, ...)");
  +
  +rcfg = modperl_config_req_get(r);
  +
  +/* XXX: we could have an rcfg->sprintf_buffer to reuse this SV
  + * across requests
  + */
  +sv = newSV(0);
  +modperl_perl_do_sprintf(aTHX_ sv, items, MARK);
  +bytes = SvCUR(sv);
  +
  +modperl_wbucket_write(&rcfg->wbucket, SvPVX(sv), &bytes);
  +
  +mpxs_output_flush(r, rcfg);
  +
  +SvREFCNT_dec(sv);
  +
   return bytes;
   }  
   
  
  
  
  1.35  +1 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- apache_functions.map  2001/10/22 02:46:55 1.34
  +++ apache_functions.map  2001/11/06 18:41:46 1.35
  @@ -92,7 +92,7 @@
ap_rflush
   PREFIX=ap_r
   ~ap_rwrite
  -~ap_rprintf
  + ap_rprintf | mpxs_ | ...
   !ap_rputc
   ~ap_rputs
ap_rvputs | mpxs_ | ... | puts
  
  
  
  1.26  +3 -2  modperl-2.0/xs/maps/modperl_functions.map
  
  Index: modperl_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/modperl_functions.map,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- modperl_functions.map 2001/10/29 01:19:16 1.25
  +++ modperl_functions.map 2001/11/06 18:41:46 1.26
  @@ -25,8 +25,9 @@
mpxs_Apache_request | | classname, svr=Nullsv
   
   MODULE=Apache::RequestIO   PACKAGE=Apache::RequestRec
  - SV *:DEFINE_TIEHANDLE   | | SV *:stashsv, SV *:sv=Nullsv
  - apr_size_t:DEFINE_PRINT | | ...
  + SV *:DEFINE_TIEHANDLE| | SV *:stashsv, SV *:sv=Nullsv
  + apr_size_t:DEFINE_PRINT  | | ...
  + apr_size_t:DEFINE_PRINTF | | ...
mpxs_Apache__RequestRec_sendfile | | r, filename=r->filename, offset=0, len=0
mpxs_Apache__RequestRec_read | | r, buffer, bufsiz, offset=0
long:DEFINE_READ | | request_rec *:r, SV *:buffer, int:bufsiz, int:offset=0
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map

2001-10-21 Thread dougm

dougm   01/10/21 19:46:55

  Modified:xs/maps  apache_functions.map
  Log:
  ap_get_local_host is not exported
  
  Revision  ChangesPath
  1.34  +3 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -r1.33 -r1.34
  --- apache_functions.map  2001/10/22 01:54:02 1.33
  +++ apache_functions.map  2001/10/22 02:46:55 1.34
  @@ -146,7 +146,9 @@
   
   #MODULE=Apache::ServerConfig
ap_exists_config_define
  - ap_get_local_host
  +#XXX: thought this might be useful
  +#however it is not exported on win32
  +!ap_get_local_host
ap_get_server_built
ap_get_server_version
ap_psignature | | r,prefix
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map

2001-10-21 Thread dougm

dougm   01/10/21 18:54:02

  Modified:xs/maps  apache_functions.map
  Log:
  disable Apache::Connection::read_request (not available on all platforms)
  
  Revision  ChangesPath
  1.33  +3 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- apache_functions.map  2001/10/07 19:22:49 1.32
  +++ apache_functions.map  2001/10/22 01:54:02 1.33
  @@ -154,7 +154,9 @@
   
   MODULE=Apache::Connection   PACKAGE=guess
ap_get_remote_host
  - ap_read_request
  +#XXX: thought this might be useful for protocol modules
  +#however it is not exported on win32
  +!ap_read_request
   >ap_update_vhost_given_ip
   
   MODULE=Apache::Log   PACKAGE=guess
  
  
  



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

2001-10-07 Thread dougm

dougm   01/10/07 12:22:49

  Modified:lib/ModPerl TypeMap.pm
   xs/Apache/Filter Apache__Filter.h
   xs/maps  apache_functions.map apr_functions.map
  Log:
  remove ModPerl::TypeMap::first_class guessing based on return_type
  
  Revision  ChangesPath
  1.11  +0 -2  modperl-2.0/lib/ModPerl/TypeMap.pm
  
  Index: TypeMap.pm
  ===
  RCS file: /home/cvs/modperl-2.0/lib/ModPerl/TypeMap.pm,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- TypeMap.pm2001/09/15 18:17:31 1.10
  +++ TypeMap.pm2001/10/07 19:22:49 1.11
  @@ -266,8 +266,6 @@
   sub first_class {
   my($self, $func) = @_;
   
  -return $func->{return_type} if $func->{return_type} =~ /::/;
  -
   for my $e (@{ $func->{args} }) {
   next unless $e->{type} =~ /::/;
   #there are alot of util functions that take an APR::Pool
  
  
  
  1.15  +3 -0  modperl-2.0/xs/Apache/Filter/Apache__Filter.h
  
  Index: Apache__Filter.h
  ===
  RCS file: /home/cvs/modperl-2.0/xs/Apache/Filter/Apache__Filter.h,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- Apache__Filter.h  2001/08/30 01:08:24 1.14
  +++ Apache__Filter.h  2001/10/07 19:22:49 1.15
  @@ -1,6 +1,9 @@
   #define mpxs_Apache__RequestRec_add_output_filter(r, name, ctx) \
   ap_add_output_filter(name, ctx, r, NULL)
   
  +#define mpxs_Apache__RequestRec_add_input_filter(r, name, ctx) \
  +ap_add_output_filter(name, ctx, r, NULL)
  +
   #define mp_xs_sv2_modperl_filter(sv) \
   ((SvROK(sv) && (SvTYPE(SvRV(sv)) == SVt_PVMG)) \
   || (Perl_croak(aTHX_ "argument is not a blessed reference"),0) ? \
  
  
  
  1.32  +3 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- apache_functions.map  2001/10/06 01:03:27 1.31
  +++ apache_functions.map  2001/10/07 19:22:49 1.32
  @@ -193,10 +193,12 @@
   MODULE=Apache::Filter PACKAGE=Apache::RequestRec
   ap_filter_t *:DEFINE_add_output_filter | | \
 request_rec *:r, const char *:name, void *:ctx
  +ap_filter_t *:DEFINE_add_input_filter | | \
  +  request_rec *:r, const char *:name, void *:ctx
   
   PACKAGE=guess
   ~ap_add_output_filter
  - ap_add_input_filter
  +~ap_add_input_filter
ap_get_brigade | mpxs_ | \
  filter, bucket, mode=AP_MODE_NONBLOCKING, SV *:readbytes=Nullsv
ap_pass_brigade
  
  
  
  1.24  +1 -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.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- apr_functions.map 2001/09/28 17:20:32 1.23
  +++ apr_functions.map 2001/10/07 19:22:49 1.24
  @@ -454,7 +454,7 @@
apr_getnameinfo
   -apr_getservbyname
apr_parse_addr_port
  -PACKAGE=guess
  +PACKAGE=APR::IpSubnet
apr_ipsubnet_t *:apr_ipsubnet_create | mpxs_ | \
 SV *:CLASS, p, ipstr, mask_or_numbits=NULL | new
apr_ipsubnet_test
  
  
  



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

2001-09-16 Thread dougm

dougm   01/09/16 18:06:08

  Modified:xs/maps  apache_functions.map apr_functions.map
  Log:
  mark some functions that will not be available via Perl
  
  Revision  ChangesPath
  1.30  +1 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- apache_functions.map  2001/09/10 04:56:13 1.29
  +++ apache_functions.map  2001/09/17 01:06:08 1.30
  @@ -410,7 +410,7 @@
ap_run_log_transaction
   >ap_run_rewrite_args
ap_run_create_request
  - ap_run_error_log
  +>ap_run_error_log
   >ap_run_get_mgmt_items
ap_run_map_to_storage
   >ap_run_pre_mpm
  
  
  
  1.21  +3 -3  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.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- apr_functions.map 2001/09/17 00:38:07 1.20
  +++ apr_functions.map 2001/09/17 01:06:08 1.21
  @@ -75,7 +75,7 @@
apr_brigade_destroy
   !apr_brigade_partition
apr_brigade_printf
  - apr_brigade_putstrs
  +-apr_brigade_putstrs
apr_brigade_split
   -apr_brigade_to_iovec
   -apr_brigade_vprintf
  @@ -83,7 +83,7 @@
   !apr_brigade_length
apr_brigade_write
apr_brigade_puts
  - apr_brigade_putc
  +-apr_brigade_putc
   !apr_brigade_cleanup
mpxs_APR__Brigade_first#APR_BRIGADE_FIRST
mpxs_APR__Brigade_last #APR_BRIGADE_LAST
  @@ -159,7 +159,7 @@
apr_pool_get_abort
apr_pool_get_parent
apr_pool_is_ancestor
  - apr_pool_set_abort
  +-apr_pool_set_abort
   
   MODULE=APR::Lock
   !apr_lock_child_init
  
  
  



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

2001-09-09 Thread dougm

dougm   01/09/09 21:56:14

  Modified:xs/maps  apache_functions.map apr_functions.map
  Log:
  update function maps wrt current httpd-2.0
  
  Revision  ChangesPath
  1.29  +73 -6 modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- apache_functions.map  2001/09/08 18:26:46 1.28
  +++ apache_functions.map  2001/09/10 04:56:13 1.29
  @@ -36,7 +36,6 @@
   
   MODULE=Apache::RequestUtil   PACKAGE=guess
   >ap_finalize_request_protocol
  -?ap_default_port_for_request
ap_default_type
ap_get_server_name
ap_get_server_port
  @@ -44,6 +43,9 @@
ap_get_status_line
ap_is_initial_req
mpxs_Apache__RequestRec_no_cache
  + ap_method_register
  +>ap_method_registry_init
  +>ap_process_request_internal
   
   #MODULE=Apache::RequestConfig
ap_document_root
  @@ -51,12 +53,22 @@
   ?ap_get_limit_xml_body
   >ap_core_translate
   
  +>MODULE=Apache::Core
  + ap_basic_http_header
  + ap_dechunk_filter
  + ap_http_filter
  + ap_send_http_options
  + ap_send_http_trace
  + ap_response_code_string
  +
   MODULE=Apache::SubRequest   PACKAGE=Apache::RequestRec
   ?ap_sub_req_output_filter
   >ap_set_sub_req_protocol
   -ap_finalize_sub_req_protocol
ap_internal_redirect | | r, new_uri
ap_internal_redirect_handler | | r, new_uri
  + ap_internal_fast_redirect
  + ap_sub_req_lookup_dirent
   
   subrequest_rec *:ap_sub_req_lookup_file | | \
r, new_file, next_filter=NULL | lookup_file
  @@ -144,7 +156,6 @@
ap_get_remote_host
ap_read_request
   >ap_update_vhost_given_ip
  - ap_new_connection
   
   MODULE=Apache::Log   PACKAGE=guess
   ?ap_log_assert
  @@ -191,6 +202,7 @@
ap_register_input_filter
ap_register_output_filter
ap_remove_output_filter
  + ap_remove_input_filter
   !ap_save_brigade
ap_filter_flush
ap_fflush
  @@ -218,7 +230,6 @@
ap_pcfg_open_custom
ap_pcfg_openfile
   >ap_read_config
  ->ap_create_request_config
   >ap_merge_per_dir_configs
   >ap_create_conn_config
   >ap_parse_htaccess
  @@ -228,14 +239,15 @@
command_rec *:DEFINE_next | | command_rec *:cmd
ap_check_cmd_context
ap_soak_end_container
  +-ap_set_int_slot
   -ap_set_file_slot
   -ap_set_flag_slot
   -ap_set_string_slot
   -ap_set_string_slot_lower
  +-ap_set_deprecated
   
   MODULE=Apache::Util 
ap_ht_time
  - ap_parseHTTPdate
   !ap_rfc1413
ap_escape_html
#escape_uri
  @@ -249,7 +261,6 @@
mpxs_Apache__RequestRec_parsed_uri
   
   !MODULE=Apache::StringUtil   PACKAGE=guess
  - ap_checkmask
ap_count_dirs
ap_escape_path_segment
ap_escape_quotes
  @@ -313,8 +324,13 @@
   -ap_create_scoreboard
ap_cleanup_scoreboard
ap_increment_counts
  + ap_get_parent_scoreboard
  + ap_get_servers_scoreboard
   
   !MODULE=Apache::Hooks
  + ap_location_walk
  + ap_directory_walk
  + ap_file_walk
ap_hook_access_checker
ap_hook_auth_checker
ap_hook_check_user_id
  @@ -335,7 +351,40 @@
ap_hook_process_connection
ap_hook_translate_name
ap_hook_type_checker
  + ap_hook_quick_handler
  + ap_hook_map_to_storage
  + ap_hook_create_request
  + ap_hook_error_log
  +>ap_hook_pre_mpm
   -ap_hook_get_suexec_identity
  +-ap_hook_get_access_checker
  +-ap_hook_get_auth_checker
  +-ap_hook_get_check_user_id
  +-ap_hook_get_child_init
  +-ap_hook_get_create_request
  +-ap_hook_get_default_port
  +-ap_hook_get_error_log
  +-ap_hook_get_fixups
  +-ap_hook_get_get_mgmt_items
  +-ap_hook_get_get_suexec_identity
  +-ap_hook_get_handler
  +-ap_hook_get_header_parser
  +-ap_hook_get_http_method
  +-ap_hook_get_insert_filter
  +-ap_hook_get_log_transaction
  +-ap_hook_get_map_to_storage
  +-ap_hook_get_mgmt_items
  +-ap_hook_get_open_logs
  +-ap_hook_get_optional_fn_retrieve
  +-ap_hook_get_post_config
  +-ap_hook_get_post_read_request
  +-ap_hook_get_pre_config
  +-ap_hook_get_pre_connection
  +-ap_hook_get_pre_mpm
  +-ap_hook_get_process_connection
  +-ap_hook_get_quick_handler
  +-ap_hook_get_translate_name
  +-ap_hook_get_type_checker
   
   MODULE=Apache::HookRun   PACKAGE=guess
   -ap_run_get_suexec_identity
  @@ -359,7 +408,13 @@
ap_run_fixups
ap_run_handler
ap_run_log_transaction
  - ap_run_rewrite_args
  +>ap_run_rewrite_args
  + ap_run_create_request
  + ap_run_error_log
  +>ap_run_get_mgmt_items
  + ap_run_map_to_storage
  +>ap_run_pre_mpm
  + ap_run_quick_handler
ap_invoke_handler
ap_die
   
  @@ -406,3 +461,15 @@
ap_gname2id
ap_uname2id
ap_lingering_close
  + ap_mpm_pod_check
  + ap_mpm_pod_close
  + ap_mpm_pod_killpg
  + ap_mpm_pod_open
  + ap_mpm_pod_signal
  + ap_mpm_set_accept_lock_mech
  + ap_mpm_set_coredumpdir
  + ap_mpm_set_lockfile
  + ap_mpm_set_max_requests
  + ap_mpm_set_pidfile
  + ap_mpm_set_scoreboard
  +?ap_show_mpm
  
  

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

2001-07-31 Thread dougm

dougm   01/07/31 19:06:06

  Modified:xs/maps  apache_functions.map apr_functions.map
  Log:
  adjust to recent api changes
  
  Revision  ChangesPath
  1.27  +0 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- apache_functions.map  2001/05/22 20:57:58 1.26
  +++ apache_functions.map  2001/08/01 02:06:06 1.27
  @@ -95,7 +95,6 @@
ap_send_error_response
   ~ap_send_fd
ap_send_mmap | | r, mm, offset, length
  - ap_send_size
ap_set_keepalive
ap_set_last_modified
ap_custom_response
  
  
  
  1.15  +1 -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.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- apr_functions.map 2001/07/15 22:26:01 1.14
  +++ apr_functions.map 2001/08/01 02:06:06 1.15
  @@ -71,7 +71,7 @@
   -apr_brigade_to_iovec
   -apr_brigade_vprintf
   -apr_brigade_vputstrs
  - apr_brigade_length
  +!apr_brigade_length
apr_brigade_write
apr_brigade_puts
apr_brigade_putc
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map modperl_functions.map

2001-05-02 Thread dougm

dougm   01/05/02 23:21:00

  Modified:xs/maps  apache_functions.map modperl_functions.map
  Added:   t/response/TestAPI aplog.pm
   xs/Apache/Log Apache__Log.h
  Log:
  add Apache::Log api and tests
  
  Revision  ChangesPath
  1.1  modperl-2.0/t/response/TestAPI/aplog.pm
  
  Index: aplog.pm
  ===
  package TestAPI::aplog;
  
  use strict;
  use warnings FATAL => 'all';
  
  use Apache::Log ();
  use Apache::Test;
  
  my @LogLevels = qw(emerg alert crit error warn notice info debug);
  my $package = __PACKAGE__;
  
  sub handler {
  my $r = shift;
  
  plan $r, tests => (@LogLevels * 2) + 3;
  
  my $rlog = $r->log;
  
  ok $rlog->isa('Apache::Log::Request');
  
  my $slog = $r->server->log;
  
  ok $slog->isa('Apache::Log::Server');
  
  $rlog->info($package, " test in progress");
  
  for my $method (@LogLevels) {
  #wrap in sub {}, else Test.pm tries to run the return value of ->can
  ok sub { $rlog->can($method) };
  ok sub { $slog->can($method) };
  }
  
  $slog->info(sub { ok 1; "$package test done" });
  
  Apache::OK;
  }
  
  1;
  
  
  
  1.1  modperl-2.0/xs/Apache/Log/Apache__Log.h
  
  Index: Apache__Log.h
  ===
  static void mpxs_Apache__Log_BOOT(pTHXo)
  {
  av_push(get_av("Apache::Log::Request::ISA",TRUE), 
newSVpv("Apache::Log",11));
  av_push(get_av("Apache::Log::Server::ISA",TRUE), 
newSVpv("Apache::Log",11));
  }
  
  #define croak_inval_obj() \
  Perl_croak(aTHX_ "Argument is not an Apache::RequestRec " \
   "or Apache::Server object")
  
  static void mpxs_ap_log_error(pTHX_ int level, SV *sv, SV *msg)
  {
  char *file = NULL;
  int line = 0;
  char *str;
  SV *svstr = Nullsv;
  STRLEN n_a;
  int lmask = level & APLOG_LEVELMASK;
  server_rec *s;
  request_rec *r = NULL;
  
  if (SvROK(sv) && sv_isa(sv, "Apache::Log::Request")) {
r = (request_rec *)SvObjIV(sv);
s = r->server;
  }
  else if (SvROK(sv) && sv_isa(sv, "Apache::Log::Server")) {
s = (server_rec *)SvObjIV(sv);
  }
  else {
  croak_inval_obj();
  }
  
  if ((lmask == APLOG_DEBUG) && (s->loglevel >= APLOG_DEBUG)) {
  COP *cop = cxstack[1].blk_oldcop;
file = CopFILE(cop); /* (caller)[1] */
line = CopLINE(cop); /* (caller)[2] */
  }
  
  if ((s->loglevel >= lmask) && 
  SvROK(msg) && (SvTYPE(SvRV(msg)) == SVt_PVCV))
  {
dSP;
ENTER;SAVETMPS;
PUSHMARK(sp);
(void)call_sv(msg, G_SCALAR);
SPAGAIN;
svstr = POPs;
(void)SvREFCNT_inc(svstr);
PUTBACK;
FREETMPS;LEAVE;
str = SvPV(svstr,n_a);
  }
  else {
str = SvPV(msg,n_a);
  }
  
  if (r) {
ap_log_rerror(file, line, APLOG_NOERRNO|level, 0, r, "%s", str);
  }
  else {
ap_log_error(file, line, APLOG_NOERRNO|level, 0, s, "%s", str);
  }
  
  if (svstr) {
  SvREFCNT_dec(svstr);
  }
  }
  
  #define MP_LOG_REQUEST 1
  #define MP_LOG_SERVER  2
  
  static SV *mpxs_Apache__Log_log(pTHX_ SV *sv, int logtype)
  {
  SV *svretval;
  void *retval;
  char *pclass;
  
  if (!SvROK(sv)) {
  Perl_croak(aTHX_ "Argument is not a reference");
  }
  
  switch (logtype) {
case MP_LOG_REQUEST:
  pclass = "Apache::Log::Request";
retval = (void *)modperl_sv2request_rec(aTHX_ sv);
  break;
case MP_LOG_SERVER:
pclass = "Apache::Log::Server";
retval = (void *)SvObjIV(sv);
  break;
default:
  croak_inval_obj();
  };
  
  svretval = newSV(0);
  sv_setref_pv(svretval, pclass, (void*)retval);
  
  return svretval;
  }
  
  #define mpxs_Apache__RequestRec_log(sv) \
  mpxs_Apache__Log_log(aTHX_ sv, MP_LOG_REQUEST)
  
  #define mpxs_Apache__Server_log(sv) \
  mpxs_Apache__Log_log(aTHX_ sv, MP_LOG_SERVER)
  
  static XS(MPXS_Apache__Log_dispatch)
  {
  dXSARGS;
  SV *msgsv;
  int level;
  char *name = GvNAME(CvGV(cv));
  
  if (items < 2) {
  Perl_croak(aTHX_ "usage: %s::%s(obj, ...)",
 mpxs_cv_name());
  }
  
  if (items > 2) {
  msgsv = newSV(0);
  do_join(msgsv, &PL_sv_no, MARK+1, SP);
  }
  else {
  msgsv = ST(1);
  (void)SvREFCNT_inc(msgsv);
  }
  
  switch (*name) {
case 'e':
  if (*(name + 1) == 'r') {
  level = APLOG_ERR;
  break;
  }
  level = APLOG_EMERG;
  break;
case 'w':
  level = APLOG_WARNING;
  break;
case 'n':
  level = APLOG_NOTICE;
  break;
case 'i':
  level = APLOG_INFO;
 

cvs commit: modperl-2.0/xs/maps apache_functions.map

2001-04-28 Thread dougm

dougm   01/04/28 15:35:23

  Modified:lib/ModPerl TypeMap.pm WrapXS.pm
   src/modules/perl modperl_util.c modperl_util.h
   xs   modperl_xs_util.h
   xs/maps  apache_functions.map
  Added:   t/response/TestAPI uri.pm
   xs/Apache/URI Apache__URI.h
  Log:
  add Apache::URI interface and tests
  
  Revision  ChangesPath
  1.6   +6 -4  modperl-2.0/lib/ModPerl/TypeMap.pm
  
  Index: TypeMap.pm
  ===
  RCS file: /home/cvs/modperl-2.0/lib/ModPerl/TypeMap.pm,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- TypeMap.pm2001/03/16 00:26:29 1.5
  +++ TypeMap.pm2001/04/28 22:35:18 1.6
  @@ -332,10 +332,12 @@
   }
   
   #XXX: generate this
  -my %class_pools = (
  -'Apache::RequestRec' => '.pool',
  -'Apache::Connection' => '.pool',
  -);
  +my %class_pools = map {
  +(my $f = "mpxs_${_}_pool") =~ s/:/_/g;
  +$_, $f;
  +} qw{
  +   Apache::RequestRec Apache::Connection Apache::URI
  +};
   
   sub class_pool : lvalue {
   my($self, $class) = @_;
  
  
  
  1.9   +1 -1  modperl-2.0/lib/ModPerl/WrapXS.pm
  
  Index: WrapXS.pm
  ===
  RCS file: /home/cvs/modperl-2.0/lib/ModPerl/WrapXS.pm,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- WrapXS.pm 2001/04/20 18:03:45 1.8
  +++ WrapXS.pm 2001/04/28 22:35:19 1.9
  @@ -150,7 +150,7 @@
   
   if ($e->{class} eq 'PV') {
   if (my $pool = $e->{pool}) {
  -$pool =~ s/^\./obj->/;
  +$pool .= '(obj)';
   $val = "((ST(1) == &PL_sv_undef) ? NULL :
   (SvPOK(ST(1)) ?
   apr_pstrndup($pool, SvPVX(ST(1)), SvCUR(ST(1))) :
  
  
  
  1.10  +40 -0 modperl-2.0/src/modules/perl/modperl_util.c
  
  Index: modperl_util.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_util.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- modperl_util.c2001/04/25 05:27:17 1.9
  +++ modperl_util.c2001/04/28 22:35:20 1.10
  @@ -66,6 +66,46 @@
   return sv;
   }
   
  +apr_pool_t *modperl_sv2pool(pTHX_ SV *obj)
  +{
  +char *classname;
  +
  +if (!(SvROK(obj) && (SvTYPE(SvRV(obj)) == SVt_PVMG))) {
  +return NULL;
  +}
  +
  +classname = SvCLASS(obj);
  +
  +if (*classname != 'A') {
  +return NULL;
  +}
  +
  +if (strnEQ(classname, "APR::", 5)) {
  +classname += 5;
  +switch (*classname) {
  +  case 'P':
  +if (strEQ(classname, "Pool")) {
  +return (apr_pool_t *)SvObjIV(obj);
  +}
  +  default:
  +return NULL;
  +};
  +}
  +else if (strnEQ(classname, "Apache::", 8)) {
  +classname += 8;
  +switch (*classname) {
  +  case 'R':
  +if (strEQ(classname, "RequestRec")) {
  +return ((request_rec *)SvObjIV(obj))->pool;
  +}
  +  default:
  +return NULL;
  +};
  +}
  +
  +return NULL;
  +}
  +
   char *modperl_apr_strerror(apr_status_t rv)
   {
   dTHX;
  
  
  
  1.11  +8 -0  modperl-2.0/src/modules/perl/modperl_util.h
  
  Index: modperl_util.h
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_util.h,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- modperl_util.h2001/04/25 05:27:17 1.10
  +++ modperl_util.h2001/04/28 22:35:20 1.11
  @@ -14,11 +14,19 @@
   #   define strncaseEQ(s1,s2,l) (!strncasecmp(s1,s2,l))
   #endif
   
  +#ifndef SvCLASS
  +#define SvCLASS(o) HvNAME(SvSTASH(SvRV(o)))
  +#endif
  +
  +#define SvObjIV(o) SvIV((SV*)SvRV(o))
  +
   MP_INLINE request_rec *modperl_sv2request_rec(pTHX_ SV *sv);
   
   MP_INLINE SV *modperl_newSVsv_obj(pTHX_ SV *stashsv, SV *obj);
   
   MP_INLINE SV *modperl_ptr2obj(pTHX_ char *classname, void *ptr);
  +
  +apr_pool_t *modperl_sv2pool(pTHX_ SV *obj);
   
   #define modperl_bless_request_rec(r) \
   modperl_ptr2obj("Apache", r)
  
  
  
  1.1  modperl-2.0/t/response/TestAPI/uri.pm
  
  Index: uri.pm
  ===
  package TestAPI::uri;
  
  use strict;
  use warnings FATAL => 'all';
  
  use Apache::URI ();
  use Apache::RequestUtil ();
  use Apache::Test;
  
  my $location = '/' . __PACKAGE__;
  
  sub handler {
  my $r = shift;
  
  plan $r, tests => 12;
  
  $r->args('query');
  
  my $uri = $r->parsed_uri;
  
  ok $uri->isa('Apache::URI');
  
  ok $uri->path =~ m:^$location:;
  
  my $up = $uri->unparse;
  ok $up =~ m:^$location:;
  

cvs commit: modperl-2.0/xs/maps apache_functions.map

2001-04-28 Thread dougm

dougm   01/04/28 12:29:45

  Modified:lib/Apache compat.pm
   xs/maps  apache_functions.map
  Added:   t/apisend_fd.t
   t/response/TestAPI send_fd.pm
  Log:
  add send_fd compat method and tests
  
  Revision  ChangesPath
  1.3   +34 -0 modperl-2.0/lib/Apache/compat.pm
  
  Index: compat.pm
  ===
  RCS file: /home/cvs/modperl-2.0/lib/Apache/compat.pm,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- compat.pm 2001/04/20 03:07:53 1.2
  +++ compat.pm 2001/04/28 19:29:39 1.3
  @@ -112,5 +112,39 @@
   return \$data;
   }
   
  +use constant IOBUFSIZE => 8192;
  +
  +#XXX: howto convert PerlIO to apr_file_t
  +#so we can use the real ap_send_fd function
  +#2.0 ap_send_fd() also has an additional offset parameter
  +
  +sub send_fd_length {
  +my($r, $fh, $length) = @_;
  +
  +my $buff;
  +my $total_bytes_sent = 0;
  +my $len;
  +
  +return 0 if $length == 0;
  +
  +if (($length > 0) && ($total_bytes_send + IOBUFSIZE) > $length) {
  +$len = $length - $total_bytes_sent;
  +}
  +else {
  +$len = IOBUFSIZE;
  +}
  +
  +while (read($fh, $buff, $len)) {
  +$total_bytes_sent += $r->puts($buff);
  +}
  +
  +$total_bytes_sent;
  +}
  +
  +sub send_fd {
  +my($r, $fh) = @_;
  +$r->send_fd_length($fh, -1);
  +}
  +
   1;
   __END__
  
  
  
  1.1  modperl-2.0/t/api/send_fd.t
  
  Index: send_fd.t
  ===
  use strict;
  use warnings FATAL => 'all';
  
  use Test;
  use Apache::TestConfig ();
  
  plan tests => 3;
  
  my $config = Apache::TestConfig->thaw;
  
  my $url = '/TestAPI::send_fd';
  
  my $data = $config->http_raw_get($url);
  
  ok $data;
  
  my $module = 'response/TestAPI/send_fd.pm';
  
  ok length($data) == -s $module;
  
  $data = $config->http_raw_get("$url?noexist.txt");
  
  ok $data =~ /Not Found/;
  
  
  
  1.1  modperl-2.0/t/response/TestAPI/send_fd.pm
  
  Index: send_fd.pm
  ===
  package TestAPI::send_fd;
  
  use strict;
  use warnings FATAL => 'all';
  
  use Apache::compat ();
  
  sub handler {
  my $r = shift;
  
  my $file = $r->args || __FILE__;
  
  open my $fh, $file or return Apache::NOT_FOUND;
  
  my $bytes = $r->send_fd($fh);
  
  return Apache::SERVER_ERROR unless $bytes == -s $file;
  
  Apache::OK;
  }
  
  1;
  
  
  
  1.14  +1 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- apache_functions.map  2001/04/24 02:26:19 1.13
  +++ apache_functions.map  2001/04/28 19:29:44 1.14
  @@ -94,7 +94,7 @@
ap_rationalize_mtime
ap_update_mtime
ap_send_error_response
  - ap_send_fd
  +~ap_send_fd
ap_send_mmap
ap_send_size
ap_set_keepalive
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map

2001-04-23 Thread dougm

dougm   01/04/23 19:26:19

  Modified:src/modules/perl modperl_filter.c modperl_filter.h
   t/filter/TestFilter input_body.pm input_msg.pm
   xs/Apache/Filter Apache__Filter.h
   xs/maps  apache_functions.map
  Log:
   adjust to ap_get_brigade() / input filter api changes
  
  Revision  ChangesPath
  1.17  +7 -4  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.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- modperl_filter.c  2001/04/20 00:43:47 1.16
  +++ modperl_filter.c  2001/04/24 02:26:17 1.17
  @@ -86,7 +86,8 @@
   return mg ? (modperl_filter_t *)mg->mg_ptr : NULL;
   }
   
  -int modperl_run_filter(modperl_filter_t *filter, ap_input_mode_t mode)
  +int modperl_run_filter(modperl_filter_t *filter, ap_input_mode_t mode,
  +   apr_size_t *readbytes)
   {
   AV *args = Nullav;
   int status;
  @@ -109,6 +110,7 @@
   
   if (filter->mode == MP_INPUT_FILTER_MODE) {
   av_push(args, newSViv(mode));
  +av_push(args, newSViv(*readbytes));
   }
   
   if ((status = modperl_callback(aTHX_ handler, p, s, args)) != OK) {
  @@ -321,7 +323,7 @@
   }
   else {
   filter = modperl_filter_new(f, bb, MP_OUTPUT_FILTER_MODE);
  -status = modperl_run_filter(filter, 0);
  +status = modperl_run_filter(filter, 0, 0);
   }
   
   switch (status) {
  @@ -336,7 +338,8 @@
   
   apr_status_t modperl_input_filter_handler(ap_filter_t *f,
 apr_bucket_brigade *bb,
  -  ap_input_mode_t mode)
  +  ap_input_mode_t mode,
  +  apr_size_t *readbytes)
   {
   modperl_filter_t *filter;
   int status;
  @@ -348,7 +351,7 @@
   }
   else {
   filter = modperl_filter_new(f, bb, MP_INPUT_FILTER_MODE);
  -status = modperl_run_filter(filter, mode);
  +status = modperl_run_filter(filter, mode, readbytes);
   }
   
   switch (status) {
  
  
  
  1.6   +4 -2  modperl-2.0/src/modules/perl/modperl_filter.h
  
  Index: modperl_filter.h
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_filter.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- modperl_filter.h  2001/04/20 00:43:47 1.5
  +++ modperl_filter.h  2001/04/24 02:26:17 1.6
  @@ -25,7 +25,8 @@
   
   modperl_filter_t *modperl_filter_mg_get(pTHX_ SV *obj);
   
  -int modperl_run_filter(modperl_filter_t *filter, ap_input_mode_t mode);
  +int modperl_run_filter(modperl_filter_t *filter, ap_input_mode_t mode,
  +   apr_size_t *readbytes);
   
   /* output filters */
   apr_status_t modperl_output_filter_handler(ap_filter_t *f,
  @@ -49,7 +50,8 @@
   /* input filters */
   apr_status_t modperl_input_filter_handler(ap_filter_t *f,
 apr_bucket_brigade *bb,
  -  ap_input_mode_t mode);
  +  ap_input_mode_t mode,
  +  apr_size_t *readbytes);
   
   int modperl_input_filter_register_connection(conn_rec *c);
   
  
  
  
  1.4   +2 -2  modperl-2.0/t/filter/TestFilter/input_body.pm
  
  Index: input_body.pm
  ===
  RCS file: /home/cvs/modperl-2.0/t/filter/TestFilter/input_body.pm,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- input_body.pm 2001/04/20 01:21:28 1.3
  +++ input_body.pm 2001/04/24 02:26:17 1.4
  @@ -13,10 +13,10 @@
   use APR::Bucket ();
   
   sub handler : InputFilterBody {
  -my($filter, $bb, $mode) = @_;
  +my($filter, $bb, $mode, $readbytes) = @_;
   
   if ($bb->empty) {
  -my $rv = $filter->next->get_brigade($bb, $mode);
  +my $rv = $filter->next->get_brigade($bb, $mode, $readbytes);
   
   if ($rv != APR::SUCCESS) {
   return $rv;
  
  
  
  1.4   +2 -2  modperl-2.0/t/filter/TestFilter/input_msg.pm
  
  Index: input_msg.pm
  ===
  RCS file: /home/cvs/modperl-2.0/t/filter/TestFilter/input_msg.pm,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- input_msg.pm  2001/04/20 01:21:28 1.3
  +++ input_msg.pm  2001/04/24 02:26:17 1.4
  @@ -14,10 +14,10 @@
   my $to_url = '/TestFilter::input_msg::response';
   
   sub handler : InputFilterMessage {
  -my($filter, $bb, $mode) = @_;
  +my($filter, $bb, $mode, $readbytes) = @_;
   
  

cvs commit: modperl-2.0/xs/maps apache_functions.map apache_types.map apr_functions.map apr_types.map modperl_functions.map modperl_types.map

2001-04-19 Thread dougm

dougm   01/04/19 10:41:47

  Modified:xs/maps  apache_functions.map apache_types.map
apr_functions.map apr_types.map
modperl_functions.map modperl_types.map
  Log:
  glue new methods
  
  Revision  ChangesPath
  1.12  +1 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- apache_functions.map  2001/04/12 04:57:19 1.11
  +++ apache_functions.map  2001/04/19 17:41:38 1.12
  @@ -186,7 +186,7 @@
   PACKAGE=guess
   ~ap_add_output_filter
ap_add_input_filter
  - ap_get_brigade
  + ap_get_brigade | | filter, bucket, mode=AP_MODE_NONBLOCKING
ap_pass_brigade
ap_register_input_filter
ap_register_output_filter
  
  
  
  1.3   +1 -5  modperl-2.0/xs/maps/apache_types.map
  
  Index: apache_types.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_types.map,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- apache_types.map  2001/04/04 17:12:08 1.2
  +++ apache_types.map  2001/04/19 17:41:39 1.3
  @@ -34,11 +34,7 @@
   ap_filter_func  | UNDEFINED
   ap_out_filter_func  | UNDEFINED
   ap_in_filter_func   | UNDEFINED
  -ap_input_mode_t | UNDEFINED
  -
  -##  Perl types  ##
  -
  -SV * | SV
  +ap_input_mode_t | IV
   
   ##  Standard types  ##
   
  
  
  
  1.8   +3 -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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- apr_functions.map 2001/04/18 05:10:43 1.7
  +++ apr_functions.map 2001/04/19 17:41:40 1.8
  @@ -82,6 +82,7 @@
mpxs_APR__Brigade_insert_tail  #APR_BRIGADE_INSERT_TAIL
mpxs_APR__Brigade_insert_head  #APR_BRIGADE_INSERT_HEAD
mpxs_APR__Brigade_concat   #APR_BRIGADE_CONCAT
  + mpxs_APR__Brigade_empty#APR_BRIGADE_EMPTY
   
   MODULE=APR::Bucket
mpxs_APR__Bucket_is_eos #APR_BUCKET_IS_EOS
  @@ -89,7 +90,8 @@
mpxs_APR__Bucket_insert_before  #APR_BUCKET_INSERT_AFTER
mpxs_APR__Bucket_remove #APR_BUCKET_REMOVE
#apr_bucket_read
  - mpxs_APR__Bucket_read | | bucket, wanted=0
  + modperl_bucket_read | mpxs_ | \
  +bucket, SV *:buffer, block=APR_BLOCK_READ | read
#modperl_bucket_sv_create
mpxs_APR__Bucket_new  | | classname, sv, offset=0, len=0
!apr_bucket_copy_notimpl
  
  
  
  1.4   +1 -1  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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- apr_types.map 2001/04/18 05:10:43 1.3
  +++ apr_types.map 2001/04/19 17:41:40 1.4
  @@ -23,7 +23,7 @@
   struct apr_bucket_brigade   | APR::Brigade
   apr_brigade_flush   | UNDEFINED
   struct apr_bucket_type_t| APR::BucketType
  -apr_read_type_e | UNDEFINED
  +apr_read_type_e | IV
   apr_bucket_file | UNDEFINED
   apr_bucket_pool | UNDEFINED
   apr_bucket_heap | UNDEFINED
  
  
  
  1.3   +4 -1  modperl-2.0/xs/maps/modperl_functions.map
  
  Index: modperl_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/modperl_functions.map,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- modperl_functions.map 2001/04/13 07:17:08 1.2
  +++ modperl_functions.map 2001/04/19 17:41:41 1.3
  @@ -19,7 +19,10 @@
mpxs_Apache__Server_set_handlers
mpxs_Apache__Server_get_handlers
   
  -MODULE=Apache::Filter   PACKAGE=Apache::OutputFilter
  +MODULE=Apache::Filter
  +modperl_filter_attributes | MPXS_ | ... | MODIFY_CODE_ATTRIBUTES
  +
  +PACKAGE=Apache::OutputFilter
mpxs_Apache__OutputFilter_print | | ...
mpxs_Apache__OutputFilter_read  | | ...
ap_filter_t *:DEFINE_f | | modperl_filter_t *:filter
  
  
  
  1.2   +9 -0  modperl-2.0/xs/maps/modperl_types.map
  
  Index: modperl_types.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/modperl_types.map,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- modperl_types.map 2001/04/18 04:44:02 1.1
  +++ modperl_types.map 2001/04/19 17:41:42 1.2
  @@ -1 +1,10 @@
  +##  mod_perl types  ##
  +
   struct modperl_filter_t | Apache::OutputFi

cvs commit: modperl-2.0/xs/maps apache_functions.map

2001-04-11 Thread dougm

dougm   01/04/11 21:57:19

  Modified:t/hooks/TestHooks authen.pm
   xs/Apache/Access Apache__Access.h
   xs/maps  apache_functions.map
  Log:
  implement $r->requires
  
  Revision  ChangesPath
  1.4   +5 -1  modperl-2.0/t/hooks/TestHooks/authen.pm
  
  Index: authen.pm
  ===
  RCS file: /home/cvs/modperl-2.0/t/hooks/TestHooks/authen.pm,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- authen.pm 2001/04/11 23:05:48 1.3
  +++ authen.pm 2001/04/12 04:57:19 1.4
  @@ -4,7 +4,7 @@
   use warnings FATAL => 'all';
   
   use Apache::Access ();
  -use Apache::Const -compile => qw(OK AUTH_REQUIRED);
  +use Apache::Const -compile => qw(OK AUTH_REQUIRED SERVER_ERROR);
   
   sub handler {
   my $r = shift;
  @@ -14,6 +14,10 @@
   return $rc if $rc != Apache::OK;
   
   my $user = $r->user;
  +
  +my $requirement = $r->requires->[0]->{requirement};
  +
  +return Apache::SERVER_ERROR unless $requirement eq 'valid-user';
   
   unless ($user eq 'dougm' and $sent_pw eq 'foo') {
   $r->note_basic_auth_failure;
  
  
  
  1.2   +35 -0 modperl-2.0/xs/Apache/Access/Apache__Access.h
  
  Index: Apache__Access.h
  ===
  RCS file: /home/cvs/modperl-2.0/xs/Apache/Access/Apache__Access.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Apache__Access.h  2001/04/02 19:30:35 1.1
  +++ Apache__Access.h  2001/04/12 04:57:19 1.2
  @@ -22,3 +22,38 @@
   }
   });
   }
  +
  +static MP_INLINE SV *mpxs_ap_requires(pTHX_ request_rec *r)
  +{
  +AV *av;
  +HV *hv;
  +register int x;
  +const apr_array_header_t *reqs_arr = ap_requires(r);
  +require_line *reqs;
  +
  +if (!reqs_arr) {
  +return &PL_sv_undef;
  +}
  +
  +reqs = (require_line *)reqs_arr->elts;
  +av = newAV();
  +
  +for (x=0; x < reqs_arr->nelts; x++) {
  +/* XXX should we do this or let PerlAuthzHandler? */
  +if (! (reqs[x].method_mask & (1 << r->method_number))) {
  +continue;
  +}
  +
  +hv = newHV();
  +
  +hv_store(hv, "method_mask", 11, 
  + newSViv((IV)reqs[x].method_mask), 0);
  +
  +hv_store(hv, "requirement", 11, 
  + newSVpv(reqs[x].requirement,0), 0);
  +
  +av_push(av, newRV_noinc((SV*)hv));
  +}
  +
  +return newRV_noinc((SV*)av); 
  +}
  
  
  
  1.11  +1 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- apache_functions.map  2001/04/10 04:01:15 1.10
  +++ apache_functions.map  2001/04/12 04:57:19 1.11
  @@ -106,7 +106,7 @@
ap_allow_options
ap_allow_overrides
ap_get_remote_logname
  -!ap_requires
  + SV *:ap_requires | mpxs_
ap_satisfies
   
   #MODULE=Apache::Auth
  
  
  



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

2001-04-09 Thread dougm

dougm   01/04/09 21:01:15

  Modified:xs/maps  apache_functions.map apr_functions.map
  Log:
  remove functions that no longer exist
  
  Revision  ChangesPath
  1.10  +0 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- apache_functions.map  2001/04/04 17:12:07 1.9
  +++ apache_functions.map  2001/04/10 04:01:15 1.10
  @@ -247,7 +247,6 @@
ap_parse_hostinfo_components
ap_unescape_url
ap_unparse_uri_components
  ->ap_util_uri_init
   
   !MODULE=Apache::StringUtil   PACKAGE=guess
ap_checkmask
  
  
  
  1.5   +0 -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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- apr_functions.map 2001/03/16 00:01:36 1.4
  +++ apr_functions.map 2001/04/10 04:01:15 1.5
  @@ -165,7 +165,6 @@
   -apr_file_dup
   -apr_file_flush
   -apr_file_eof
  --apr_file_error
   -apr_file_gets
   -apr_file_printf
   -apr_file_write_full
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map apache_types.map

2001-04-04 Thread dougm

dougm   01/04/04 10:12:08

  Modified:lib/ModPerl FunctionMap.pm WrapXS.pm
   src/modules/perl modperl_types.h
   xs/maps  apache_functions.map apache_types.map
  Added:   t/response/TestAPI lookup_uri.pm
  Log:
  get subrequest api working and add a little test for lookup_uri
  
  Revision  ChangesPath
  1.5   +3 -0  modperl-2.0/lib/ModPerl/FunctionMap.pm
  
  Index: FunctionMap.pm
  ===
  RCS file: /home/cvs/modperl-2.0/lib/ModPerl/FunctionMap.pm,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FunctionMap.pm2001/03/16 02:29:41 1.4
  +++ FunctionMap.pm2001/04/04 17:12:07 1.5
  @@ -134,6 +134,9 @@
   unless ($package eq 'guess') {
   $cur{CLASS} = $package;
   }
  +if ($cur{ISA}) {
  +$self->{isa}->{ $cur{MODULE} }->{$package} = delete $cur{ISA};
  +}
   }
   else {
   $cur{CLASS} = $cur{MODULE};
  
  
  
  1.4   +20 -1 modperl-2.0/lib/ModPerl/WrapXS.pm
  
  Index: WrapXS.pm
  ===
  RCS file: /home/cvs/modperl-2.0/lib/ModPerl/WrapXS.pm,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- WrapXS.pm 2001/03/13 07:09:28 1.3
  +++ WrapXS.pm 2001/04/04 17:12:07 1.4
  @@ -334,6 +334,23 @@
   $class_prefix . $name;
   }
   
  +sub isa_str {
  +my($self, $module) = @_;
  +my $str = "";
  +
  +if (my $isa = $self->typemap->{function_map}->{isa}->{$module}) {
  +while (my($sub, $base) = each %$isa) {
  +#XXX cannot set isa in the BOOT: section because XSLoader local-ises
  +#ISA during bootstrap
  +#$str .= qq{av_push(get_av("$sub\::ISA", TRUE),
  +#   newSVpv("$base",0));}
  +$str .= qq{\@$sub\::ISA = '$base';\n}
  +}
  +}
  +
  +$str;
  +}
  +
   sub write_xs {
   my($self, $module, $functions) = @_;
   
  @@ -398,12 +415,14 @@
   sub write_pm {
   my($self, $module) = @_;
   
  +my $isa = $self->isa_str($module);
  +
   my $fh = $self->open_class_file($module, '.pm');
   print $fh <{noedit_warning_hash}
   
   package $module;
  -
  +$isa
   use XSLoader ();
   XSLoader::load __PACKAGE__;
   
  
  
  
  1.32  +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.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- modperl_types.h   2001/04/04 05:12:54 1.31
  +++ modperl_types.h   2001/04/04 17:12:07 1.32
  @@ -9,6 +9,7 @@
   
   /* aliases */
   
  +typedef request_rec subrequest_rec;
   typedef apr_array_header_t MpAV;
   typedef apr_table_tMpHV;
   
  
  
  
  1.1  modperl-2.0/t/response/TestAPI/lookup_uri.pm
  
  Index: lookup_uri.pm
  ===
  package TestAPI::lookup_uri;
  
  use strict;
  use warnings FATAL => 'all';
  
  use Apache::Test;
  use Apache::SubRequest ();
  
  sub handler {
  my $r = shift;
  
  my $uri = '/lookup_uri';
  my $subr = $r->lookup_uri($uri);
  die unless $subr->uri eq $uri;
  $subr->run;
  
  0;
  }
  
  1;
  __DATA__
  
 SetHandler modperl
 PerlResponseHandler Apache::TestHandler::ok1
  
  
  
  
  1.9   +17 -11modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- apache_functions.map  2001/04/02 19:30:37 1.8
  +++ apache_functions.map  2001/04/04 17:12:07 1.9
  @@ -51,19 +51,25 @@
ap_get_limit_xml_body
   >ap_core_translate
   
  -MODULE=Apache::SubRequest   PACKAGE=guess
  - ap_sub_req_lookup_file
  - ap_sub_req_lookup_uri
  - ap_sub_req_method_uri
  - ap_sub_req_output_filter
  - ap_set_sub_req_protocol
  +MODULE=Apache::SubRequest   PACKAGE=Apache::RequestRec
  +?ap_sub_req_output_filter
  +>ap_set_sub_req_protocol
   -ap_finalize_sub_req_protocol
  - ap_internal_redirect
  - ap_internal_redirect_handler
  + ap_internal_redirect | | r, new_uri
  + ap_internal_redirect_handler | | r, new_uri
   
  -MODULE=Apache::SubRequestPACKAGE=Apache::SubRequest
  - ap_destroy_sub_req
  - ap_run_sub_req
  +subrequest_rec *:ap_sub_req_lookup_file | | \
  + r, new_file, next_filter=NULL | lookup_file
  +
  +subrequest_rec *:ap_sub_req_lookup_uri  | | \
  + r, new_file, next_filter=NULL | lookup_uri
  +
  +subrequest_rec *:ap_sub_req_method_uri  | | \
  + r, method, new_file, next_filter=NULL | lookup_method_ur

cvs commit: modperl-2.0/xs/maps apache_functions.map

2001-04-02 Thread dougm

dougm   01/04/02 12:30:40

  Modified:t/hooks  authen.t
   t/hooks/TestHooks authen.pm
   xs   modperl_xs_util.h
   xs/maps  apache_functions.map
  Added:   xs/Apache/Access Apache__Access.h
  Log:
  add get_basic_auth_pw() wrapper and tests
  
  Revision  ChangesPath
  1.2   +3 -1  modperl-2.0/t/hooks/authen.t
  
  Index: authen.t
  ===
  RCS file: /home/cvs/modperl-2.0/t/hooks/authen.t,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- authen.t  2001/04/02 09:09:40 1.1
  +++ authen.t  2001/04/02 19:30:22 1.2
  @@ -4,7 +4,7 @@
   use Test;
   use Apache::TestRequest;
   
  -plan tests => 3;
  +plan tests => 4;
   
   my $location = "/TestHooks::authen";
   
  @@ -15,5 +15,7 @@
   ok $rc == 401;
   
   ok GET_OK $location, username => 'dougm', password => 'foo';
  +
  +ok ! GET_OK $location, username => 'dougm', password => 'wrong';
   
   
  
  
  
  1.2   +12 -1 modperl-2.0/t/hooks/TestHooks/authen.pm
  
  Index: authen.pm
  ===
  RCS file: /home/cvs/modperl-2.0/t/hooks/TestHooks/authen.pm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- authen.pm 2001/04/02 09:09:40 1.1
  +++ authen.pm 2001/04/02 19:30:27 1.2
  @@ -7,7 +7,18 @@
   
   sub handler {
   my $r = shift;
  -#auth api not complete yet
  +
  +my($rc, $sent_pw) = $r->get_basic_auth_pw;
  +
  +return $rc if $rc != 0;
  +
  +my $user = $r->user;
  +
  +unless ($user eq 'dougm' and $sent_pw eq 'foo') {
  +$r->note_basic_auth_failure;
  +return 401;
  +}
  +
   0;
   }
   
  
  
  
  1.4   +9 -0  modperl-2.0/xs/modperl_xs_util.h
  
  Index: modperl_xs_util.h
  ===
  RCS file: /home/cvs/modperl-2.0/xs/modperl_xs_util.h,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- modperl_xs_util.h 2001/03/13 06:49:12 1.3
  +++ modperl_xs_util.h 2001/04/02 19:30:31 1.4
  @@ -9,6 +9,15 @@
   #define dITEMS I32 items = SP - MARK
   #endif
   
  +#define mpxs_PPCODE(code) STMT_START { \
  +SP -= items; \
  +code; \
  +PUTBACK; \
  +} STMT_END
  +
  +#define PUSHs_mortal_iv(iv) PUSHs(sv_2mortal(newSViv(iv)))
  +#define PUSHs_mortal_pv(pv) PUSHs(sv_2mortal(newSVpv((char *)pv,0)))
  +
   #define mpxs_sv_grow(sv, len) \
   (void)SvUPGRADE(sv, SVt_PV); \
   SvGROW(sv, len+1)
  
  
  
  1.1  modperl-2.0/xs/Apache/Access/Apache__Access.h
  
  Index: Apache__Access.h
  ===
  static XS(MPXS_ap_get_basic_auth_pw)
  {
  dXSARGS;
  request_rec *r;
  const char *sent_pw = NULL;
  int rc;
  
  mpxs_usage_items_1("r");
  
  mpxs_PPCODE({
  r = mp_xs_sv2_r(ST(0));
  
  rc = ap_get_basic_auth_pw(r, &sent_pw);
  
  EXTEND(SP, 2);
  PUSHs_mortal_iv(rc);
  if (rc == OK) {
  PUSHs_mortal_pv(sent_pw);
  }
  else {
  PUSHs(&PL_sv_undef);
  }
  });
  }
  
  
  
  1.8   +1 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- apache_functions.map  2001/03/25 22:32:11 1.7
  +++ apache_functions.map  2001/04/02 19:30:37 1.8
  @@ -106,7 +106,7 @@
   #MODULE=Apache::Auth
ap_auth_name
ap_auth_type
  - ap_get_basic_auth_pw
  + ap_get_basic_auth_pw | MPXS_ | r
ap_note_auth_failure
ap_note_basic_auth_failure
ap_note_digest_auth_failure
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map apache_structures.map

2001-03-25 Thread dougm

dougm   01/03/25 14:32:11

  Modified:xs/maps  apache_functions.map apache_structures.map
  Added:   xs/Apache/Command Apache__Command.h
   xs/Apache/Directive Apache__Directive.h
   xs/Apache/Module Apache__Module.h
  Log:
  enabled Apache::{Directive,Command,Module} modules
  add wrappers to access ap_conftree, "command_rec->next" and top_module
  
  Revision  ChangesPath
  1.1  modperl-2.0/xs/Apache/Command/Apache__Command.h
  
  Index: Apache__Command.h
  ===
  #define mpxs_Apache__Command_next(cmd) \
  (++cmd, ((cmd && cmd->name) ? cmd : NULL))
  
  
  
  1.1  modperl-2.0/xs/Apache/Directive/Apache__Directive.h
  
  Index: Apache__Directive.h
  ===
  #define mpxs_Apache__Directive_conftree(CLASS) \
  (CLASS ? ap_conftree : ap_conftree)
  
  
  
  1.1  modperl-2.0/xs/Apache/Module/Apache__Module.h
  
  Index: Apache__Module.h
  ===
  #define mpxs_Apache__Module_top_module(CLASS) \
  (CLASS ? top_module : top_module)
  
  
  
  1.7   +9 -6  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- apache_functions.map  2001/03/17 17:33:03 1.6
  +++ apache_functions.map  2001/03/25 22:32:11 1.7
  @@ -150,7 +150,8 @@
   >ap_open_stderr_log
   >ap_open_logs
   
  -!MODULE=Apache::Module
  +MODULE=Apache::Module
  + module *:DEFINE_top_module | | SV *:CLASS
   -ap_add_loaded_module
   -ap_add_module
   -ap_add_named_module
  @@ -164,10 +165,11 @@
   >ap_show_modules
   >ap_register_hooks
   
  -!MODULE=Apache::Directive
  - ap_add_node
  - ap_build_config
  - ap_build_cont_config
  +MODULE=Apache::Directive
  + ap_directive_t *:DEFINE_conftree | | SV *:CLASS
  +!ap_add_node
  +!ap_build_config
  +!ap_build_cont_config
ap_walk_config
   >ap_process_config_tree
   
  @@ -216,7 +218,8 @@
   >ap_parse_htaccess
   >ap_process_resource_config
   
  -!MODULE=Apache::Command
  +MODULE=Apache::Command
  + command_rec *:DEFINE_next | | command_rec *:cmd
ap_check_cmd_context
ap_soak_end_container
   -ap_set_file_slot
  
  
  
  1.2   +3 -3  modperl-2.0/xs/maps/apache_structures.map
  
  Index: apache_structures.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_structures.map,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- apache_structures.map 2001/03/05 03:49:12 1.1
  +++ apache_structures.map 2001/03/25 22:32:11 1.2
  @@ -126,7 +126,7 @@
  virthost
   
   
  -!
  +
  version
  minor_version
  module_index
  @@ -151,7 +151,7 @@
  short_name
   
   
  -!
  +
  name
  func
  cmd_data
  @@ -180,7 +180,7 @@
  method_list
   
   
  -!
  +
  directive
  args
  next
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map

2001-03-16 Thread dougm

dougm   01/03/16 22:03:38

  Modified:lib/ModPerl Code.pm
   src/modules/perl modperl_callback.c modperl_config.h
modperl_handler.c modperl_handler.h modperl_mgv.c
modperl_mgv.h
   xs/Apache/RequestUtil Apache__RequestUtil.h
   xs/maps  apache_functions.map
  Added:   xs/Apache/ServerUtil Apache__ServerUtil.h
  Log:
  implement ${r,s}->{push,set,get}_handlers}
  
  Revision  ChangesPath
  1.51  +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.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- Code.pm   2001/03/16 07:30:21 1.50
  +++ Code.pm   2001/03/17 06:03:37 1.51
  @@ -92,7 +92,7 @@
   Srv => [qw(NONE CLONE PARENT ENABLED AUTOLOAD), @hook_flags, 'UNSET'],
   Dir => [qw(NONE SEND_HEADER SETUP_ENV UNSET)],
   Interp => [qw(NONE IN_USE PUTBACK CLONED BASE)],
  -Handler => [qw(NONE PARSED METHOD OBJECT ANON AUTOLOAD)],
  +Handler => [qw(NONE PARSED METHOD OBJECT ANON AUTOLOAD DYNAMIC)],
   );
   
   my %flags_lookup = map { $_,1 } qw(Srv Dir);
  
  
  
  1.36  +4 -2  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.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- modperl_callback.c2001/03/16 17:23:23 1.35
  +++ modperl_callback.c2001/03/17 06:03:37 1.36
  @@ -9,7 +9,7 @@
   int count, status;
   
   #ifdef USE_ITHREADS
  -if (p && !MpHandlerPARSED(handler)) {
  +if (p && !MpHandlerPARSED(handler) && !MpHandlerDYNAMIC(handler)) {
   MP_dSCFG(s);
   if (scfg->threaded_mpm) {
   /*
  @@ -103,6 +103,7 @@
   #endif
   MP_dSCFG(s);
   MP_dDCFG;
  +MP_dRCFG;
   modperl_handler_t **handlers;
   apr_pool_t *p = NULL;
   MpAV *av, **avp;
  @@ -123,7 +124,7 @@
   p = pconf;
   }
   
  -avp = modperl_handler_lookup_handlers(dcfg, scfg, NULL, p,
  +avp = modperl_handler_lookup_handlers(dcfg, scfg, rcfg, p,
 type, idx, FALSE, &desc);
   
   if (!(avp && (av = *avp))) {
  @@ -171,6 +172,7 @@
   break;
   };
   
  +/* XXX: deal with {push,set}_handler of the phase we're currently in */
   MP_TRACE_h(MP_FUNC, "running %d %s handlers\n",
  av->nelts, desc);
   handlers = (modperl_handler_t **)av->elts;
  
  
  
  1.24  +4 -0  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.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- modperl_config.h  2001/03/16 06:35:18 1.23
  +++ modperl_config.h  2001/03/17 06:03:37 1.24
  @@ -37,6 +37,10 @@
 (r ? (modperl_config_dir_t *) \
 ap_get_module_config(r->per_dir_config, &perl_module) : NULL)
   
  +#define modperl_config_dir_get_defaults(s) \
  +  (modperl_config_dir_t *) \
  +  ap_get_module_config(s->lookup_defaults, &perl_module)
  +
   #define MP_dDCFG \
  modperl_config_dir_t *dcfg = modperl_config_dir_get(r)
   
  
  
  
  1.6   +216 -5modperl-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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- modperl_handler.c 2001/03/16 17:23:24 1.5
  +++ modperl_handler.c 2001/03/17 06:03:37 1.6
  @@ -64,41 +64,252 @@
   #define set_desc(dtype) \
   MP_TRACE_a_do(if (desc) *desc = modperl_handler_desc_##dtype(idx))
   
  +#define check_modify(dtype) \
  +if ((action > MP_HANDLER_ACTION_GET) && rcfg) { \
  +dTHX; \
  +Perl_croak(aTHX_ "too late to modify %s handlers", \
  +   modperl_handler_desc_##dtype(idx)); \
  +}
  +
  +/*
  + * generic function to lookup handlers for use in modperl_callback(),
  + * $r->{push,set,get}_handlers, $s->{push,set,get}_handlers
  + * $s->push/set at startup time are the same as configuring Perl*Handlers
  + * $r->push/set at request time will create entries in r->request_config
  + * push will first merge with configured handlers, unless an entry
  + * in r->request_config already exists.  in this case, push or set has
  + * already been called for the given handler, 
  + * r->request_config entries then override those in r->per_dir_config
  + */
  +
   MpAV **modperl_handler_lookup_handlers(modperl_config_dir_t *dcfg,

cvs commit: modperl-2.0/xs/maps apache_functions.map

2001-03-12 Thread dougm

dougm   01/03/12 23:50:24

  Modified:xs/Apache/RequestUtil Apache__RequestUtil.h
   xs/maps  apache_functions.map
  Log:
  the protocol module helpers are functions, not #defines
  
  Revision  ChangesPath
  1.2   +10 -8 modperl-2.0/xs/Apache/RequestUtil/Apache__RequestUtil.h
  
  Index: Apache__RequestUtil.h
  ===
  RCS file: /home/cvs/modperl-2.0/xs/Apache/RequestUtil/Apache__RequestUtil.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Apache__RequestUtil.h 2001/03/13 06:32:27 1.1
  +++ Apache__RequestUtil.h 2001/03/13 07:50:19 1.2
  @@ -3,8 +3,9 @@
* for protocol module helpers
*/
   
  -static MP_INLINE request_rec *mpxs_Apache__RequestRec_new(SV *classname,
  -  conn_rec *c)
  +static MP_INLINE
  +request_rec *mpxs_Apache__RequestRec_new(SV *classname,
  + conn_rec *c)
   {
   apr_pool_t *p;
   request_rec *r;
  @@ -39,8 +40,9 @@
   return r;
   }
   
  -static MP_INLINE int mpxs_Apache__RequestRec_location_merge(request_rec *r,
  -char *location)
  +static MP_INLINE
  +int mpxs_Apache__RequestRec_location_merge(request_rec *r,
  +   char *location)
   {
   apr_pool_t *p = r->pool;
   server_rec *s = r->server;
  @@ -71,10 +73,10 @@
   return 0;
   }
   
  -static MP_INLINE void
  -mpxs_Apache__RequestRec_set_basic_credentials(request_rec *r,
  -  char *username,
  -  char *password)
  +static MP_INLINE
  +void mpxs_Apache__RequestRec_set_basic_credentials(request_rec *r,
  +   char *username,
  +   char *password)
   {
   char encoded[1024];
   int elen;
  
  
  
  1.4   +3 -3  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- apache_functions.map  2001/03/13 07:29:00 1.3
  +++ apache_functions.map  2001/03/13 07:50:22 1.4
  @@ -46,10 +46,10 @@
ap_is_initial_req
   
#protocol module helpers
  - int:DEFINE_location_merge | | request_rec *:r, char *:location
  - void:DEFINE_set_basic_credentials | | request_rec *:r, char *:username, char 
*:password
  + mpxs_Apache__RequestRec_location_merge
  + mpxs_Apache__RequestRec_set_basic_credentials
   PACKAGE=Apache::RequestRec
  - request_rec *:DEFINE_new | | SV *:classname, conn_rec *:c
  + mpxs_Apache__RequestRec_new
   
   #MODULE=Apache::RequestConfig
ap_document_root
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map

2001-03-12 Thread dougm

dougm   01/03/12 23:29:03

  Modified:xs/Apache/Filter Apache__Filter.h
   xs/maps  apache_functions.map
  Log:
  add output filter "stream" interface read/print methods
  
  Revision  ChangesPath
  1.2   +53 -0 modperl-2.0/xs/Apache/Filter/Apache__Filter.h
  
  Index: Apache__Filter.h
  ===
  RCS file: /home/cvs/modperl-2.0/xs/Apache/Filter/Apache__Filter.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Apache__Filter.h  2001/03/05 03:54:18 1.1
  +++ Apache__Filter.h  2001/03/13 07:28:54 1.2
  @@ -1,2 +1,55 @@
   #define mpxs_Apache__RequestRec_add_output_filter(r, name, ctx) \
   ap_add_output_filter(name, ctx, r, NULL)
  +
  +/* XXX: this should be generated like the others in modperl_xs_sv_convert.h */
  +#define mp_xs_sv2_modperl_filter(sv) \
  +((SvROK(sv) && (SvTYPE(SvRV(sv)) == SVt_PVMG)) \
  +|| (Perl_croak(aTHX_ "argument is not a blessed reference"),0) ? \
  +(modperl_filter_t *)SvIV((SV*)SvRV(sv)) : (modperl_filter_t *)NULL)
  +
  +static MP_INLINE apr_size_t mpxs_Apache__OutputFilter_print(pTHX_ I32 items,
  +SV **MARK, SV **SP)
  +{
  +modperl_filter_t *modperl_filter;
  +apr_size_t bytes = 0;
  +
  +mpxs_usage_va_1(modperl_filter, "$filter->print(...)");
  +
  +if (modperl_filter->mode == MP_OUTPUT_FILTER_MODE) {
  +mpxs_write_loop(modperl_output_filter_write, modperl_filter);
  +modperl_output_filter_flush(modperl_filter);
  +}
  +else {
  +croak("input filters not yet supported");
  +}
  +
  +/* XXX: ap_rflush if $| */
  +
  +return bytes;
  +}
  +
  +static MP_INLINE apr_size_t mpxs_Apache__OutputFilter_read(pTHX_ I32 items,
  +   SV **MARK, SV **SP)
  +{
  +modperl_filter_t *modperl_filter;
  +apr_size_t wanted, len=0;
  +SV *buffer;
  +
  +mpxs_usage_va_2(modperl_filter, buffer, "$filter->read(buf, [len])");
  +
  +if (items > 2) {
  +wanted = SvIV(*MARK);
  +}
  +else {
  +wanted = MP_IOBUFSIZE;
  +}
  +
  +if (modperl_filter->mode == MP_OUTPUT_FILTER_MODE) {
  +len = modperl_output_filter_read(aTHX_ modperl_filter, buffer, wanted);
  +}
  +else {
  +croak("input filters not yet supported");
  +}
  +
  +return len;
  +}
  
  
  
  1.3   +5 -1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- apache_functions.map  2001/03/13 06:32:28 1.2
  +++ apache_functions.map  2001/03/13 07:29:00 1.3
  @@ -183,7 +183,11 @@
   ap_filter_t *:DEFINE_add_output_filter | | \
 request_rec *:r, const char *:name, void *:ctx
   
  -MODULE=Apache::Filter   PACKAGE=guess
  +PACKAGE=Apache::OutputFilter
  + mpxs_Apache__OutputFilter_print | | ...
  + mpxs_Apache__OutputFilter_read  | | ...
  +
  +PACKAGE=guess
   ~ap_add_output_filter
ap_add_input_filter
ap_get_brigade
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map

2001-03-12 Thread dougm

dougm   01/03/12 22:32:28

  Modified:xs/maps  apache_functions.map
  Added:   xs/Apache/RequestUtil Apache__RequestUtil.h
  Log:
  add a few protocol module helper methods
  
  Revision  ChangesPath
  1.1  modperl-2.0/xs/Apache/RequestUtil/Apache__RequestUtil.h
  
  Index: Apache__RequestUtil.h
  ===
  /*
   * XXX: these three should be part of the apache api
   * for protocol module helpers
   */
  
  static MP_INLINE request_rec *mpxs_Apache__RequestRec_new(SV *classname,
conn_rec *c)
  {
  apr_pool_t *p;
  request_rec *r;
  server_rec *s = c->base_server;
  
  apr_pool_create(&p, c->pool);
  r = apr_pcalloc(p, sizeof(request_rec));
  
  r->pool = p;
  r->connection = c;
  r->server = s;
  
  r->hostname = s->server_hostname;
  r->request_config = ap_create_request_config(p);
  r->per_dir_config = s->lookup_defaults;
  r->method = "GET";
  r->method_number = M_GET;
  r->uri = "/";
  r->filename = (char *)ap_server_root_relative(p, r->uri);
  
  r->the_request = "UNKNOWN";
  r->assbackwards = 1;
  r->protocol = "UNKNOWN";
  
  r->status = HTTP_OK;
  
  r->headers_in = apr_table_make(p, 1);
  r->headers_out = apr_table_make(p, 1);
  r->err_headers_out = apr_table_make(p, 1);
  r->notes = apr_table_make(p, 1);
  
  return r;
  }
  
  static MP_INLINE int mpxs_Apache__RequestRec_location_merge(request_rec *r,
  char *location)
  {
  apr_pool_t *p = r->pool;
  server_rec *s = r->server;
  core_server_config *sconf = ap_get_module_config(s->module_config,
   &core_module);
  ap_conf_vector_t **sec = (ap_conf_vector_t **)sconf->sec_url->elts;
  int num_sec = sconf->sec_url->nelts;
  int i;
  
  for (i=0; id, location)) {
  if (!entry->ap_auth_type) {
  entry->ap_auth_type = "Basic";
  }
  if (!entry->ap_auth_name) {
  entry->ap_auth_name = apr_pstrdup(p, location);
  }
  r->per_dir_config =
  ap_merge_per_dir_configs(p, s->lookup_defaults, sec[i]);
  return 1;
  }
  }
  
  return 0;
  }
  
  static MP_INLINE void
  mpxs_Apache__RequestRec_set_basic_credentials(request_rec *r,
char *username,
char *password)
  {
  char encoded[1024];
  int elen;
  char *auth_value, *auth_cat;
  
  auth_cat = apr_pstrcat(r->pool,
 username, ":", password, NULL);
  elen = apr_base64_encode(encoded, auth_cat, strlen(auth_cat));
  encoded[elen] = '\0';
  
  auth_value = apr_pstrcat(r->pool, "Basic ", encoded, NULL);
  apr_table_setn(r->headers_in, "Authorization", auth_value);
  }
  
  
  
  1.2   +6 -0  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- apache_functions.map  2001/03/05 03:49:12 1.1
  +++ apache_functions.map  2001/03/13 06:32:28 1.2
  @@ -45,6 +45,12 @@
ap_get_status_line
ap_is_initial_req
   
  + #protocol module helpers
  + int:DEFINE_location_merge | | request_rec *:r, char *:location
  + void:DEFINE_set_basic_credentials | | request_rec *:r, char *:username, char 
*:password
  +PACKAGE=Apache::RequestRec
  + request_rec *:DEFINE_new | | SV *:classname, conn_rec *:c
  +
   #MODULE=Apache::RequestConfig
ap_document_root
ap_get_limit_req_body
  
  
  



cvs commit: modperl-2.0/xs/maps apache_functions.map apache_structures.map apache_types.map

2001-03-04 Thread dougm

dougm   01/03/04 19:49:12

  Added:   xs/maps  apache_functions.map apache_structures.map
apache_types.map
  Log:
  the function/structure/type maps for apache
  
  Revision  ChangesPath
  1.1  modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===
  ##  Apache functions  ##
  
  #keywords:
  # MODULE  = the module name
  #   e.g. Apache::Connection -> Apache/Connection.{pm,xs}
  #
  # PACKAGE = the package name functions belong to, defaults to MODULE
  #   value of 'guess' indicates that package name should be
  #   guessed based on first argument found that maps to a Perl class
  #   fallsback on the prefix (ap_ -> Apache, apr_ -> APR)
  #
  # PREFIX  = prefix to be stripped
  #   defaults to PACKAGE, converted to C name convention, e.g.
  #   APR::Base64 -> apr_base64_
  #   if the converted prefix does not match, defaults to ap_ or apr_
  
  #format of entries:
  # C function name | dispatch function name | argspec | Perl alias
  
  # dispatch function name defaults to C function name
  # if the dispatch name is just a prefix (mpxs_, MPXS_)
  # the C function name is appended to it
  # the return type can be specified before the C function name,
  # defaults to return_type in {Apache,ModPerl}::FunctionTable
  
  # the argspec defaults to arguments in {Apache,ModPerl}::FunctionTable
  # argument types can be specified to override those in the FunctionTable
  # default values can be specified, e.g. arg=default_value
  # argspec of '...' indicates passthru, calling the function with
  # (aTHX_ I32 items, SP **sp, SV **MARK)
  
  # the alias will be created in the current PACKAGE
  
  # function names that do not begin with /^\w/ are skipped
  # for details see: %ModPerl::MapUtil::disabled_map
  
  MODULE=Apache::RequestUtil   PACKAGE=guess
   >ap_finalize_request_protocol
   ap_default_port_for_request
   ap_default_port_for_scheme
   ap_default_type
   ap_get_server_name
   ap_get_server_port
  !ap_content_type_tolower
   ap_get_status_line
   ap_is_initial_req
  
  #MODULE=Apache::RequestConfig
   ap_document_root
   ap_get_limit_req_body
   ap_get_limit_xml_body
  >ap_core_translate
  
  MODULE=Apache::SubRequest   PACKAGE=guess
   ap_sub_req_lookup_file
   ap_sub_req_lookup_uri
   ap_sub_req_method_uri
   ap_sub_req_output_filter
   ap_set_sub_req_protocol
  -ap_finalize_sub_req_protocol
   ap_internal_redirect
   ap_internal_redirect_handler
  
  MODULE=Apache::SubRequestPACKAGE=Apache::SubRequest
   ap_destroy_sub_req
   ap_run_sub_req
  
  MODULE=Apache::RequestIO   PACKAGE=Apache::RequestRec
   ap_discard_request_body
  !ap_getline
   ap_get_client_block   | mpxs_ | r, SV *:buffer, bufsiz
   ap_setup_client_block |   | r, read_policy=REQUEST_CHUNKED_ERROR
   ap_should_client_block
   ap_rflush
  PREFIX=ap_r
   ap_rwrite | | r, buf, nbyte
  ~ap_rprintf
  !ap_rputc
  ~ap_rputs
   ap_rvputs | mpxs_ | ... | puts
  -ap_vrprintf
  
   mpxs_Apache__RequestRec_TIEHANDLE
  
  MODULE=Apache::Response   PACKAGE=guess
   ap_make_etag
   ap_set_content_length
   ap_set_etag
   ap_meets_conditions
   ap_rationalize_mtime
   ap_update_mtime
   ap_send_error_response
   ap_send_fd
   ap_send_mmap
   ap_send_size
   ap_set_keepalive
   ap_set_last_modified
   ap_custom_response
  
  MODULE=Apache::Access   PACKAGE=guess
   ap_allow_methods
   ap_allow_options
   ap_allow_overrides
   ap_get_remote_logname
  !ap_requires
   ap_satisfies
  
  #MODULE=Apache::Auth
   ap_auth_name
   ap_auth_type
   ap_get_basic_auth_pw
   ap_note_auth_failure
   ap_note_basic_auth_failure
   ap_note_digest_auth_failure
   ap_some_auth_required
  
  !MODULE=Apache::ScriptUtil   PACKAGE=guess
   ap_add_cgi_vars
   ap_add_common_vars
   ap_create_environment
   ap_find_path_info
  -ap_scan_script_header_err
  -ap_scan_script_header_err_core
  -ap_scan_script_header_err_strs
  
  MODULE=Apache::ServerUtil   PACKAGE=guess
   ap_add_version_component
   ap_construct_server
   ap_construct_url | | r,uri,p
   ap_error_log2stderr
  
  #MODULE=Apache::ServerConfig
   ap_exists_config_define
   ap_get_local_host
   ap_get_server_built
   ap_get_server_version
   ap_psignature | | r,prefix
   ap_server_root_relative
  
  MODULE=Apache::Connection   PACKAGE=guess
   ap_get_remote_host
   ap_read_request
  >ap_update_vhost_given_ip
   ap_new_connection
  
  !MODULE=Apache::Log   PACKAGE=guess
   ap_log_assert
   ap_log_error
   ap_log_perror
   ap_log_pid
   ap_log_rerror
  >ap_open_stderr_log
  >ap_open_logs
  
  !MODULE=Apache::Module
  -ap_add_loaded_module
  -ap_add_module
  -ap_add_named_module
   ap_find_linked_module
   ap_find_module_name
   ap_remove_loaded_module
   ap_remove_module
  >ap_single_module_configure
  >ap_setup_prelinked_modules
  >ap_show_directives
  >ap_show_modules
  >ap_register_hooks
  
  !MODULE=Apac