You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Ken Williams <ke...@forum.swarthmore.edu> on 2001/04/01 20:07:40 UTC

Re: Looking for magic in Apache->request

matt@sergeant.org (Matt Sergeant) wrote:
>On Fri, 30 Mar 2001, Ken Williams wrote:
>
>> The thing I can't figure out from the XS code is how/where
>> Apache->request calls sv2request_rec(), which actually does the
>> extraction work.  Somehow it's automatically converted, because I see no
>> manual conversion in the Apache->request code below:
>> 
>> void
>> request(self, r=NULL)
>>     SV *self
>>     Apache r
>> 
>>     PPCODE: 
>>     self = self;
>>     if(items > 1) perl_request_rec(r);
>>     XPUSHs(perl_bless_request_rec(perl_request_rec(NULL)));
>> 
>> Any pointers?
>
>It's done in the typemap.

Dang.  So that would mean that in order to fix this, Apache->request($r)
would have to accept an arbitrary scalar, not something automatically
converted to an Apache object, right?

And then there's the matter of how it should be stored...

>
>> The reason I'm asking is that the current behavior of
>> Apache->request($r) makes it really hard to subclass Apache::Registry
>> and the like, because lots of code (like CGI.pm) call Apache->request to
>> get the current request object.
>
>Yeah I have this same "bug" in AxKit. It's a real pain.

If I get some time this week I'll see whether I can make a patch.  But
I'm in pretty unfamiliar territory.


  -------------------                            -------------------
  Ken Williams                             Last Bastion of Euclidity
  ken@forum.swarthmore.edu                            The Math Forum

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: Looking for magic in Apache->request

Posted by Matt Sergeant <ma...@sergeant.org>.
On Sun, 1 Apr 2001, Ken Williams wrote:

> Dang.  So that would mean that in order to fix this, Apache->request($r)
> would have to accept an arbitrary scalar, not something automatically
> converted to an Apache object, right?

Right.

> And then there's the matter of how it should be stored...

I have a feeling it would be pretty much impossible (because everything
in XS in mod_perl expects just an SvIV that points to the apache object),
but maybe Doug has some ideas. It *might* be possible to change the
typemap to detect whether the thing is an "Apache" or a something else,
and do something specific, but I'm kinda just pointing in the dark.

-- 
<Matt/>

    /||    ** Founder and CTO  **  **   http://axkit.com/     **
   //||    **  AxKit.com Ltd   **  ** XML Application Serving **
  // ||    ** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
     \\//
     //\\
    //  \\


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org