stas        2004/08/17 22:46:11

  Modified:    .        Changes
               t/protocol/TestProtocol pseudo_http.pm
               xs/Apache/RequestUtil Apache__RequestUtil.h
  Log:
  - test whether we can invoke modperl HTTP handlers on the fake $r
  - Update Apache::RequestRec->new() to initialize members of request_rec
  which were added some time ago (without it we were getting segfaults
  in the new pseudo_http test.
  
  Revision  Changes    Path
  1.452     +4 -0      modperl-2.0/Changes
  
  Index: Changes
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/Changes,v
  retrieving revision 1.451
  retrieving revision 1.452
  diff -u -u -r1.451 -r1.452
  --- Changes   17 Aug 2004 23:40:41 -0000      1.451
  +++ Changes   18 Aug 2004 05:46:10 -0000      1.452
  @@ -12,6 +12,10 @@
   
   =item 1.99_15-dev
   
  +Update Apache::RequestRec->new() to initialize members of request_rec
  +which were added some time ago (without it we were getting segfaults
  +in the new pseudo_http test. [Stas]
  +
   Apache::CmdParms->limited member replaced by is_method_limited()
   method [Gozer]
   
  
  
  
  1.6       +11 -1     modperl-2.0/t/protocol/TestProtocol/pseudo_http.pm
  
  Index: pseudo_http.pm
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/t/protocol/TestProtocol/pseudo_http.pm,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -u -r1.5 -r1.6
  --- pseudo_http.pm    9 Aug 2004 00:23:25 -0000       1.5
  +++ pseudo_http.pm    18 Aug 2004 05:46:10 -0000      1.6
  @@ -26,7 +26,7 @@
   sub handler {
       my $c = shift;
       my $socket = $c->client_socket;
  -    
  +
       if ($socket->opt_get(APR::SO_NONBLOCK)) {
           $socket->opt_set(APR::SO_NONBLOCK => 0);
       }
  @@ -73,6 +73,10 @@
       my $c = shift;
   
       my $r = Apache::RequestRec->new($c);
  +
  +    # test whether we can invoke modperl HTTP handlers on the fake $r
  +    $r->push_handlers(PerlAccessHandler => \&my_access);
  +
       $r->location_merge(__PACKAGE__);
   
       for my $method (qw(run_access_checker run_check_user_id
  @@ -96,6 +100,12 @@
           }
       }
   
  +    return Apache::OK;
  +}
  +
  +sub my_access {
  +    # just test that we can invoke a mod_perl HTTP handler
  +    debug "running my_access";
       return Apache::OK;
   }
   
  
  
  
  1.24      +34 -17    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.23
  retrieving revision 1.24
  diff -u -u -r1.23 -r1.24
  --- Apache__RequestUtil.h     6 Jul 2004 22:06:04 -0000       1.23
  +++ Apache__RequestUtil.h     18 Aug 2004 05:46:10 -0000      1.24
  @@ -69,30 +69,47 @@
       apr_pool_create(&p, base_pool);
       r = apr_pcalloc(p, sizeof(request_rec));
   
  -    r->pool = p;
  +    r->pool       = p;
       r->connection = c;
  -    r->server = s;
  +    r->server     = s;
  +
  +    r->user            = NULL;
  +    r->ap_auth_type    = NULL;
  +
  +    r->allowed_methods = ap_make_method_list(p, 1);
  +    
  +    r->headers_in      = apr_table_make(p, 1);
  +    r->subprocess_env  = apr_table_make(r->pool, 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);
   
  -    r->hostname = s->server_hostname;
       r->request_config = ap_create_request_config(p);
  +
  +    r->proto_output_filters = c->output_filters;
  +    r->output_filters       = r->proto_output_filters;
  +    r->proto_input_filters  = c->input_filters;
  +    r->input_filters        = r->proto_input_filters;
  +
  +    ap_run_create_request(r);
  +    
       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->sent_bodyct     = 0;
  +    r->read_length     = 0;
  +    r->read_body       = REQUEST_NO_BODY;
  +    r->status          = HTTP_OK;
  +    r->the_request     = "UNKNOWN";
  +    
  +    r->hostname = s->server_hostname;
   
  -    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);
  +    r->method          = "GET";
  +    r->method_number   = M_GET;
  +    r->uri             = "/";
  +    r->filename        = (char *)ap_server_root_relative(p, r->uri);
   
  -    ap_run_create_request(r);
  +    r->assbackwards    = 1;
  +    r->protocol        = "UNKNOWN";
   
       return r;
   }
  
  
  

Reply via email to