in reply to mod_perl - using input filters and bucket brigades to pass data to subrequests

No offense, but you're making this way more difficult than it needs to be.

Don't make subrequests unless you have a real reason for it, like needing to run some special auth handler that can't be called directly from perl. They have overhead and complicate things. You can easily set a specific handler or directly call some perl code without any need for subrequests. It's simpler and faster.

The way to pass data between phases or requests is $r->pnotes(). You just put the data there and then grab it in the next phase or subrequest. If you are in a subrequest, you have to ask for the parent request's record and look there for it. I think that's just $r->parent() but that's off the top of my head and could be wrong.

  • Comment on Re: mod_perl - using input filters and bucket brigades to pass data to subrequests
  • Download Code

Replies are listed 'Best First'.
Re^2: mod_perl - using input filters and bucket brigades to pass data to subrequests
by walinsky (Scribe) on Mar 10, 2008 at 21:39 UTC

    The main reason for making subrequests is that we're getting a bunch of WEBDAV requests bundled in the POSTed request. We don't want to handle those in perl, as mod_dav was built to do it. We are already using the $r->pnotes for passing the data from the handler to the input filter.

    An other option would be using LWP - but that seems quite stupid, as we would loose the whole request environment.

    A third option would be writing xs code for gluing perl to mod_dav. If one has that code handy already, I'd be more than interested in trying that way

      Ok, you could use subrequests for that. I'd still check out CPAN's DAV modules though. If you think subrequests to mod_dav are the way to go, bring your question about filters over to the mod_perl mailing list.