cvs commit: modperl-2.0/t/modules include2.t
dougm 2002/10/07 13:44:32 Modified:t/conf extra.conf.in Added: t/htdocs/includes-registry test.spl t/modules include2.t Log: test for mod_include parsing of mod_perl script output Revision ChangesPath 1.4 +2 -1 modperl-2.0/t/conf/extra.conf.in Index: extra.conf.in === RCS file: /home/cvs/modperl-2.0/t/conf/extra.conf.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- extra.conf.in 9 Apr 2002 03:38:02 - 1.3 +++ extra.conf.in 7 Oct 2002 20:44:31 - 1.4 -9,7 +9,8 Directory ServerRoot/htdocs/includes-registry SetHandler perl-script -Options +ExecCGI +Options +ExecCGI +IncludesNoExec PerlResponseHandler ModPerl::Registry PerlOptions +ParseHeaders +GlobalRequest +AddOutputFilter INCLUDES .spl /Directory 1.1 modperl-2.0/t/htdocs/includes-registry/test.spl Index: test.spl === use strict; #XXX: this test needs to be more robust. #various output buffers spread across multiple prints #more mod_include features mixed and checking that the output #is *exactly* what we expected, not just matching a few patterns. print Content-type: text/html\n\n; my $r = shift; my $test_string = 'Perl-SSI'; $r-subprocess_env-set(MY_TEST = $test_string); print EOF; Hello World from !--#echo var=SERVER_ADMIN --br Local date is !--#echo var=DATE_LOCAL --br Brought to you by !--#echo var=MY_TEST -- !--#echo var=SERVER_SOFTWARE -- br EOF 1.1 modperl-2.0/t/modules/include2.t Index: include2.t === use strict; use warnings FATAL = 'all'; use Apache::Test; use Apache::TestRequest; use Apache::TestUtil; #test for mod_include parsing of mod_perl script output #XXX: needs to be more robust. see t/htdocs/includes-registry/test.spl my patterns = ( 'Perl-SSI', #MY_TEST 'mod_perl', #SERVER_SOFTWARE ); plan tests = 2 + patterns, ['include']; my $location = /includes-registry/test.spl; my($res, $str); $res = GET $location; ok $res-is_success; $str = $res-content; ok $str; for my $pat (patterns) { ok t_cmp(qr{$pat}, $str, /$pat/); }
Another Apache.pm failed to load!. question....
Hi All, I have searched around the archives, but haven't been able to find an answer to my problem (flame me if I have totally overlooked something! :) ) I have two machines, ones a Dell 1650 dual P4 processor 1Gb RAM, and the second is a Dell 2450 dual P3 processor 1Gb RAM, both have RAID etc, and are very similar machines, other than one being older than the other. The idea is that the Dell 2450 is my primary Apache web server, and I have an identical Apache web server set up on the Dell 1650 that acts as a backup - if the 2450 goes down for some reason, I can manually point our firewall to the 1650 while I fix the 2450. I have done identical installations of SuSE Linux 8.0 Professional on both machines, leaving out all apahce, mod_*'s and php rpms. I then downloaded Apache 1.3.26, mod_perl 1.27, mod_ssl 2.8.10-1.3.26, OpenSSL 0.9.6g and PHP 4.2.2. I started on the backup 1650 server, and installed all the software using these rules for mod_perl and Apache (I can post the configure rules for the other software if its needed) perl Makefile.PL EVERYTHING = 1 APACHE_SRC = ../apache_1.3.26/src/ USE_APACI = 1 PREP_HTTPD = 1 DO_HTTPD = 1 ...and didn't compile as its going to get done with Apache's make later SSL_BASE=../openssl-0.9.6g ./configure --prefix=/usr/local/apache/ --enable-module=env --enable-module=setenvif --enable-module=mime --enable-module=mime_magic --enable-module=negotiation --enable-module=alias --enable-module=userdir --enable-module=dir --enable-module=autoindex --enable-module=access --enable-module=auth --enable-module=asis --enable-module=include --enable-module=cgi --enable-module=actions --enable-module=status --enable-module=info --enable-module=log_config --enable-module=imap --activate-module=src/modules/perl/libperl.a --enable-module=ssl --enable-shared=max --disable-shared=perl Then did my make, make certificates, make install This worked great on the Dell 1650 and I have had it running my sites for a few weeks now. I have now started to do the same install for the Dell 2450... I followed my instructions and everything compiles and installs great however, when I try to start the server I get the Apache.pm failed to load!. error in my error_log file! I have re-configured/make'd etc. around 3 times just to make sure that I haven't done any thing differently. I am 99% confident that these installs are identical other than the hardware, and the Apache install works on one, and not the other! I have tried http://perl.apache.org/docs/1.0/guide/troubleshooting.html#_Apache_pm_failed_to_load__ and it then gives a different error : Starting Apache : [Mon Oct 7 09:01:34 2002] [error] Can't locate Apache.pm in @INC (@INC contains: /usr/lib/perl5/5.6.1/i586-linux /usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1/i586-linux /usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl . /usr/local/apache/ /usr/local/apache/lib/perl) at (eval 2) line 3. Syntax error on line 293 of /usr/local/apache/conf/httpd.conf: Can't locate Apache.pm in @INC (@INC contains: /usr/lib/perl5/5.6.1/i586-linux /usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1/i586-linux /usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl . /usr/local/apache/ /usr/local/apache/lib/perl) at (eval 3) line 3. I have no idea why this isn't working. As far as I am concerned, its a brand new install, identical to the pervious one, and I have used the exact same process as before, one worked, the other didn't! Can anyone help me work out whats broken? -- Thanks, Andrew McCall Internet/Linux System Administrator I.C.T. Division Oldham MBC Civic Centre West Street Oldham OL1 1UU Tel : 0161 911 3990 Fax : 0161 911 3998 Email : [EMAIL PROTECTED] ** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This footnote also confirms that this email message has been swept by MIMEsweeper for the presence of computer viruses. www.oldham.gov.uk **
different versions of one .pm in mod_perl
I have installed apache 1.3.26 and mod_perl 1.27. I have two virtual servers setuped in apache server. Is there any easy way to use two versions of one .pm - first version in first virtual host, and second version in second virtual host. Using these versions of .pm is done under mod_perl environment. I don't want to modify the name of .pm or the way it is called. 10x.
Re: Another Apache.pm failed to load!. question....
Hello Andrew, it seems like the Perl side of mod_perl is not installed. As far as I know, you must always do a make and make install in the directory where you untarred your mod_perl sources, so that the Perl modules get installed correctly. If you want to make Apache separately, you must leave out the option DO_HTTPD (when running perl Makefile.PL ...) or set it to 0. Best regards, Axel [...] Starting Apache : [Mon Oct 7 09:01:34 2002] [error] Can't locate Apache.pm in INC (INC contains: /usr/lib/perl5/5.6.1/i586-linux /usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1/i586-linux /usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl . /usr/local/apache/ /usr/local/apache/lib/perl) at (eval 2) line 3. Syntax error on line 293 of /usr/local/apache/conf/httpd.conf: Can't locate Apache.pm in INC (INC contains: /usr/lib/perl5/5.6.1/i586-linux /usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1/i586-linux /usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl . /usr/local/apache/ /usr/local/apache/lib/perl) at (eval 3) line 3. I have no idea why this isn't working. As far as I am concerned, its a brand new install, identical to the pervious one, and I have used the exact same process as before, one worked, the other didn't! Can anyone help me work out whats broken?
closing connection to client not working !
Hello, I have noticed a interesting thing. I am trying to close my connection to client but I am getting weird error. $r-internal_redirect(file); shutdown($r-connection-fileno, 1) || die $!; .. .. do_some_internal_processing() . . This code always die's with error Bad file name. $r-connection-fileno is always '5' for this particular case. * CORE::shutdown, CORE::close, close, shutdown; all return same error. * ls -l /proc/$$/fd turns up the socket in the listing -- but it is owned by root - and I am not doing any setuid. s- 0 root root 0 Oct 7 05:03 5= * Most weird .. CORE::shutdown or CORE::close don't turn up if I truss the process, but I get the Bad file name error from my mod_perl application, and in the die I can see apache doing shutdown(5,1) and close(5). Why don't my CORE::close make it till the close() syscall ? Also if I do CORE::shutdown(5,1), I still get the same error !!! * I realised that mod_perl ties STDOUT to some package so untie *STDOUT, and tried but I get the same error. Could someone please suggest to me how I should close my connection to the client from within mod_perl ? I am using Apache/1.3.23 (Unix) mod_perl/1.26, on Solaris 2.6 I have been breaking my head on this for sometime now. Any suggestions are mossst welcome. regards srp
Problem installing Mod_perl_1.99 with apache_2.0.39
Actually, I have two questions, but the second is very secondary, an unrelated to the first. All work is on a RedHat Linux box, as a non-root user. Perl is 5.6.1, and I already have two copies of apache 2 installed. I am now trying to set up a mod-perl enabled server. (oh, and yes.. I *do* do a 'make clean' before I configure :) I have installed a new server using the following configure command (line-wrapped by the mail-client): TARGET=httpd2.mod_perl ./configure --build=i686 --enable-layout=Lucas.mod_perl --enable-mime-magic --enable-expires --enable-info --enable-cgi --enable-include --enable-negotiation --disable-userdir --with-program-name=httpd2_mod_perl --with-mpm=prefork This works fine, and I have no problems here: I can start'n'stop the server, and see known-correct pages in my browser. I then prepare mod_perl (version 1.99, 'cos I'm using apache 2) with the following line: perl Makefile.PL MP_INST_APACHE2=1 MP_DEBUG=1 MP_INST_APACHE2=1 MP_AP_PREFIX=/home/cpan/httpd-2.0.39 MP_USE_STATIC=1 MP_USE_DSO=0 This appears to configure OK, and the 'make' completes with no errors. I know that I can't simply run 'make test' due to (a) a non-standard location (b) a non-standard name, so I have tried the line: t/TEST -httpd /home/cpan/sbin/httpd2_mod_perl This fails, unable to find Apache/Const.pm: --- start screen dump [cpan@lucas mod_perl-1.99_07]$ t/TEST -httpd /home/cpan/sbin/httpd2_mod_perl *** setting ulimit to allow core files ulimit -c unlimited; t/TEST -httpd '/home/cpan/sbin/httpd2_mod_perl' Can't locate Apache/Const.pm in INC (INC contains: Apache-Test/lib /home/cpan/mod_perl-1.99_07/Apache-Test/lib /home/cpan/mod_perl-1.99_07/lib /home/cpan/mod_perl-1.99_07/blib/lib /home/cpan/mod_perl-1.99_07/blib/arch /home/cpan/mod_perl-1.99_07/t/../Apache-Test/lib /home/cpan/mod_perl-1.99_07/t/../lib /home/cpan/mod_perl-1.99_07/t/../../lib /home/cpan/lib/perl5/5.6.1/i686-linux /home/cpan/lib/perl5/5.6.1 /home/cpan/lib/perl5/site_perl/5.6.1/i686-linux /home/cpan/lib/perl5/site_perl/5.6.1 /home/cpan/lib/perl5/site_perl .) at /home/cpan/mod_perl-1.99_07/t/response/TestApache/subprocess.pm line 12. BEGIN failed--compilation aborted at /home/cpan/mod_perl-1.99_07/t/response/TestApache/subprocess.pm line 12. Compilation failed in require at /home/cpan/mod_perl-1.99_07/t/../Apache-Test/lib/Apache/TestConfigPerl.pm line 382. /home/cpan/sbin/httpd2_mod_perl -d /home/cpan/mod_perl-1.99_07/t -f /home/cpan/mod_perl-1.99_07/t/conf/httpd.conf -DAPACHE2 using Apache/2.0.39 (prefork MPM) waiting for server to start: .Syntax error on line 598 of /home/cpan/mod_perl-1.99_07/t/conf/httpd.conf: LoadModule takes two arguments, a module name and the name of a shared object file to load it from !!! server has died with status 1 (t/logs/error_log wasn't created, start the server in the debug mode) [cpan@lucas mod_perl-1.99_07]$ --- end screen dump I have had a look for the file Const.pm in the user's directory tree, and it does exist, however it's full path is: /home/cpan/mod_perl-1.99_07/blib/lib/Apache2/Apache/Const.pm (there is an extra /Apache2 in there) How to I get the test program to use (build?) the correct INC array? Many thanks. Oh, the second question sorry. I want to include the MP_USE_GTOP option, however the make barfs, unable to locate the glibtop header files (even though I have set the environment variable LD_LIBRARY_PATH to refer to the correct directory. Any thoughts here? (As I said, not really as important :-) Ta. -- --==++ Ian Stuart: Edinburgh University Data Library. Information is not knowledge Knowledge is not wisdom Wisdom is not truth Truth is not beauty Beauty is not love Love is not music -- Mary. Personal web site: http://lucas.ucs.ed.ac.uk/
identifying a unique browser session
All, How would I go about identifying if a user logs in from 2 different browsers? I Have a Session object, but I want to hold data within that session object that identifies which browser a user is using. So I can confirm that a user who provides a session key in their cookie, is checked and that that session key matches that browser. The issue is, that an ip address isn't always unique:-( Any ideas, Marty
Re: closing connection to client not working !
[EMAIL PROTECTED] wrote: Hello, I have noticed a interesting thing. I am trying to close my connection to client but I am getting weird error. don't do that. $r-internal_redirect(file); shutdown($r-connection-fileno, 1) || die $!; you should always return OK after calling internal_redirect(), not continue processing. .. .. do_some_internal_processing() . . if you have some long process you can move it to a PerlCleanupHandler or something, but you're not buying yourself any advantage here at all - the child process isn't free to serve another request until your processing is complete, whether the client is connected or not. This code always die's with error Bad file name. $r-connection-fileno is always '5' for this particular case. * CORE::shutdown, CORE::close, close, shutdown; all return same error. * ls -l /proc/$$/fd turns up the socket in the listing -- but it is owned by root - and I am not doing any setuid. I suspect that this is because the Apache parent process is the owner of it, but it's just a guess. Could someone please suggest to me how I should close my connection to the client from within mod_perl ? don't. just let Apache handle the TCP stuff - Apache is pretty good at it :) if you're worried about performance, look into something like lingerd, which offers some speedups wrt the closing of the connection. HTH --Geoff
Re: identifying a unique browser session
Martin Moss wrote: How would I go about identifying if a user logs in from 2 different browsers? Can you be more specific? Do you mean two browser windows, or two different browser programs on the same machine, or two different machines? I Have a Session object, but I want to hold data within that session object that identifies which browser a user is using. So I can confirm that a user who provides a session key in their cookie, is checked and that that session key matches that browser. If you issue each user a unique cookie, then each separate browser will have a separate identifying ID. I can't tell what the problem is from your description. Maybe you're looking for something like Apache::AuthTicket? - Perrin
Re: different versions of one .pm in mod_perl
At 12:09 07.10.2002, Plamen Stojanov wrote: I have installed apache 1.3.26 and mod_perl 1.27. I have two virtual servers setuped in apache server. Is there any easy way to use two versions of one .pm - first version in first virtual host, and second version in second virtual host. Using these versions of .pm is done under mod_perl environment. I don't want to modify the name of .pm or the way it is called. This is a classical problem in mod_perl, and its solution is intricate. I suggest that you read the following: http://perl.apache.org/docs/1.0/guide/porting.html#Name_collisions_with_Modules_and_libs -- Per Einar Ellefsen [EMAIL PROTECTED]
Re: Problem installing Mod_perl_1.99 with apache_2.0.39
One issue solved. After re-re-rereading the various docs, it dawned on me that that MP_AP_PREFIX refers to the directory that the working apache 2 tree is in, not the source tree (as v1 did). I'm still not able to get Apache to recognise the existence of Mod-Perl though On Mon, 2002-10-07 at 13:40, Ian Stuart wrote: I then prepare mod_perl (version 1.99, 'cos I'm using apache 2) with the following line: perl Makefile.PL MP_INST_APACHE2=1 MP_DEBUG=1 MP_INST_APACHE2=1 MP_AP_PREFIX=/home/cpan/httpd-2.0.39 MP_USE_STATIC=1 MP_USE_DSO=0 -- --==++ Ian Stuart: Edinburgh University Data Library. Information is not knowledge Knowledge is not wisdom Wisdom is not truth Truth is not beauty Beauty is not love Love is not music -- Mary. Personal web site: http://lucas.ucs.ed.ac.uk/
Re: closing connection to client not working !
Thanks for the reply, I have one doubt though ... I rigged up some UserAgent code and accessed a url which does internal_redirect() and goes to sleep(60) before returning. I found the response delayed by slightly more than 60 seconds. So my problem all the time was that internal_redirect() does not really send the data until I return to apache. :-) is there any way to override this behaviour ? I know that I can send my data using send_fd(), but is there any other way of telling Apache to do the redirect ? regards srp From: Geoffrey Young [EMAIL PROTECTED] User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.1) Gecko/20020823 Netscape/7.0 To: [EMAIL PROTECTED] CC: [EMAIL PROTECTED] Subject: Re: closing connection to client not working ! References: [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Hello, I have noticed a interesting thing. I am trying to close my connection to client but I am getting weird error. don't do that. $r-internal_redirect(file); shutdown($r-connection-fileno, 1) || die $!; you should always return OK after calling internal_redirect(), not continue processing.
I've modified a module and need to know some things.
Greetings all...this is my first time posting here, so please forgive me if I'm not posting where I should. I've made a modification to Apache::AuthDBI 0.89 for my own personal use, and want to share it with everyone. I was told that this is the place to let y'all know about it and get input before submitting anything to CPAN. What I've done is expanded the original Auth_DBI_encrypted variable to accept not just crypted passwords, but MD5, MD5HEX, and MD5BASE64 as well. The reason for this expansion is that I needed a way to use http authentication when using phpBB, instead of the usual login through a form. However, phpBB uses MD5hex for it's passwords instead of crypt, which made the use of AuthDBI impossible for this task. So, rather than modify phpBB to use crypt, I modified AuthDBI to use MD5. I figured that it may be useful in other areas to use md5 encryption for passwords instead of just crypt. So, as this is the first time I've done anything like this, I appreciate any input on how to submit, who to talk to, etc etc... Thank you, Timothy R. Winters
[DIGEST] mod_perl digest 2002/09/23
-- mod_perl digest September 23, 2002 - October 6, 2002 -- Recent happenings in the mod_perl world... Features o mod_perl status o module announcements o mailing list highlights o links mod_perl status o mod_perl - stable: 1.27 (released June 1, 2002) [1] - development: 1.27_01-dev [2] - number of posts: 31 [*] o Apache - stable: 1.3.27 (released October 3, 2002) [3] - development: 1.3.28-dev [4] o mod_perl 2.0 - beta: 1.99_07 (released September 27, 2002) [5] - development: (from cvs) [6] - number of posts: 15 [*] o Apache 2.0 - stable: 2.0.43 (released October 3, 2002) [7] o Perl - stable: 5.8.0 (released July 18, 2002) [8] - development: none [9] module announcements o Bricolage 1.4.2 - full-featured, enterprise-class content management and publishing system [10] mailing list highlights o mod_perl 1.99_07 [11] o Performance of mod_perl vs. c module [12] links o The Apache/Perl Integration Project [13] o mod_perl documentation [14] o Apache modules on CPAN [15] o _Writing Apache Modules with Perl and C_ homepage [16] o _mod_perl Developer's Cookbook_ homepage [17] o mod_perl news and advocacy [18] o mod_perl list archives - modperl@ [19] - dev@ [20] - docs-dev@ [21] - advocacy@ [22] happy mod_perling... --James [EMAIL PROTECTED] -- [*] this is a rough estimate for the time covered by this digest of the number of messages on the mod_perl discussion list (where this digest is posted) that are primarily concerned with the given version of mod_perl. Mod_perl 1.99_xx is counted with mod_perl 2.0. Posts concerning Perl modules are not counted. [1] http://perl.apache.org/dist/ [2] http://cvs.apache.org/snapshots/modperl/ [3] http://www.apache.org/dist/httpd/ [4] http://cvs.apache.org/snapshots/apache-1.3/ [5] http://perl.apache.org/dist/mod_perl-1.99_04.tar.gz [6] http://cvs.apache.org/snapshots/modperl-2.0/ [7] http://www.apache.org/dist/httpd/ [8] http://www.cpan.org/src/stable.tar.gz [9] http://www.cpan.org/src/README.html [10] http://mathforum.org/epigone/modperl/ghucrahwhoi [11] http://mathforum.org/epigone/modperl/bexblinghox [12] http://mathforum.org/epigone/modperl/zhoxcraldshai [13] http://perl.apache.org/ [14] http://perl.apache.org/docs/ [15] http://www.cpan.org/modules/by-module/Apache/ [16] http://www.modperl.com/ [17] http://www.modperlcookbook.org/ [18] http://www.take23.org/ [19] http://perl.apache.org/maillist/modperl.html#Searchable_Archives [20] http://perl.apache.org/maillist/dev.html#Searchable_Archives [21] http://perl.apache.org/maillist/docs-dev.html#Searchable_Archives [22] http://perl.apache.org/maillist/advocacy.html#Searchable_Archives
PATCH Apache::AuthDBI
This patch makes Apache::AuthDBI work under mod_perl 1.99 as well under mod_perl 1.X it works fine at least with mysql and Oracle Saludos -- -Por que te contienes? Por que te compadeces? Por que -odiado de los dioses- no odias a un dios? Por que no le traicionas si el traiciono tu honor? - Somos semejantes, nuestras vidas estan unidas. diff -ru Apache-DBI-0.89.old/AuthDBI.pm Apache-DBI-0.89/AuthDBI.pm --- Apache-DBI-0.89.old/AuthDBI.pm 2002-06-18 01:49:39.0 -0400 +++ Apache-DBI-0.89/AuthDBI.pm 2002-10-07 21:29:52.0 -0400 -174,7 +174,7 return $res if $res; # e.g. HTTP_UNAUTHORIZED # get username -my ($user_sent) = $r-connection-user; +my ($user_sent) = $r-user; print STDERR $prefix user sent = $user_sent\n if $Apache::AuthDBI::DEBUG 1; # do we use shared memory for the global cache ? -426,7 +426,7 my ($group_result) = DECLINED; # get username -my ($user_sent) = $r-connection-user; +my ($user_sent) = $r-user; print STDERR $prefix user sent = $user_sent\n if $Apache::AuthDBI::DEBUG 1 ; # here we could read the configuration, but we re-use the configuration from the authentication
ANNOUNCE: Mason 1.14
This release has lots of fun new stuff. It's _more_ backwards compatible than 1.10-1.13, particularly as far as caching is concerned, which should help those who are interested in upgrading. It has a brand new spiffy user-defined escapes feature, which among other things allows you to easily HTML-escape something besides ISO-8859-1 (or UTF8) text. Plus a bunch of bug fixes, improved docs, and it's less filling (uses less memory). 1.14 October 7, 2002 [ BACKWARDS COMPATIBILITY ] - Added compatibility layer for 1.0x cache API. It is now possible to use $m-cache and $m-cache_self in the old way by setting the data_cache_api parameter to '1.0'. L{Params/data_cache_api} - Added back $comp-create_time, which was renamed as $comp-load_time in 1.09_02, as a deprecated method. - Added back $interp-time and $m-current_time, which were removed in 1.09_01, as deprecated methods. [ ENHANCEMENTS ] - Implemented the long requested user-defined escapes feature. It is now possible to define your own escape flags, as well as overriding Mason's own 'h' and 'u' flags. L{Devel/Escaping expressions} - Implemented expire_if and busy_lock options in new $m-cache-get API. These retain the essence of the 1.0x options although both work a little differently. L{Devel/Data Caching} - Added new module to implement caching extensions, HTML::Mason::Cache::BaseCache, with accompanying documentation. - Enhanced Params.pod with TOC and full descriptions of all parameters. Standardized rest of documentation to link to Params.pod when referring to a parameter. - When a component path is not found, but that path matches a file on disk, we now print an extra warning, because this indicates that the user does not understand the distinction between component paths and filesystem paths. - The Request object's redirect() method now accepts an optional additional argument, allowing users to use a status code other than 302 for the redirect. - Mason should now work on a box with a fresh mod_perl 2/Apache 2 install. Previously, Mason unconditionally tried to load Apache::Status, which comes with mod_perl 1.x, but not (yet?) with mod_perl 2. [ BUG FIXES ] - Installation was failing when Exception::Class wasn't installed. - Calling %def subcomponents no longer changes base_comp, which is important in autohandlers. (reported by Ian Robertson) - The documentation incorrectly indicated that you could create an ApacheHandler object during server startup without providing a component root. This will also shown incorrectly in the sample handler.pl in the eg/ directory. - Reduced Mason's memory usage when compiling and serving components. This is particularly noticeable with very large components (1-2MB or greater). Work on this will continue for future versions. (reported by Todd Holbrook) - %ARGS and %shared variables could not be accessed from %filter. (reported by Adam Roth) - Switch.pm did not work in file-based components. (reported by Gert Thiel) - use_strict could not be turned off. (reported by Viacheslav Voytovich) - $m-clear_buffer (and $m-redirect) did not work inside a component call with content. (reported by Manuel Capinha) - Some tests were failing on Windows, because they assumed Unix style filesystem paths. This was a problem with the tests, not the core code, but still worth fixing. (reported by Adam Rinehart). - $m-caller() was inadvertently left out of the documentation - fixed. - Fixed a small documentation error about what kinds of things are valid keys in %flags and %attr blocks. - Configuring multiple component roots via the httpd.conf file failed silently (as opposed to releases 1.10 - 1.12, where this failed with an error). - Unreadable component source files caused the confusing error message source callback returned no source. This will now throw a much more helpful exception. - Errors occuring in subrequests would cause error output to be mixed with regular output when the error_mode was output (the default with ApacheHandler and CGIHandler). Errors in subrequests should now look the same as errors in the top request. /*== www.urth.org we await the New Sun ==*/