Markus Wichitill wrote:

jonathan vanasco wrote:

In mod_perl1, I have a handler that takes an apache request object manipulates the cookie/session data into a user, then presents the user with a page

in mod_perl2, however, there is no Apache::Request (yet) -- so my code simply doesn't work at all.


Apache::Request 2.0 (libapreq2), like mod_perl 2.0, is officially still in development, but mostly done.

http://httpd.apache.org/apreq/

I second the advice to use libapreq2 if your code is based on libapreq1. I'm almost done with the conversion.


Note, though, that libapreq2 will require some changes in your code, but probably less than not using libapreq. Be sure to read the documentation, especially the notes about converting from v1, for Apache::Request and Apache::Cookie at:

http://httpd.apache.org/apreq/docs/libapreq2/modules.html

A few things that caused me more pain than I care to admit:

1. Apache::Cookie v2 requires an Apache::RequestRec environment variable instead of an Apache::Request variable. Using the latter caused a segmentation fault. I believe $r in modperl2 is an Apache::RequestRec object, so just using your old code call should work fine. I, however, use HTML::Mason v1.27 which converted $r into an Apache::Request object which caused me much confusion.

2. Name and Value of a cookie cannot be changed. You'll have to create a new Apache::Cookie if you want to change either.

3. Expires method works differently between v1 and v2 of Apache::Cookie->new. An empty variable for -expires will default to "now" in v2 which means the cookie won't be set since it expires immediately. In v1, an empty -expires created a session cookie. To get the same behavior in v2, just don't supply an -expires parameter in new.

Take care,

Kurt Hansen
[EMAIL PROTECTED]

--
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html



Reply via email to