svn commit: r168057 - /perl/modperl/docs/trunk/src/download/index_top.html
Author: stas Date: Tue May 3 19:49:31 2005 New Revision: 168057 URL: http://svn.apache.org/viewcvs?rev=168057view=rev Log: mp2-RC6 is out Modified: perl/modperl/docs/trunk/src/download/index_top.html Modified: perl/modperl/docs/trunk/src/download/index_top.html URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/download/index_top.html?rev=168057r1=168056r2=168057view=diff == --- perl/modperl/docs/trunk/src/download/index_top.html (original) +++ perl/modperl/docs/trunk/src/download/index_top.html Tue May 3 19:49:31 2005 @@ -14,7 +14,7 @@ brbr /li -limod_perl 2.0 (in development): Version 2.0.0-RC5 - April 14, 2005br +limod_perl 2.0 (in development): Version 2.0.0-RC6 - May 3, 2005br a href=http://perl.apache.org/dist/mod_perl-2.0-current.tar.gz;Download/a | a href=http://perl.apache.org/dist/mod_perl-2.0-current;Browse/a | a href=http://perl.apache.org/dist/mod_perl-2.0-current/Changes;Changes/a | - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r165212 - in /perl/modperl/docs/trunk/src/docs/2.0/api/APR: Error.pod Socket.pod
Author: stas Date: Thu Apr 28 15:16:18 2005 New Revision: 165212 URL: http://svn.apache.org/viewcvs?rev=165212view=rev Log: sock-recv may trigger both: is_EAGAIN and TIMEUP error: nonblocking IO = is_EAGAIN timeout(0) = is_EAGAIN timeout(1) = TIMEUP so update the docs to include both Modified: perl/modperl/docs/trunk/src/docs/2.0/api/APR/Error.pod perl/modperl/docs/trunk/src/docs/2.0/api/APR/Socket.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/APR/Error.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/APR/Error.pod?rev=165212r1=165211r2=165212view=diff == --- perl/modperl/docs/trunk/src/docs/2.0/api/APR/Error.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/APR/Error.pod Thu Apr 28 15:16:18 2005 @@ -88,12 +88,16 @@ There are two ways to figure out whether an error fits your case. In most cases you just compare C$@ with an the error constant. For -example: +example if a socket has a timeout set and the data wasn't read within +the timeout limit a +CLAPR::Const::TIMEUP|docs::2.0::api::APR::Const/C_APR__Const__TIMEUP_) use APR::Const -compile = qw(TIMEUP); - # some code throwing an exception + $sock-timeout_set(1_000_000); # 1 sec + my $buff; + eval { $socket-recv($buff, BUFF_LEN) }; if ($@ ref $@ $@ == APR::Const::TIMEUP) { - # do something + } However there are situations, where on different Operating Systems a @@ -102,7 +106,9 @@ CLAPR::Status|docs::2.0::api::APR::Status class. One such condition is socket Crecv() timeout, which on Unix throws the CEAGAIN error, but on other system it throws a different error. In -this case LAPR::Status::is_EAGAIN should be used. +this case +CLAPR::Status::is_EAGAIN|docs::2.0::api::APR::Status/C_is_EAGAIN_ +should be used. Let's look at a complete example. Here is a code that performs La socket read|docs::2.0::api::APR::Socket/C_recv_: Modified: perl/modperl/docs/trunk/src/docs/2.0/api/APR/Socket.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/APR/Socket.pod?rev=165212r1=165211r2=165212view=diff == --- perl/modperl/docs/trunk/src/docs/2.0/api/APR/Socket.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/APR/Socket.pod Thu Apr 28 15:16:18 2005 @@ -263,15 +263,43 @@ If you get the C'(11) Resource temporarily unavailable' error (exception -CLAPR::Const::EAGAIN|docs::2.0::api::APR::Const/C_APR__EAGAIN_), then you -didn't ensure that the socket is in La blocking IO mode|/C_opt_set_ -before using it. +CLAPR::Const::EAGAIN|docs::2.0::api::APR::Const/C_APR__EAGAIN_) +(or another equivalent, which might be different on non-POSIX +systems), then you didn't ensure that the socket is in La blocking IO +mode|/C_opt_set_ before using it. Note that you should use +CLAPR::Status::is_EAGAIN|docs::2.0::api::APR::Status/C_is_EAGAIN_ +to perform this check (since different error codes may be returned for +the same event on different OSes). For example if the socket is set to +the non-blocking mode and there is no data right away, you may get +this exception thrown. So here is how to check for it and retry a few +times after short delays: + + use APR::Status (); + $sock-opt_set(APR::Const::SO_NONBLOCK, 1); + # + my $tries = 0; + RETRY: my $rlen = eval { $socket-recv(my $buffer, SIZE) }; + if ($@) + die $@ unless ref $@ APR::Status::is_EAGAIN($@); + if ($tries++ 3) { + # sleep 250msec + select undef, undef, undef, 0.25; + goto RETRY; + } + else { + # do something else + } + } + warn read $rlen bytes\n + If timeout was set via Ctimeout_set|/C_timeout_set_, you may need to -catch the CLAPR::Const::TIMEUP|docs::2.0::api::APR::Const/C_APR__TIMEUP_ +catch the +CLAPR::Const::TIMEUP|docs::2.0::api::APR::Const/C_APR__TIMEUP_ exception. For example: use APR::Const -compile = qw(TIMEUP); + $sock-timeout_set(1_000_000); # 1 sec my $buffer; eval { $sock-recv($buffer, $wanted) }; if ($@ $@ == APR::Const::TIMEUP) { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r164925 - in /perl/modperl/docs/trunk/src/docs/2.0/user/handlers: http.pod protocols.pod
Author: stas Date: Tue Apr 26 17:28:54 2005 New Revision: 164925 URL: http://svn.apache.org/viewcvs?rev=164925view=rev Log: various corrections and polish Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/http.pod perl/modperl/docs/trunk/src/docs/2.0/user/handlers/protocols.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/http.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/handlers/http.pod?rev=164925r1=164924r2=164925view=diff == --- perl/modperl/docs/trunk/src/docs/2.0/user/handlers/http.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/handlers/http.pod Tue Apr 26 17:28:54 2005 @@ -49,6 +49,10 @@ is ended with C1; to return true when it gets loaded. + + + + =head1 HTTP Request Cycle Phases Those familiar with mod_perl 1.0 will find the HTTP request cycle in @@ -136,6 +140,18 @@ Now let's discuss each of the mentioned handlers in detail. + + + + + + + + + + + + =head2 PerlPostReadRequestHandler The Ipost_read_request phase is the first request phase and happens @@ -156,8 +172,8 @@ Now, let's look at an example. Consider the following registry script: - touch.pl - + #file:touch.pl + #- use strict; use warnings; @@ -197,8 +213,8 @@ be executed as the very first thing of each requests, comes handy here: - file:MyApache2/TimeReset.pm - -- + #file:MyApache2/TimeReset.pm + #-- package MyApache2::TimeReset; use strict; @@ -267,13 +283,13 @@ is now handled by: - http://example.com/perl/news.pl?date=20021031id=09page=index.html + http://example.com/perl/news.pl?date=20021031;id=09;page=index.html the following handler can do the rewriting work transparent to Inews.pl, so you can still use the former URI mapping: - file:MyApache2/RewriteURI.pm - --- + #file:MyApache2/RewriteURI.pm + #--- package MyApache2::RewriteURI; use strict; @@ -288,7 +304,7 @@ my($date, $id, $page) = $r-uri =~ m|^/news/(\d+)/(\d+)/(.*)|; $r-uri(/perl/news.pl); - $r-args(date=$dateid=$idpage=$page); + $r-args(date=$date;id=$id;page=$page); return Apache2::Const::DECLINED; } @@ -296,8 +312,8 @@ The handler matches the URI and assigns a new URI via C$r-Egturi() and the query string via C$r-Egtargs(). It then returns -CApache2::Const::DECLINED, so the next translation handler will get invoked, -if more rewrites and translations are needed. +CApache2::Const::DECLINED, so the next translation handler will get +invoked, if more rewrites and translations are needed. Of course if you need to do a more complicated rewriting, this handler can be easily adjusted to do so. @@ -335,8 +351,8 @@ using the following code: - file:MyApache2/NoTranslation.pm - -- + #file:MyApache2/NoTranslation.pm + #-- package MyApache2::NoTranslation; use strict; @@ -356,8 +372,8 @@ shortcut it, CTRACE calls will be not handled. In case you need to handle such, you may rewrite it as: - file:MyApache2/NoTranslation2.pm - --- + #file:MyApache2/NoTranslation2.pm + #--- package MyApache2::NoTranslation2; use strict; @@ -370,7 +386,8 @@ sub handler { my $r = shift; - return Apache2::Const::DECLINED if $r-method_number == Apache2::Const::M_TRACE; + return Apache2::Const::DECLINED + if $r-method_number == Apache2::Const::M_TRACE; # skip ap_directory_walk stat() calls return Apache2::Const::OK; @@ -411,8 +428,8 @@ CLPerlPostReadRequestHandler|/PerlPostReadRequestHandler and turn it into CLPerlHeaderParserHandler|/PerlHeaderParserHandler by simply changing the directive name in Ihttpd.conf and moving it -inside the container where it should be executed. Moreover, because -of this similarity mod_perl provides a special directive +inside the container where it should be executed. Moreover, because of +this similarity mod_perl provides a special directive CLPerlInitHandler|/PerlInitHandler which if found outside resource containers behaves as CLPerlPostReadRequestHandler|/PerlPostReadRequestHandler, @@ -434,8 +451,8 @@ and here is the CMyApache2::SendEmail handler: - file:MyApache2/SendEmail.pm - -- + #file:MyApache2/SendEmail.pm + #-- package MyApache2::SendEmail; use strict; @@ -535,14 +552,9 @@ Next it tells Apache that this new method is a valid one and that the Cperl-script handler will do the processing. - Apache2::RequestUtil::method_register($r-server-process-pconf, - METHOD); + $r-server-method_register(METHOD); $r-handler(perl-script
svn commit: r164947 - /perl/modperl/docs/trunk/src/docs/2.0/api/APR/Error.pod
Author: stas Date: Tue Apr 26 22:02:16 2005 New Revision: 164947 URL: http://svn.apache.org/viewcvs?rev=164947view=rev Log: correct the buggy examples, rewrite the description Modified: perl/modperl/docs/trunk/src/docs/2.0/api/APR/Error.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/APR/Error.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/APR/Error.pod?rev=164947r1=164946r2=164947view=diff == --- perl/modperl/docs/trunk/src/docs/2.0/api/APR/Error.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/APR/Error.pod Tue Apr 26 22:02:16 2005 @@ -86,58 +86,61 @@ warn handled exception: $@ if $@ $ref $@; -For example you wrote a code that performs La socket -read|docs::2.0::api::APR::Socket/C_recv_: +There are two ways to figure out whether an error fits your case. In +most cases you just compare C$@ with an the error constant. For +example: + + use APR::Const -compile = qw(TIMEUP); + # some code throwing an exception + if ($@ ref $@ $@ == APR::Const::TIMEUP) { + # do something + } + +However there are situations, where on different Operating Systems a +different error code will be returned. In which case to simplify the +code you should use the special subroutines provided by the +CLAPR::Status|docs::2.0::api::APR::Status class. One such +condition is socket Crecv() timeout, which on Unix throws the +CEAGAIN error, but on other system it throws a different error. In +this case LAPR::Status::is_EAGAIN should be used. + +Let's look at a complete example. Here is a code that performs La +socket read|docs::2.0::api::APR::Socket/C_recv_: my $rlen = $sock-recv(my $buff, 1024); warn read $rlen bytes\n; and in certain cases it times out. The code will die and log the reason for the failure, which is fine, but later on you may decide -that you want to have another attempt to read before dying. In which -case you rewrite the code to handle the exception like this: +that you want to have another attempt to read before dying and add +some fine grained sleep time between attempts, which can be achieved +with Cselect. Which gives us: - use APR::Const -compile = qw(TIMEUP); - my $buff; + use APR::Status (); + # my $tries = 0; - RETRY: my $rlen = eval { $sock-recv($buff, 1024) }; - if ($@) { - die $@ unless ref $@ $@ == APR::Const::TIMEUP; - goto RETRY if $tries++ 3; - } - warn read $rlen bytes\n; - -Notice that we handle non-object and non-CAPR::Error exceptions as -well, by simply rethrowing them. - -You certainly want to have a limit on how many times the code retries -the operation as in this example and you probably want to add some -fine grained sleep time between attempts, which can be achieved with -Cselect. As a result the retry code may look like this: - - use APR::Const -compile = qw(TIMEUP); - my $tries = 0; - RETRY: my $rlen = eval { $sock-recv($buff, 1024) }; - if ($@) { - die $@ unless ref $@ $@ == APR::Const::TIMEUP; + RETRY: my $rlen = eval { $socket-recv(my $buffer, SIZE) }; + if ($@) + die $@ unless ref $@ APR::Status::is_EAGAIN($@); if ($tries++ 3) { # sleep 250msec select undef, undef, undef, 0.25; goto RETRY; } + else { + # do something else + } } - warn read $rlen bytes\n; + warn read $rlen bytes\n + +Notice that we handle non-object and non-CAPR::Error exceptions as +well, by simply re-throwing them. Finally, the class is called CAPR::Error because it needs to be used outside mod_perl as well, when called from CLAPR|docs::2.0::api::APR applications written in Perl. -It is worth noting that APR provides some macros in Fapr_errno.h, -CAPR_STATUS_IS_*, which are the recommended way to check for -some error conditions, especially in cases when different -circumstances can lead to the intent of a single condition. -See the LAPR::Status documentation|docs::2.0::api::APR::Status -for an interface to some of these macros. + =head1 API - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r164989 - in /perl/modperl/docs/trunk/src/docs/2.0/user: handlers/intro.pod handlers/server.pod install/install.pod intro/start_fast.pod porting/compat.pod
Author: stas Date: Wed Apr 27 08:11:12 2005 New Revision: 164989 URL: http://svn.apache.org/viewcvs?rev=164989view=rev Log: various corrections and polish Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/intro.pod perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod perl/modperl/docs/trunk/src/docs/2.0/user/intro/start_fast.pod perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/intro.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/handlers/intro.pod?rev=164989r1=164988r2=164989view=diff == --- perl/modperl/docs/trunk/src/docs/2.0/user/handlers/intro.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/handlers/intro.pod Wed Apr 27 08:11:12 2005 @@ -79,35 +79,36 @@ value -- things will change in the future and you won't know why things aren't working anymore. -The only value that can be returned by all handlers is CApache2::Const::OK, -which tells Apache that the handler has successfully finished its -execution. +The only value that can be returned by all handlers is +CApache2::Const::OK, which tells Apache that the handler has +successfully finished its execution. -CApache2::Const::DECLINED is another return value that indicates success, -but it's only relevant for -Lphases|docs::2.0::user::handlers::intro/Stacked_Handlers -of type CLRUN_FIRST|/RUN_FIRST. +CApache2::Const::DECLINED is another return value that indicates +success, but it's only relevant for +Lphases|docs::2.0::user::handlers::intro/Stacked_Handlers of type +CLRUN_FIRST|/RUN_FIRST. LHTTP handlers|docs::2.0::user::handlers::http may also return -CApache2::Const::DONE which tells Apache to stop the normal LHTTP request +CApache2::Const::DONE which tells Apache to stop the normal LHTTP +request cycle|docs::2.0::user::handlers::http/HTTP_Request_Cycle_Phases and fast forward to the CLPerlLogHandler|docs::2.0::user::handlers::http/PerlLogHandler, followed by CLPerlCleanupHandler|docs::2.0::user::handlers::http/PerlCleanupHandler. LHTTP handlers|docs::2.0::user::handlers::http may return any HTTP -status, which similarly to CApache2::Const::DONE will cause an abort of the -request cycle, by also will be interpreted as an error. Therefore you -don't want to return CApache2::Const::HTTP_OK from your HTTP response -handler, but CApache2::Const::OK and Apache will send the C200 OK status -by itself. +status, which similarly to CApache2::Const::DONE will cause an abort +of the request cycle, by also will be interpreted as an +error. Therefore you don't want to return CApache2::Const::HTTP_OK +from your HTTP response handler, but CApache2::Const::OK and Apache +will send the C200 OK status by itself. LFilter handlers|docs::2.0::user::handlers::filters return CApache2::Const::OK to indicate that the filter has successfully -finished. If the return value is CApache2::Const::DECLINED, mod_perl will -read and forward the data on behalf of the filter. Please notice that -this feature is specific to mod_perl. If there is some problem with -obtaining or sending the bucket brigades, or the buckets in it, +finished. If the return value is CApache2::Const::DECLINED, mod_perl +will read and forward the data on behalf of the filter. Please notice +that this feature is specific to mod_perl. If there is some problem +with obtaining or sending the bucket brigades, or the buckets in it, filters need to return the error returned by the method that tried to manipulate the bucket brigade or the bucket. Normally it'd be an CLAPR::|docs::2.0::api::APR::Const constant. @@ -119,8 +120,8 @@ handler, which, if returning anything but CApache2::Const::OK or CApache2::Const::DONE, will prevent from CLPerlConnectionHandler|docs::2.0::user::handlers::protocols/PerlConnectionHandler -to be -run. CLPerlPreConnectionHandler|docs::2.0::user::handlers::protocols/PerlPreConnectionHandler +to be run. +CLPerlPreConnectionHandler|docs::2.0::user::handlers::protocols/PerlPreConnectionHandler handlers should always return CApache2::Const::OK. Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod?rev=164989r1=164988r2=164989view=diff == --- perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod Wed Apr 27 08:11:12 2005 @@ -53,8 +53,8 @@ Let's look at the following example that demonstrates all the startup phases: - file:MyApache2/StartupLog.pm - --- + #file:MyApache2/StartupLog.pm + # package MyApache2::StartupLog; use strict
svn commit: r164801 - /perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod
Author: stas Date: Tue Apr 26 08:23:17 2005 New Revision: 164801 URL: http://svn.apache.org/viewcvs?rev=164801view=rev Log: various code fixes and cleanup Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod?rev=164801r1=164800r2=164801view=diff == --- perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod Tue Apr 26 08:23:17 2005 @@ -2,6 +2,9 @@ Input and Output Filters + + + =head1 Description This chapter discusses mod_perl's input and output filter handlers. @@ -10,6 +13,9 @@ CLApache2::Filter|docs::2.0::api::Apache2::Filter and CLApache2::FilterRec|docs::2.0::api::Apache2::FilterRec manpages. + + + =head1 Your First Filter You certainly already know how filters work. That's because you @@ -208,6 +214,20 @@ will see that much more difficult things are possible, even though a more elaborated code will be needed. + + + + + + + + + + + + + + =head1 I/O Filtering Concepts Before introducing the APIs, mod_perl provides for Apache Filtering, @@ -415,11 +435,11 @@ } Since this filter handler doesn't consume the data from the upstream -filter, it's important that this handler returns CApache2::Const::DECLINED, -in which case mod_perl passes the current bucket brigade to the next -filter. If this handler returns CApache2::Const::OK, the data will be simply -lost. And if that data included a special EOS token, this may wreck -havoc. +filter, it's important that this handler returns +CApache2::Const::DECLINED, in which case mod_perl passes the current +bucket brigade to the next filter. If this handler returns +CApache2::Const::OK, the data will be simply lost. And if that data +included a special EOS token, this may wreck havoc. Unsetting the CContent-Length header for filters that modify the response body length is a good example of the code to be used in the @@ -530,8 +550,10 @@ #--- package MyApache2::FilterTransparent; + use Apache2::Filter (); + use Apache2::Const -compile = qw(OK); - use APR::Const -compile = ':common'; + use APR::Const -compile = ':common'; sub in { my ($f, $bb, $mode, $block, $readbytes) = @_; @@ -677,6 +699,9 @@ CLPerlSetOutputFilter|/PerlSetOutputFilter or CLPerlSetInputFilter|/PerlSetInputFilter is used. + + + =head2 CPerlInputFilterHandler The CPerlInputFilterHandler directive registers a filter, and @@ -704,6 +729,10 @@ The following sections include several examples that use the CPerlInputFilterHandler handler. + + + + =head2 CPerlOutputFilterHandler The CPerlOutputFilterHandler directive registers a filter, and @@ -724,6 +753,10 @@ CLAutoLoad|docs::2.0::user::config::config/C_AutoLoad_ed. + + + + =head2 CPerlSetInputFilter The CSetInputFilter directive, documented at @@ -911,6 +944,8 @@ + + =head2 Adding OutFilters Dynamically If you have the need to add output filters dymically during the @@ -925,12 +960,14 @@ And the corresponding module: #file:MyApache2/AddFilterDyn.pm + #-- package MyApache2::AddFilterDyn; - use Apache2::Const -compile = qw(OK); use Apache2::Filter; use MyApache2::FilterObfuscate; + use Apache2::Const -compile = qw(OK); + sub handler { my $r = shift; @@ -942,7 +979,7 @@ 1; You can also add connection filters dynamically. For more information -referer to the CLApache2::Filter|docs::2.0::api::Apache2::Filter +refer to the CLApache2::Filter|docs::2.0::api::Apache2::Filter manpage: CLadd_input_filter|docs::2.0::api::Apache2::Filter/C_add_input_filter_ and @@ -1048,15 +1085,17 @@ -=head2 Filter Initialization Phase -Like in any cool application, there is a hidden door, that let's you -do cool things. mod_perl is not an exception. -where you can plug yet another callback. This Iinit callback runs -immediately after the filter handler is inserted into the filter -chain, before it was invoked for the first time. Here is a skeleton of -an init handler: + + + +=head2 Filter Initialization Phase + +There is one more callback in the filter framework. And that's +CFilterInitHandler. This Iinit callback runs immediately after the +filter handler is inserted into the filter chain, before it was +invoked for the first time. Here is a skeleton of an init handler: sub init : FilterInitHandler { my $f = shift; @@ -1064,8 +1103,8 @@ return Apache2::Const::OK; } -The attribute CFilterInitHandler marks the Perl function suitable to -be used as a filter initialization callback, which is called +The attribute CFilterInitHandler marks the Perl function as suitable
svn commit: r162039 - in /perl/modperl/docs/trunk/src/docs/2.0/api/APR: Const.pod Status.pod
Author: stas Date: Wed Apr 20 12:18:58 2005 New Revision: 162039 URL: http://svn.apache.org/viewcvs?rev=162039view=rev Log: improve the APR::Status docs Modified: perl/modperl/docs/trunk/src/docs/2.0/api/APR/Const.pod perl/modperl/docs/trunk/src/docs/2.0/api/APR/Status.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/APR/Const.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/APR/Const.pod?rev=162039r1=162038r2=162039view=diff == --- perl/modperl/docs/trunk/src/docs/2.0/api/APR/Const.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/APR/Const.pod Wed Apr 20 12:18:58 2005 @@ -117,7 +117,10 @@ =back The error IResource temporarily unavailable, may be returned by many -different system calls, especially IO calls. +different system calls, especially IO calls. Most likely you want to +use the +CLAPR::Status::is_EAGAIN|docs::2.0::api::APR::Status/C_is_EAGAIN_ +function instead. Modified: perl/modperl/docs/trunk/src/docs/2.0/api/APR/Status.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/APR/Status.pod?rev=162039r1=162038r2=162039view=diff == --- perl/modperl/docs/trunk/src/docs/2.0/api/APR/Status.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/APR/Status.pod Wed Apr 20 12:18:58 2005 @@ -9,30 +9,32 @@ use APR::Status (); eval { $obj-mp_method() }; if ($@ $ref $@ eq 'APR::Error' APR::Status::is_EAGAIN($@)) { -# APR_STATUS_IS_EAGAIN(s) of apr_errno.h is satisfied + # APR_STATUS_IS_EAGAIN(s) of apr_errno.h is satisfied } + + =head1 Description -As discussed in the -LAPR::Error documentation|docs::2.0::api::APR::Error, -it is possible to handle APR/Apache/mod_perl exceptions -in the following way: +An interface to Fapr_errno.h composite error codes. + +As discussed in the CLAPR::Error|docs::2.0::api::APR::Error +manpage, it is possible to handle APR/Apache/mod_perl exceptions in +the following way: eval { $obj-mp_method() }; if ($@ $ref $@ eq 'APR::Error' $@ == $some_code) warn handled exception: $@; } -However, in cases where C$some_code is an -LAPR::Const constant|docs::2.0::api::APR::Const, -there may be more than one condition satisfying the -intent of this exception. For this purpose the APR C -library provides in Fapr_errno.h a series of macros, -CAPR_STATUS_IS_*, which are the recommended way to check -for such conditions. For example, the CAPR_STATUS_IS_EAGAIN -macro is defined as +However, in cases where C$some_code is an LAPR::Const +constant|docs::2.0::api::APR::Const, there may be more than one +condition satisfying the intent of this exception. For this purpose +the APR C library provides in Fapr_errno.h a series of macros, +CAPR_STATUS_IS_*, which are the recommended way to check for such +conditions. For example, the CAPR_STATUS_IS_EAGAIN macro is defined +as #define APR_STATUS_IS_EAGAIN(s) ((s) == APR_EAGAIN \ || (s) == APR_OS_START_SYSERR + ERROR_NO_DATA \ @@ -43,19 +45,58 @@ to these macros. + + =head1 Functions =head2 Cis_EAGAIN +Check if the error is matching CEAGAIN and its variants (corresponds +to the CAPR_STATUS_IS_EAGAIN macro). + + $status = APR::Status::is_EAGAIN($error_code); + +=over 4 + +=item arg1: C$error_code (integer or CLAPR::Error +object|docs::2.0::api::APR::Error ) + +The error code or to check, normally C$@ blessed into CLAPR::Error +object|docs::2.0::api::APR::Error. + +=item ret: C$status ( boolean ) + +=item since: 1.999.23 + +=back + +For example, here is how you may want to handle socket read exceptions +and do retries: + use APR::Status (); # - if ($@ $ref $@ eq 'APR::Error' APR::Status::is_EAGAIN($@)) { -# APR_STATUS_IS_EAGAIN(s) of apr_errno.h is satisfied + my $tries = 0; + RETRY: eval { $socket-recv(my $buffer, SIZE) }; + if ($@ ref($@) APR::Status::is_EAGAIN($@)) { + if ($tries++ 3) { + goto RETRY; + } + else { + # do something else + } } + else { + die eval block has failed: $@; + } + +Notice that just checking against +CLAPR::Const::EAGAIN|docs::2.0::api::APR::Const/C_APR__Const__EAGAIN_ +may work on some Unices, but then it will certainly break on +win32. Thefore make sure to use this macro and not +CAPR::Const::EAGAIN unless you know what you are doing. -This corresponds to the CAPR_STATUS_IS_EAGAIN macro. =head1 See Also - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r161898 - perl/modperl/docs/trunk/src/docs/2.0/api/Apache2/RequestRec.pod
Author: stas Date: Tue Apr 19 07:29:16 2005 New Revision: 161898 URL: http://svn.apache.org/viewcvs?view=revrev=161898 Log: $r-bytes_sent() doesn't really work under Apache 2.0. [based on comment from Joe Orton on the modperl list] Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache2/RequestRec.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache2/RequestRec.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache2/RequestRec.pod?view=diffr1=161897r2=161898 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache2/RequestRec.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache2/RequestRec.pod Tue Apr 19 07:29:16 2005 @@ -378,6 +378,11 @@ =back +Though as of this writing in Apache 2.0 it doesn't really do what it +did in Apache 1.3. It's just set to the size of the response body. +The issue is that buckets from one request may get buffered and not +sent during the lifetime of the request, so it's not easy to give a +truly accurate count of bytes sent to the network for this response. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r161774 - perl/modperl/docs/trunk/src/docs/tutorials/client/compression/compression.pod
Author: stas Date: Mon Apr 18 10:10:13 2005 New Revision: 161774 URL: http://svn.apache.org/viewcvs?view=revrev=161774 Log: updates from Slava Modified: perl/modperl/docs/trunk/src/docs/tutorials/client/compression/compression.pod Modified: perl/modperl/docs/trunk/src/docs/tutorials/client/compression/compression.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/tutorials/client/compression/compression.pod?view=diffr1=161773r2=161774 == --- perl/modperl/docs/trunk/src/docs/tutorials/client/compression/compression.pod (original) +++ perl/modperl/docs/trunk/src/docs/tutorials/client/compression/compression.pod Mon Apr 18 10:10:13 2005 @@ -65,9 +65,9 @@ This handler serves the Cfixup phase of the request-processing flow. It is compatible with all known compression handlers and is available from CPAN. -=head1 Q: Why it is important to compress Web content? +=head1 Why it is important to compress Web content? -=head2 A: Reduced equipment costs and the competitive advantage of dramatically faster page loads. +=head2 Reduced equipment costs and the competitive advantage of dramatically faster page loads. Web content compression noticeably increases delivery speed to clients and may allow providers to serve higher content volumes without increasing hardware expenditures. @@ -75,9 +75,9 @@ Industry leaders like IYahoo and IGoogle are widely using content compression in their businesses. -=head1 Q: How much improvement can I expect? +=head1 How much improvement can I expect? -=head2 A: Effective compression can achieve increases in transmission efficiency from 3 to 20 times. +=head2 Effective compression can achieve increases in transmission efficiency from 3 to 20 times. The compression ratio is highly content-dependent. For example, if the compression algorithm is able to detect repeated patterns of characters, @@ -99,18 +99,18 @@ =for html /blockquote -=head1 Q: How hard is it to implement content compression on an existing site? +=head1 How hard is it to implement content compression on an existing site? -=head2 A: Implementing content compression on an existing site typically involves no more than installing and configuring an appropriate Apache handler on the Web server. +=head2 Implementing content compression on an existing site typically involves no more than installing and configuring an appropriate Apache handler on the Web server. This approach works in most of the cases I have seen. In some special cases you will need to take extra care with respect to the global architecture of your Web application, but such cases may generally be readily addressed through various techniques. To date I have found no fundamental barriers to practical implementation of Web content compression. -=head1 Q: Does compression work with standard Web browsers? +=head1 Does compression work with standard Web browsers? -=head2 A: Yes. No client side changes or settings are required. +=head2 Yes. No client side changes or settings are required. All modern browser makers claim to be able to handle compressed content and are able to decompress it on the fly, transparent to the user. @@ -120,18 +120,18 @@ I strongly recommend use of the CApache::CompressClientFixup handler in your server configuration in order to prevent compression for known buggy clients. -=head1 Q: Is it possible to combine the content compression with data encryption? +=head1 Is it possible to combine the content compression with data encryption? -=head2 A: Yes. Compressed content can be encrypted and securely transmitted over SSL. +=head2 Yes. Compressed content can be encrypted and securely transmitted over SSL. On the client side, the browser transparently unencrypts and uncompresses the content for the user. It is important to maintain the correct order of operations on server side to keep the transaction secure. You must compress the content first and then apply an encryption mechanism. This is the only order of operations current browsers support. -=head1 Q: What software is required on the server side for content compression? +=head1 What software is required on the server side for content compression? -=head2 A: There are four known mod_perl modules/packages for Web content compression available to date for Apache 1.3 (in alphabetical order): +=head2 There are four known mod_perl modules/packages for Web content compression available to date for Apache 1.3 (in alphabetical order): =over 4 @@ -192,9 +192,9 @@ =back -=head1 Q: What is the typical overhead in terms of CPU use for the content compression? +=head1 What is the typical overhead in terms of CPU use for the content compression? -=head2 A: Typical CPU overhead that originates from content compression is insignificant. +=head2 Typical CPU overhead that originates from content compression
svn commit: r160925 - perl/modperl/docs/trunk/src/docs/tutorials/client/compression/compression.pod
Author: stas Date: Mon Apr 11 09:52:33 2005 New Revision: 160925 URL: http://svn.apache.org/viewcvs?view=revrev=160925 Log: new version by Slava Bizyayev [EMAIL PROTECTED] Modified: perl/modperl/docs/trunk/src/docs/tutorials/client/compression/compression.pod Modified: perl/modperl/docs/trunk/src/docs/tutorials/client/compression/compression.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/tutorials/client/compression/compression.pod?view=diffr1=160924r2=160925 == --- perl/modperl/docs/trunk/src/docs/tutorials/client/compression/compression.pod (original) +++ perl/modperl/docs/trunk/src/docs/tutorials/client/compression/compression.pod Mon Apr 11 09:52:33 2005 @@ -2,43 +2,34 @@ Web Content Compression FAQ +=head1 Description + +Everything you wanted to know about web content compression + =head1 Basics of Content Compression -Compression of outgoing traffic from web servers is beneficial for -clients who get quicker responses, as well as for providers who experience -less consumption of bandwidth. - -Recently content compression for web servers has been provided mainly through use of the gzip format. -Other (non perl) modules are available that provide -so-called Cdeflate compression. -Both approaches are currently very similar and use the LZ77 algorithm -combined with Huffman coding. -Luckily for us, there is no real need to understand all the details -of the obscure underlying mathematics in order to compress -outbound content. -Apache handlers available from CPAN can usually do the dirty work for us. -Content compression is addressed through -the proper configuration of appropriate handlers in the httpd.conf file. +Compression of outbound Web server traffic provides benefits both for Web clients who see shorter response times, as well as for content providers, who experience lower consumption of bandwidth. -Compression by its nature is a content filter: +Most recently, content compression for web servers has been provided mainly through use of the Cgzip encoding. +Other (non perl) modules are available that provide so-called Cdeflate compression. +Both approaches are very similar recently and use the LZ77 algorithm combined with Huffman coding. +Luckily for us, to make use of them, there is no real need for most of us to understand +all the details of the obscure underlying mathematics of these techniques. +Apache handlers available from CPAN can usually do the dirty work. +Apache addresses content compression through handlers configured in its configuration file. + +Compression is, by its nature, a content filter: It always takes its input as plain ASCII data that it converts -to another Cbinary form and outputs the result to some destination. -That's why every content compression handler usually belongs -to a particular chain of handlers within the content generation phase -of the request-processing flow. - -A chain of handlers is one more common term that is good to know about -when you plan to compress data. -There are two of them recently developed for Apache 1.3.X: -CApache::OutputChain and CApache::Filter. -We have to keep in mind -that the compression handler developed for one chain usually fails -inside another. - -Another important point deals with the order of execution of handlers -in a particular chain. -It's pretty straightforward in CApache::Filter. -For example, when you configure +to another Cbinary form, and outputs the result to some destination. +That is why every content compression handler usually belongs to a particular chain of handlers +within the content generation phase of the request-processing flow. + +A Cchain of handlers is one more common term that is good to know about when you plan to compress data. +There are two of them recently developed for Apache 1.3: CApache::OutputChain and CApache::Filter. +We have to keep in mind that the compression handler developed for one chain usually fails inside another. + +Another important point deals with the order of execution of handlers in a particular chain. +It's pretty straightforward in CApache::Filter. For example, when you configure... PerlModule Apache::Filter Files ~ *\.blah @@ -47,12 +38,10 @@ PerlHandler Filter1 Filter2 Filter3 /Files -the content will go through CFilter1 first, -then the result will be filtered by CFilter2, -and finally CFilter3 will be invoked to make the final changes -in outgoing data. +...the content will go through CFilter1 first, then the result will be filtered by CFilter2, +and finally CFilter3 will be invoked to make the final changes in outbound data. -However, when you configure +However, when you configure CApache::OutputChain like... PerlModule Apache::OutputChain PerlModule Apache::GzipChain @@ -63,121 +52,104 @@ PerlHandler Apache::OutputChain Apache::GzipChain Apache::SSIChain Apache::PassHtml /Files
svn commit: r158803 - perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Log.pod
Author: stas Date: Wed Mar 23 09:26:26 2005 New Revision: 158803 URL: http://svn.apache.org/viewcvs?view=revrev=158803 Log: typos fix Contributed by: Malcolm J Harwood [EMAIL PROTECTED] Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Log.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Log.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Log.pod?view=diffr1=158802r2=158803 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Log.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Log.pod Wed Mar 23 09:26:26 2005 @@ -55,7 +55,7 @@ APR::ENOTIME, in debug); $s-log_serror(Apache::Log::LOG_MARK, Apache::LOG_INFO, - APR::SUCESS, server info); + APR::SUCCESS, server info); $s-log_serror(Apache::Log::LOG_MARK, Apache::LOG_ERR, APR::ENOTIME, fatal error); @@ -153,7 +153,7 @@ Make sure to compile the APR status constants before using them. For -example to compile CAPR::SUCESS and all the APR error status +example to compile CAPR::SUCCESS and all the APR error status constants do: use APR::Const-compile = qw(:error SUCCESS); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r158614 - perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod
Author: stas Date: Tue Mar 22 08:03:26 2005 New Revision: 158614 URL: http://svn.apache.org/viewcvs?view=revrev=158614 Log: missing use APR::BucketType (); Submitted by: Murray Nesbitt [EMAIL PROTECTED] Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod?view=diffr1=158613r2=158614 == --- perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod Tue Mar 22 08:03:26 2005 @@ -1209,6 +1209,7 @@ use Apache::FilterRec (); use APR::Brigade (); use APR::Bucket (); + use APR::BucketType (); use Apache::Const -compile = qw(OK DECLINED); use APR::Const -compile = ':common'; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r158652 - perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod
Author: stas Date: Tue Mar 22 12:02:31 2005 New Revision: 158652 URL: http://svn.apache.org/viewcvs?view=revrev=158652 Log: Adding OutFilters Dynamically Contributed by: Tom Schindl [EMAIL PROTECTED] Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod?view=diffr1=158651r2=158652 == --- perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod Tue Mar 22 12:02:31 2005 @@ -911,6 +911,46 @@ +=head2 Adding OutFilters Dynamically + +If you have the need to add output filters dymically during the +request, mod_perl 2.0 offers you the possibility to push filter +callbacks at request time. For example here is how to add an output +filter during the Fixup phase: + + Files *\.html +PerlFixupHandler MyApache::AddFilterDyn + /Files + +And the corresponding module: + + #file:MyApache/AddFilterDyn.pm + package MyApache::AddFilterDyn; + + use Apache::Const -compile = qw(OK); + use Apache::Filter; + use MyApache::FilterObfuscate; + + sub handler { + my $r = shift; + + $r-add_output_filter(\MyApache::FilterObfuscate::handler); + + return Apache::OK; + } + + 1; + +You can also add connection filters dynamically. For more information +referer to the CLApache::Filter|docs::2.0::api::Apache::Filter +manpage: +CLadd_input_filter|docs::2.0::api::Apache::Filter/C_add_input_filter_ +and +CLadd_output_filter|docs::2.0::api::Apache::Filter/C_add_output_filter_. + + + + =head2 HTTP Request vs. Connection Filters - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r156120 - perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod
Author: stas Date: Thu Mar 3 18:03:07 2005 New Revision: 156120 URL: http://svn.apache.org/viewcvs?view=revrev=156120 Log: slurp_filename now throws APR::Error exception Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod?view=diffr1=156119r2=156120 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod Thu Mar 3 18:03:07 2005 @@ -1070,7 +1070,15 @@ A reference to a string with the contents -=item since: 1.99_10 +=item excpt: CLAPR::Error|docs::2.0::api::APR::Error + +Possible error codes could be: +CLAPR::EACCES|docs::2.0::api::APR::Const/C_APR__EACCES_ +(permission problems), +CLAPR::ENOENT|docs::2.0::api::APR::Const/C_APR__ENOENT_ (file not +found) and others. + +=item since: 1.99_22 =back - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r155970 - perl/modperl/docs/trunk/src/docs/general/perl_reference/perl_reference.pod
Author: stas Date: Wed Mar 2 15:03:58 2005 New Revision: 155970 URL: http://svn.apache.org/viewcvs?view=revrev=155970 Log: fix the URL Contributed by: Chris Jacobson [EMAIL PROTECTED] Modified: perl/modperl/docs/trunk/src/docs/general/perl_reference/perl_reference.pod Modified: perl/modperl/docs/trunk/src/docs/general/perl_reference/perl_reference.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/general/perl_reference/perl_reference.pod?view=diffr1=155969r2=155970 == --- perl/modperl/docs/trunk/src/docs/general/perl_reference/perl_reference.pod (original) +++ perl/modperl/docs/trunk/src/docs/general/perl_reference/perl_reference.pod Wed Mar 2 15:03:58 2005 @@ -2789,7 +2789,7 @@ Tony Olekshy's. Adds an unwind stack and some other interesting features. Not on the CPAN. Available at -http://www.avrasoft.com/perl/rfc/try-1136.zip +http://www.avrasoft.com/perl6/try6-ref5.txt =back - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r154919 - perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod
Author: stas Date: Tue Feb 22 16:52:24 2005 New Revision: 154919 URL: http://svn.apache.org/viewcvs?view=revrev=154919 Log: dealing with restarts Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod?view=diffr1=154918r2=154919 == --- perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod Tue Feb 22 16:52:24 2005 @@ -648,8 +648,10 @@ =head2 Dealing with Restarts -META: to be written, talk about Apache::ServerUtil::restart_count(); -see t/conf/post_config_startup.pl +Ideally the code running at the server startup shouldn't be affected +by Lthe apache restart|/Start_Immediately_Restarts. If however this +is not the case, you can use +CLApache::ServerUtil::restart_count|docs::2.0::api::Apache::ServerUtil/C_restart_count_. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r154920 - in perl/modperl/docs/trunk/src/docs/1.0: api/config.cfg guide/config.cfg
Author: stas Date: Tue Feb 22 16:58:52 2005 New Revision: 154920 URL: http://svn.apache.org/viewcvs?view=revrev=154920 Log: add 1.0 in the title Modified: perl/modperl/docs/trunk/src/docs/1.0/api/config.cfg perl/modperl/docs/trunk/src/docs/1.0/guide/config.cfg Modified: perl/modperl/docs/trunk/src/docs/1.0/api/config.cfg URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/1.0/api/config.cfg?view=diffr1=154919r2=154920 == --- perl/modperl/docs/trunk/src/docs/1.0/api/config.cfg (original) +++ perl/modperl/docs/trunk/src/docs/1.0/api/config.cfg Tue Feb 22 16:58:52 2005 @@ -2,7 +2,7 @@ @c = ( id = 'api_1.0', -title = mod_perl API, +title = mod_perl 1.0 API, stitle = API, abstract = EOB, Modified: perl/modperl/docs/trunk/src/docs/1.0/guide/config.cfg URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/1.0/guide/config.cfg?view=diffr1=154919r2=154920 == --- perl/modperl/docs/trunk/src/docs/1.0/guide/config.cfg (original) +++ perl/modperl/docs/trunk/src/docs/1.0/guide/config.cfg Tue Feb 22 16:58:52 2005 @@ -2,7 +2,7 @@ @c = ( id = 'guide', -title = User Guide, +title = mod_perl 1.0 User Guide, abstract = EOB, Deploying mod_perl technology to give rocket speed to your CGI/Perl scripts. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r154933 - in perl/modperl/docs/trunk/src/docs/2.0/api: APR/String.pod config.cfg
Author: stas Date: Tue Feb 22 18:27:55 2005 New Revision: 154933 URL: http://svn.apache.org/viewcvs?view=revrev=154933 Log: a new manpage: APR::String Added: perl/modperl/docs/trunk/src/docs/2.0/api/APR/String.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg Added: perl/modperl/docs/trunk/src/docs/2.0/api/APR/String.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/APR/String.pod?view=autorev=154933 == --- perl/modperl/docs/trunk/src/docs/2.0/api/APR/String.pod (added) +++ perl/modperl/docs/trunk/src/docs/2.0/api/APR/String.pod Tue Feb 22 18:27:55 2005 @@ -0,0 +1,92 @@ +=head1 NAME + +APR::String - Perl API for manipulating APR UUIDs + + + + +=head1 Synopsis + + use APR::String (); + + # 42_000 = 41K, + my $size_str = APR::String::format_size($size); + + + + +=head1 Description + +CAPR::String provides strings manipulation API. + + + + + + + + + + +=head1 API + +CAPR::String provides the following functions and/or methods: + + + + + + +=head2 Cformat_size + + my $size_str = APR::String::format_size($size); + +=over 4 + +=item arg1: C$size ( integer ) + +=item ret: C$size_str + +returns a formatted size string representation of a number. The size +given in the string will be in units of bytes, kilobytes, or +megabytes, depending on the size. The length of that string is always +4 chars long. For example: + +0 = 0 , +42 = 42 , +42_000 = 41K, +42_000_000 = 40M, + +=item since: 1.99_12 + +=back + + + + + + + + +=head1 See Also + +Lmod_perl 2.0 documentation|docs::2.0::index. + + + + +=head1 Copyright + +mod_perl 2.0 and its core modules are copyrighted under +The Apache Software License, Version 2.0. + + + + +=head1 Authors + +LThe mod_perl development team and numerous +contributors|about::contributors::people. + +=cut + Modified: perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg?view=diffr1=154932r2=154933 == --- perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg Tue Feb 22 18:27:55 2005 @@ -61,6 +61,7 @@ APR/Pool.pod APR/SockAddr.pod APR/Socket.pod +APR/String.pod APR/Table.pod APR/ThreadMutex.pod APR/URI.pod - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r154934 - perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod
Author: stas Date: Tue Feb 22 18:37:26 2005 New Revision: 154934 URL: http://svn.apache.org/viewcvs?view=revrev=154934 Log: multiple xrefs Modified: perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod?view=diffr1=154933r2=154934 == --- perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod Tue Feb 22 18:37:26 2005 @@ -2,6 +2,12 @@ A Reference to mod_perl 1.0 to mod_perl 2.0 Migration. + + + + + + =head1 Description This chapter is a reference for porting code and configuration files @@ -11,22 +17,34 @@ Lporting Perl modules|docs::2.0::user::porting::porting (and may be about Lporting XS modules|docs::2.0::devel::porting::porting). -As will be explained in details later loading CApache::compat at the -server startup, should make the code running properly under 1.0 work -under mod_perl 2.0. If you want to port your code to mod_perl 2.0 or -writing from scratch and not concerned about backwards compatibility, -this document explains what has changed compared to mod_perl 1.0. +As it will be explained in details later, loading +CLApache::compat|docs::2.0::api::Apache::compat at the server +startup, should make the code running properly under 1.0 work under +mod_perl 2.0. If you want to port your code to mod_perl 2.0 or writing +from scratch and not concerned about backwards compatibility, this +document explains what has changed compared to Lmod_perl +1.0|docs::1.0::index. Several configuration directives were changed, renamed or removed. Several APIs have changed, renamed, removed, or moved to new -packages. Certain functions while staying exactly the same as in -mod_perl 1.0, now reside in different packages. Before using them you -need to find out those packages and load them. +packages. Certain functions while staying Lexactly the +same|docs::1.0::api::index as in mod_perl 1.0, now reside in +different packages. Before using them you need to find out those +packages and load them. You should be able to find the destiny of the functions that you cannot find any more or which behave differently now under the package names the functions belong in mod_perl 1.0. + + + + + + + + + =head1 Configuration Files Porting To migrate the configuration files to the mod_perl 2.0 syntax, you may @@ -37,41 +55,64 @@ you don't need the backwards compatibility consider using the directives that have replaced them. + + + =head2 CPerlHandler -CPerlHandler was replaced with CPerlResponseHandler. +CPerlHandler was replaced with +CLPerlResponseHandler|docs::2.0::user::handlers::http/PerlResponseHandler. + + + =head2 CPerlSendHeader -CPerlSendHeader was replaced with CPerlOptions +/-ParseHeaders +CPerlSendHeader was replaced with CLPerlOptions ++/-ParseHeaders|docs::2.0::user::config::config/C_ParseHeaders_ directive. PerlSendHeader On = PerlOptions +ParseHeaders PerlSendHeader Off = PerlOptions -ParseHeaders + + + =head2 CPerlSetupEnv -CPerlSetupEnv was replaced with CPerlOptions +/-SetupEnv +CPerlSetupEnv was replaced with CLPerlOptions ++/-SetupEnv|docs::2.0::user::config::config/C_SetupEnv_ directive. PerlSetupEnv On = PerlOptions +SetupEnv PerlSetupEnv Off = PerlOptions -SetupEnv + + =head2 CPerlTaintCheck -The taint mode now can be turned on with: +The taint mode now can be turned on with +CLPerlSwitches|docs::2.0::user::config::config/C_PerlSwitches_: PerlSwitches -T As with standard Perl, by default the taint mode is disabled and once enabled cannot be turned off inside the code. + + + + =head2 CPerlWarn -Warnings now can be enabled globally with: +Warnings now can be enabled globally with +CLPerlSwitches|docs::2.0::user::config::config/C_PerlSwitches_: + PerlSwitches -w + + =head2 CPerlFreshRestart CPerlFreshRestart is a mod_perl 1.0 legacy and doesn't exist in @@ -84,20 +125,31 @@ PerlFreshRestart /IfDefine + + + =head2 C$Apache::Server::StrictPerlSections -In mod_perl 2.0, CLEltPerlEgt|docs::2.0::api::Apache::PerlSections -sections errors are now always fatal. Any error in them will cause an immediate -server startup abort, dumping the error to stderr. To avoid this, Ceval {} -can be used to trap errors and ignore them. In mod_perl 1, 'strict' was -somewhat of a misnomer. +In mod_perl 2.0, CLEltPerlEgt +sections|docs::2.0::api::Apache::PerlSections errors are now always +fatal. Any error in them will cause an immediate server startup abort, +dumping the error to STDERR. To avoid this, Ceval {} can be used to +trap errors and ignore them. In mod_perl 1.0, Cstrict was somewhat +of a misnomer. + + + =head2 C$Apache::Server::SaveConfig C$Apache::Server::SaveConfig has been
svn commit: r154936 - perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Reload.pod perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod
Author: stas Date: Tue Feb 22 18:38:49 2005 New Revision: 154936 URL: http://svn.apache.org/viewcvs?view=revrev=154936 Log: tweaks Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Reload.pod perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Reload.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Reload.pod?view=diffr1=154935r2=154936 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Reload.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Reload.pod Tue Feb 22 18:38:49 2005 @@ -376,11 +376,5 @@ and CApache::StatINC (mod_perl 1.x) by Doug MacEachern and Ask Bjoern Hansen. - - -=head1 See Also - -CStonehenge::Reload - =cut Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod?view=diffr1=154935r2=154936 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod Tue Feb 22 18:38:49 2005 @@ -314,7 +314,8 @@ =item opt arg1: C$new_root -Sets the document root to a new value +Sets the document root to a new value Bonly for the duration of the +current request. Note the Llimited functionality under threaded MPMs|docs::2.0::api::Apache::ServerRec/Limited_Functionality_under_Threaded_MPMs. @@ -1075,6 +1076,7 @@ Note that if you assign to C$r-Egtfilename you need to Lupdate its stat record|docs::2.0::api::Apache::RequestRec/C_filename_. + - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r154938 - perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod
Author: stas Date: Tue Feb 22 18:49:37 2005 New Revision: 154938 URL: http://svn.apache.org/viewcvs?view=revrev=154938 Log: add xrefs to: mod_perl Directives Argument Types and Allowed Location Modified: perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod?view=diffr1=154937r2=154938 == --- perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod Tue Feb 22 18:49:37 2005 @@ -94,6 +94,9 @@ META: a dedicated chapter with examples? +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. + @@ -152,6 +155,9 @@ META: to be written +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. + @@ -177,6 +183,9 @@ there you have the CSTDERR stream sent to the error_log file (by default). +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. + @@ -194,6 +203,8 @@ directives|docs::2.0::user::config::custom, which are needed during the configuration phase. +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. @@ -219,6 +230,9 @@ See also: CLPerlRequire|/C_PerlRequire_. +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. + @@ -242,6 +256,9 @@ Options are enabled by prepending C+ and disabled with C-. +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. + The available options are: =head3 CEnable @@ -562,6 +579,9 @@ META: to be written +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. + @@ -607,6 +627,8 @@ See also: CLPerlModule|/C_PerlModule_ and CLPerlLoadModule|/C_PerlLoadModule_. +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. @@ -624,6 +646,9 @@ just before the end of the server startup) instead. Most of the time you want to use the latter. +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. + @@ -637,6 +662,9 @@ META: to be written +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. + @@ -647,6 +675,9 @@ META: to be written +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. + @@ -669,6 +700,9 @@ (e.g. Darwin/5.6.0). Cuse lib is removing duplicated entries, whereas C-I does not. +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. + @@ -681,6 +715,9 @@ and Cperl-script. The CSetHandler directive is only relevant for response phase handlers. It doesn't affect other phases. +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. + =head3 Cmodperl Configured as: @@ -1057,6 +1094,9 @@ Default value: 3 +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. + =head2 CPerlInterpMax If all running interpreters are in use, mod_perl will clone new @@ -1067,6 +1107,9 @@ Default value: 5 +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. + =head2 CPerlInterpMinSpare The minimum number of available interpreters this parameter will clone @@ -1074,6 +1117,9 @@ Default value: 3 +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. + =head2 CPerlInterpMaxSpare @@ -1091,6 +1137,9 @@ Default value: 2000 +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. + =head2 CPerlInterpScope @@ -1139,6 +1188,8 @@ Default value: Crequest +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location. =head1 Debug Directives @@ -1197,6 +1248,8 @@ When CPerlTrace is not specified, the tracing level will be set to the value of the C$ENV{MOD_PERL_TRACE} environment variable. +See also: Lthis directive argument types and allowed +location|/mod_perl_Directives_Argument_Types_and_Allowed_Location
svn commit: r154756 - perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod
Author: stas Date: Mon Feb 21 17:40:34 2005 New Revision: 154756 URL: http://svn.apache.org/viewcvs?view=revrev=154756 Log: Modifying C@INC on a Per-VirtualHost is possible under any mpm as long as perl has ithreads enabled Modified: perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod?view=diffr1=154755r2=154756 == --- perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod Mon Feb 21 17:40:34 2005 @@ -1467,6 +1467,12 @@ bypasses perl's security and will affect C@INC. Use it only if you know what you are doing. + + + + + + =head2 Modifying C@INC on a Per-VirtualHost If Perl used with mod_perl was built with ithreads support one can @@ -1487,6 +1493,20 @@ PerlSwitches -I/home/dev2/lib/perl PerlModule Apache2 /VirtualHost + +This technique works under any MPM with ithreads-enabled perl. It's +just that under prefork your procs will be huge, because you will +build a pool of interpreters in each process. While the same happens +under threaded mpm, there you have many threads per process, so you +need just 1 or 2 procs and therefore less memory will be used. + + + + + + + + =head1 General Issues - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r154383 - perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SubProcess.pod
Author: stas Date: Fri Feb 18 18:11:41 2005 New Revision: 154383 URL: http://svn.apache.org/viewcvs?view=revrev=154383 Log: some discussing of whether spawn_proc_prog is any good for doing parallel processing Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SubProcess.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SubProcess.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SubProcess.pod?view=diffr1=154382r2=154383 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SubProcess.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SubProcess.pod Fri Feb 18 18:11:41 2005 @@ -57,6 +57,8 @@ threads, e.g. that's how it's running mod_cgi on win32). + + =head1 API @@ -120,6 +122,21 @@ LSynopsis|/Synopsis section. Several examples appear in the LSynopsis|/Synopsis section. + +Cspawn_proc_prog() is similar to Cfork(), but provides you a +better framework to communicate with that process and handles the +cleanups for you. But that means that just like Cfork() it gives you +a different process, so you don't use the current Perl interpreter in +that new process. If you try to use that method or fork to run a +high-performance parallel processing you should look elsewhere. You +could try Perl threads, but they are Bvery expensive to start if you +have a lot of things loaded into memory (since Cperl_clone() dups +almost everything in the perl land, but the opcode tree). In the +mod_perl paradigm this is much more expensive than fork, since +normally most of the time we have lots of perl things loaded into +memory. Most likely the best solution here is to offload the job to +PPerl or some other daemon, with the only added complexity of +communication. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r154386 - perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod
Author: stas Date: Fri Feb 18 19:22:01 2005 New Revision: 154386 URL: http://svn.apache.org/viewcvs?view=revrev=154386 Log: new item: Segfault with __read_nocancel Backtrace Modified: perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod?view=diffr1=154385r2=154386 == --- perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod Fri Feb 18 19:22:01 2005 @@ -294,6 +294,30 @@ =head1 Code Parsing and Compilation +=head2 Segfault with __read_nocancel Backtrace + +If your application segfault and you get a similar to the following +backtrace: + + (gdb) bt + #0 0x4030d4d1 in __read_nocancel () from /lib/tls/libpthread.so.0 + #1 0x in ?? () + +that usually means that you've build your non-mod_perl modules with +ithreads enabled perl. Then you have built a new perl Bwithout +ithreads. But you didn't nuke/rebuild the old non-mod_perl +modules. Now when you try to run those, you get the above segfault. To +solve the problem recompile all the modules. The easiest way to +accomplish that is to either remove all the modules completely, build +the new perl and then install the new modules. You could also try to +create a bundle of the existing modules using CCPAN.pm prior to +deleting the old modules, so you can easily reinstall all the modules +you previously had. + + + + + =head2 Registry scripts fail to load with: Unrecognized character \xEF at ... - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r154387 - perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod
Author: stas Date: Fri Feb 18 19:22:48 2005 New Revision: 154387 URL: http://svn.apache.org/viewcvs?view=revrev=154387 Log: spel Modified: perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod?view=diffr1=154386r2=154387 == --- perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod Fri Feb 18 19:22:48 2005 @@ -296,7 +296,7 @@ =head2 Segfault with __read_nocancel Backtrace -If your application segfault and you get a similar to the following +If your application segfaults and you get a similar to the following backtrace: (gdb) bt - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r154321 - perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod
Author: stas Date: Fri Feb 18 08:47:40 2005 New Revision: 154321 URL: http://svn.apache.org/viewcvs?view=revrev=154321 Log: introduce a new build option MP_AP_DESTDIR to aid package builders direct the Apache-specific files to the right place. [Cory Omand [EMAIL PROTECTED]] Modified: perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod?view=diffr1=154320r2=154321 == --- perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod Fri Feb 18 08:47:40 2005 @@ -519,6 +519,24 @@ % t/TEST -httpd /home/stas/httpd/prefork/bin/httpd + + + +=head4 MP_AP_DESTDIR + +This option exists to make the lives of package maintainers easier. If +you aren't a package manager you should not need to use this option. + +Apache installation destination directory. This path will be prefixed +to the installation paths for all Apache-specific files during Cmake +install. For instance, if Apache modules are normally installed into +I/path/to/httpd-2.0/modules/ and CMP_AP_DESTDIR is set to +I/tmp/foo, the Imod_perl.so will be installed in: + + /tmp/foo/path/to/httpd-2.0/modules/mod_perl.so + + + =head4 MP_APR_CONFIG If APR wasn't installed under the same file tree as httpd, you may - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r154323 - perl/modperl/docs/trunk/src/docs/general/testing/testing.pod
Author: stas Date: Fri Feb 18 09:13:03 2005 New Revision: 154323 URL: http://svn.apache.org/viewcvs?view=revrev=154323 Log: where to post the questions Modified: perl/modperl/docs/trunk/src/docs/general/testing/testing.pod Modified: perl/modperl/docs/trunk/src/docs/general/testing/testing.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/general/testing/testing.pod?view=diffr1=154322r2=154323 == --- perl/modperl/docs/trunk/src/docs/general/testing/testing.pod (original) +++ perl/modperl/docs/trunk/src/docs/general/testing/testing.pod Fri Feb 18 09:13:03 2005 @@ -3304,6 +3304,16 @@ =back +=head1 Got a question? + +Post it to the LApache-Test dev list|maillist::test-dev. The list is +moderated, so unless you are subscribed to it it may take some time +for your post to make it to the list. + +For more information see: http://perl.apache.org/docs/Apache-Test/ + +List's archive (none at moment) + =head1 References - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r154327 - perl/modperl/docs/trunk/src/docs/general/testing/testing.pod
Author: stas Date: Fri Feb 18 09:18:26 2005 New Revision: 154327 URL: http://svn.apache.org/viewcvs?view=revrev=154327 Log: fix the url Modified: perl/modperl/docs/trunk/src/docs/general/testing/testing.pod Modified: perl/modperl/docs/trunk/src/docs/general/testing/testing.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/general/testing/testing.pod?view=diffr1=154326r2=154327 == --- perl/modperl/docs/trunk/src/docs/general/testing/testing.pod (original) +++ perl/modperl/docs/trunk/src/docs/general/testing/testing.pod Fri Feb 18 09:18:26 2005 @@ -3310,7 +3310,7 @@ moderated, so unless you are subscribed to it it may take some time for your post to make it to the list. -For more information see: http://perl.apache.org/docs/Apache-Test/ +For more information see: http://perl.apache.org/Apache-Test/ List's archive (none at moment) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r154117 - perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod
Author: stas Date: Wed Feb 16 19:50:12 2005 New Revision: 154117 URL: http://svn.apache.org/viewcvs?view=revrev=154117 Log: no need to install Apache for static mod_perl builds contributed by: William McKee [EMAIL PROTECTED] Modified: perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod?view=diffr1=154116r2=154117 == --- perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod Wed Feb 16 19:50:12 2005 @@ -205,6 +205,12 @@ =head3 Apache +You need to have Apache built and installed prior to building +mod_perl, only if you intend build a DSO mod_perl. If you intend to +build a statically linked Apache+mod_perl, you only need to have the +Apache source available (mod_perl will build and install Apache for +you), you should skip this step. + % cd httpd-2.x.xx % ./configure --prefix=$HOME/httpd/prefork --with-mpm=prefork % make make install - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r153974 - perl/modperl/docs/trunk/src/docs/2.0/api/APR/Table.pod
Author: stas Date: Tue Feb 15 15:13:19 2005 New Revision: 153974 URL: http://svn.apache.org/viewcvs?view=revrev=153974 Log: explain what kind of data is stored in APR::Table and what are the side-effects (the loss of meta data) Modified: perl/modperl/docs/trunk/src/docs/2.0/api/APR/Table.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/APR/Table.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/APR/Table.pod?view=diffr1=153973r2=153974 == --- perl/modperl/docs/trunk/src/docs/2.0/api/APR/Table.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/APR/Table.pod Tue Feb 15 15:13:19 2005 @@ -48,6 +48,15 @@ CAPR::Table allows its users to manipulate opaque string-content tables. +On the C level the opaque string-content means: you can put in +'\0'-terminated strings and whatever you put in your get out. + +On the Perl level that means that we convert scalars into strings and +store those strings. Any special information that was in the Perl +scalar is not stored. So for example if a scalar was marked as utf8, +tainted or tied, that information is not stored. When you get the data +back as a Perl scalar you get only the string. + The table's structure is somewhat similar to the Perl's hash structure, but allows multiple values for the same key. An access to the records stored in the table always requires a key. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r153975 - perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod
Author: stas Date: Tue Feb 15 15:32:53 2005 New Revision: 153975 URL: http://svn.apache.org/viewcvs?view=revrev=153975 Log: perl Makefile.PL options may include MM options too Modified: perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod?view=diffr1=153974r2=153975 == --- perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod Tue Feb 15 15:32:53 2005 @@ -289,7 +289,9 @@ % cd modperl-1.99_xx % perl Makefile.PL options -where Ioptions is an optional list of (key,value) pairs. +where Ioptions is an optional list of key/value pairs. These +options can include all the usual options supported by +CExtUtils::MakeMaker (e.g., CPREFIX, CLIB, etc.). The following sections give the details about all the available options, but let's mention first an important one. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r153516 - perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod
Author: stas Date: Sat Feb 12 09:02:00 2005 New Revision: 153516 URL: http://svn.apache.org/viewcvs?view=revrev=153516 Log: add a xref between slurp_filename and filename Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod URL: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod?view=diffr1=153515r2=153516 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestUtil.pod Sat Feb 12 09:02:00 2005 @@ -1073,7 +1073,8 @@ =back - +Note that if you assign to C$r-Egtfilename you need to Lupdate +its stat record|docs::2.0::api::Apache::RequestRec/C_filename_. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r128447 - /perl/modperl/docs/trunk/src/docs/general/perl_reference/perl_reference.pod
Author: stas Date: Thu Jan 27 16:18:04 2005 New Revision: 128447 URL: http://svn.apache.org/viewcvs?view=revrev=128447 Log: the regex can't contain /o or it'll be broken: Reported by: Arshavir Grigorian [EMAIL PROTECTED] Modified: perl/modperl/docs/trunk/src/docs/general/perl_reference/perl_reference.pod Modified: perl/modperl/docs/trunk/src/docs/general/perl_reference/perl_reference.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/general/perl_reference/perl_reference.pod?view=diffrev=128447p1=perl/modperl/docs/trunk/src/docs/general/perl_reference/perl_reference.podr1=128446p2=perl/modperl/docs/trunk/src/docs/general/perl_reference/perl_reference.podr2=128447 == --- perl/modperl/docs/trunk/src/docs/general/perl_reference/perl_reference.pod (original) +++ perl/modperl/docs/trunk/src/docs/general/perl_reference/perl_reference.pod Thu Jan 27 16:18:04 2005 @@ -2193,8 +2193,8 @@ my $pat = '^foo$'; my $re = qr($pat); foreach( @list ) { - print if /$re/o; -} + print if /$re/; + } The qr() operator compiles the pattern for each request and then use the compiled version in the actual match. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r125206 - /perl/modperl/docs/trunk/src/products/app-server.pod
Author: stas Date: Fri Jan 14 12:38:09 2005 New Revision: 125206 URL: http://svn.apache.org/viewcvs?view=revrev=125206 Log: new framework: Interchange Submitted by: Bill McGonigle [EMAIL PROTECTED] Modified: perl/modperl/docs/trunk/src/products/app-server.pod Modified: perl/modperl/docs/trunk/src/products/app-server.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/products/app-server.pod?view=diffrev=125206p1=perl/modperl/docs/trunk/src/products/app-server.podr1=125205p2=perl/modperl/docs/trunk/src/products/app-server.podr2=125206 == --- perl/modperl/docs/trunk/src/products/app-server.pod (original) +++ perl/modperl/docs/trunk/src/products/app-server.pod Fri Jan 14 12:38:09 2005 @@ -103,6 +103,21 @@ especially useful for creating HTML, including dynamic tables, form field processing, URL escaping/unescaping, session handling, and more. +=head1 Interchange + +CInterchange (http://www.icdevgroup.org/) is a flexible, high +performance application server that handles state management, +authentication, session maintenance, click trails, filtering, URL +encodings, security policy. It's made up of the following components: +database abstraction layer, generic templating system, transaction +routing rules, customer information object, universal localization +scheme, security blackout definition, profiles, filters, search +language, and session management. + +Some of Interchange's many modules are transaction management, +pricing, personalization, payment processing, reporting, customer +service, and search. + =head1 Mason CMason (http://www.masonhq.com/) is a powerful Perl-based web site - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r125008 - /perl/modperl/docs/trunk/src/docs/general/testing/testing.pod
Author: stas Date: Wed Jan 12 16:59:02 2005 New Revision: 125008 URL: http://svn.apache.org/viewcvs?view=revrev=125008 Log: don't try to create httpd.conf.in file - it won't work Modified: perl/modperl/docs/trunk/src/docs/general/testing/testing.pod Modified: perl/modperl/docs/trunk/src/docs/general/testing/testing.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/general/testing/testing.pod?view=diffrev=125008p1=perl/modperl/docs/trunk/src/docs/general/testing/testing.podr1=125007p2=perl/modperl/docs/trunk/src/docs/general/testing/testing.podr2=125008 == --- perl/modperl/docs/trunk/src/docs/general/testing/testing.pod (original) +++ perl/modperl/docs/trunk/src/docs/general/testing/testing.podWed Jan 12 16:59:02 2005 @@ -1201,9 +1201,9 @@ =head2 Extending Configuration Setup Sometimes you need to add extra Fhttpd.conf configuration and perl -startup specific to your project that uses CApache::Test. This can -be accomplished by creating the desired files with an extension F.in -in the Ft/conf/ directory and running: +startup-specific code to your project that uses CApache::Test. This +can be accomplished by creating the desired files with an extension +F.in in the Ft/conf/ directory and running: panic% t/TEST -config @@ -1238,6 +1238,10 @@ /\.last\.(conf|pl).in$/ will be included very last in Fhttpd.conf. + +Make sure that you don't try to create Fhttpd.conf.in, it is not +going to work, since Fhttpd.conf is already generated by +Apache-Test. As mentioned before the converted files are created, any special token in them are getting replaced with the appropriate values. For example - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r124937 - /perl/modperl/docs/trunk/src/about/pmc.pod
Author: stas Date: Tue Jan 11 18:28:56 2005 New Revision: 124937 URL: http://svn.apache.org/viewcvs?view=revrev=124937 Log: fix the pod Modified: perl/modperl/docs/trunk/src/about/pmc.pod Modified: perl/modperl/docs/trunk/src/about/pmc.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/about/pmc.pod?view=diffrev=124937p1=perl/modperl/docs/trunk/src/about/pmc.podr1=124936p2=perl/modperl/docs/trunk/src/about/pmc.podr2=124937 == --- perl/modperl/docs/trunk/src/about/pmc.pod (original) +++ perl/modperl/docs/trunk/src/about/pmc.pod Tue Jan 11 18:28:56 2005 @@ -26,6 +26,7 @@ =back +=for html For more information on the role of the PMC see a href=http://www.apache.org/foundation/how-it-works.html#pmc-members;How How the ASF works/a - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r123843 - /perl/modperl/docs/trunk/src/download/source.pod
Author: stas Date: Sat Jan 1 08:06:15 2005 New Revision: 123843 URL: http://svn.apache.org/viewcvs?view=revrev=123843 Log: fix the link to mp2 svn viewcvs Modified: perl/modperl/docs/trunk/src/download/source.pod Modified: perl/modperl/docs/trunk/src/download/source.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/download/source.pod?view=diffrev=123843p1=perl/modperl/docs/trunk/src/download/source.podr1=123842p2=perl/modperl/docs/trunk/src/download/source.podr2=123843 == --- perl/modperl/docs/trunk/src/download/source.pod (original) +++ perl/modperl/docs/trunk/src/download/source.pod Sat Jan 1 08:06:15 2005 @@ -159,9 +159,9 @@ =back -=head2 mod_perl 2.0 CVS Web Interface +=head2 mod_perl 2.0 SVN Web Interface -http://cvs.apache.org/viewcvs.cgi/modperl-2.0/ +http://svn.apache.org/viewcvs.cgi/perl/modperl/trunk/ =cut - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r123760 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.pod /perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod /perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod
Author: stas Date: Thu Dec 30 18:10:12 2004 New Revision: 123760 URL: http://svn.apache.org/viewcvs?view=revrev=123760 Log: s/APR::SocketAddr/APR::SockAddr/ Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.pod perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.pod?view=diffrev=123760p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.podr1=123759p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.podr2=123760 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.pod Thu Dec 30 18:10:12 2004 @@ -65,7 +65,7 @@ should be adjusted to be: require Apache::Connection; - require APR::SocketAddr; + require APR::SockAddr; my $sockaddr = $c-local_addr; my ($local_port, $local_addr) = ($sockaddr-port, $sockaddr-ip_get); @@ -73,7 +73,7 @@ As you can see in mod_perl 1.0 API local_addr() was returning a SOCKADDR_IN object (see the Socket perl manpage), in mod_perl 2.0 API -it returns an CLAPR::SocketAddr|docs::2.0::api::APR::SocketAddr +it returns an CLAPR::SockAddr|docs::2.0::api::APR::SockAddr object, which is a totally different beast. If Apache::compat overrides the function Clocal_addr() to be back-compatible with mod_perl 1.0 API. Any code that relies on this function to work as it Modified: perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod?view=diffrev=123760p1=perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.podr1=123759p2=perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.podr2=123760 == --- perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.podThu Dec 30 18:10:12 2004 @@ -1230,8 +1230,8 @@ =head2 C$connection-Egtremote_addr C$connection-Egtlocal_addr and C$connection-Egtremote_addr -return an CLAPR::SocketAddr|docs::2.0::api::APR::SocketAddr object -and you can use this object's methods to retrieve the wanted bits of +return an CLAPR::SockAddr|docs::2.0::api::APR::SockAddr object and +you can use this object's methods to retrieve the wanted bits of information, so if you had a code like: use Socket 'sockaddr_in'; Modified: perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod?view=diffrev=123760p1=perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.podr1=123759p2=perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.podr2=123760 == --- perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod Thu Dec 30 18:10:12 2004 @@ -781,9 +781,9 @@ entry|docs::2.0::user::porting::compat/C__connection_E_gt_remote_addr_ on these two functions. Indeed the API have changed. Instead of returning a packed CSOCKADDR_IN string, Apache now returns an -CLAPR::SocketAddr|docs::2.0::api::APR::SocketAddr object, which I -can query to get the bits of information I'm interested in. So I -applied this patch: +CLAPR::SockAddr|docs::2.0::api::APR::SockAddr object, which I can +query to get the bits of information I'm interested in. So I applied +this patch: --- Apache/MP3.pm.3 2003-06-06 15:36:15.0 +1000 +++ Apache/MP3.pm 2003-06-06 15:56:32.0 +1000 @@ -1466,6 +1466,8 @@ % lynx --source http://localhost:8002/method2 mp2: MyApache::Method2 was called + + - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r123762 - /perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod
Author: stas Date: Thu Dec 30 18:53:33 2004 New Revision: 123762 URL: http://svn.apache.org/viewcvs?view=revrev=123762 Log: new sub-section: The Conflict of mp1 vs mp2 vs mp22 vs ... vs mpNN Modified: perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod?view=diffrev=123762p1=perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.podr1=123761p2=perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.podr2=123762 == --- perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod Thu Dec 30 18:53:33 2004 @@ -1470,6 +1470,343 @@ +=head1 The Conflict of mp1 vs mp2 vs mp22 vs ... vs mpNN + +The following sections summarise issues involving co-existence of +several mod_perl generations on CPAN and user's filesystem. + + +=head2 Why mod_perl2 didn't Rename its API + +The reason for not renaming mp2 core and 3rd party modules APIs to +embed the version number like (mod_perl2, Apache2::Cookie, +Apache2::Scoreboard, Apache2::SizeLimit, etc.) is very simple and +logical. Even though the internals of mp2 core and 3rd party modules +are totally different from their mp1 counterparts, for the most parts +the user API hasn't changed at all. Renaming the API is +counterproductive, as it'll will impose extra work on the modperl +users, and dangerous as the added complication may drive the users +away to use other similar technologies which don't have this kludge. + +Add to the fact that one Apache-2.2 is released, if mp2 doesn't manage +to make the incompatible changes in Apache 2.2 transparent to modperl +users, there will be mp2.2, and we would have needed to make yet +another namespace rename, even though 99% of the API will be the same +as mp2.0. Then there will be mp2.4, mp2.6, mp2.8, mp3.0, etc. I hope +you get the idea. + +mp2 provides a Perl API for libapr and libaprutil projects (which can +be used even if you don't run modperl). At the moment there is libapr +0.9.x, 1.x and 2.x will be released soon. All those are partially +incompatible. Since modperl provides only a partial mapping to the C +APR API the mod_perl users so far can run their code unmodified no +matter whether they have libapr-0.9, libapr-1.0 or libapr-2.0 +installed. If we were to embed the numbers in the API, users would +have had to rewrite their application to make it support each new +release of APR. + +Let's look at the multiple C libraries you have installed on your +machine. 99% of the libraries do not change their API naming when they +release a new version. Take for example the Berkley DB library. It had +dbopen(3) for its 1st generation, and 2nd, and 3rd, and 4th. + +I hope you now understand why the API should not include a generation +number in it. + +=over + +=item Q. Why not use some smart namespace aliasing? e.g. to alias +CApache2::SizeLimit to CApache::SizeLimit at run time, so the old +application will work just as well. + +A. That would be a workable solution, if the Apache C API didn't have +methods, which have exactly the same name and arguments in 1.3 and +2.0, but which do totally different things. One example is +CLApache::Connection::local_addr|docs::2.0::user::porting::compat/C__connection_E_gt_remote_addr_, +which in mp1 returned a C Socket object which was decoded by +CSocket::sockaddr_in, whereas in mp2 it returns an +CAPR::SockAddr object. + + +=back + + + + + +=head2 Platform Support for Multiple Generations of the Same Project + +The next issue to look at is the platform/language support for +multiple generations of the same project. + +99% of users will have only one mod_perl installed under the same perl +tree. So for most users the following issues are non-existent. For +those few users that need to have more than one mod_perl installed +under the same tree, the problems and their solutions are discussed +next. + +=head3 (.pm|.so) Files Collision + +Again, let's start with the C libraries, and again use Berkley DB +example. + +The public C API lives in its header files. Those headers files don't +change much between generations, some APIs are modified, others remain +as before. The header files usually keep the same names. So how can +you have Berkley DB 1 and 4 on the same machine, while most of the +header files have the same names? This is done by installing each +generation into a different sub-directory. On my machine I have db1 +and db4, let's look at Fdb.h header file: + + /usr/include/db1/db.h + /usr/include/db4/db.h + +Notice that it's the same name, and there is no problem. When an +application wants to use either of the two the user tells it which of +the include directories to use at compile time. + +The binary of the C library is usually
svn commit: r123765 - /perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod
Author: stas Date: Thu Dec 30 19:16:42 2004 New Revision: 123765 URL: http://svn.apache.org/viewcvs?view=revrev=123765 Log: swap the order of 2 sections Modified: perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod?view=diffrev=123765p1=perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.podr1=123764p2=perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.podr2=123765 == --- perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod Thu Dec 30 19:16:42 2004 @@ -1772,6 +1772,20 @@ +=head2 The CPAN Shell + +In case you have mp1 and mp2 under the same perl and mp2 is installed +under the FApache2/ subdirectory, in order for CPAN shell to find +you mp2 modules you need to invoke it as: + + % perl -MApache2 -MCPAN -eshell + +If you have only mp2 and you didn't ask to install it under the +FApache2/ subdirectory, no special invocation technique is required. + + + + =head2 Distributors Distributors should mark the different generations of mod_perl core as @@ -1789,20 +1803,6 @@ FApache2/ subdir, in which case the two will always co-exist. But this is not the most logical approach since 99% of users will want only one generation of mod_perl core and 3rd party modules. - - - - -=head2 The CPAN Shell - -In case you have mp1 and mp2 under the same perl and mp2 is installed -under the FApache2/ subdirectory, in order for CPAN shell to find -you mp2 modules you need to invoke it as: - - % perl -MApache2 -MCPAN -eshell - -If you have only mp2 and you didn't ask to install it under the -FApache2/ subdirectory, no special invocation technique is required. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r123766 - /perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod
Author: stas Date: Thu Dec 30 19:19:37 2004 New Revision: 123766 URL: http://svn.apache.org/viewcvs?view=revrev=123766 Log: add CPANPLUS shell example Modified: perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod?view=diffrev=123766p1=perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.podr1=123765p2=perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.podr2=123766 == --- perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod Thu Dec 30 19:19:37 2004 @@ -1772,7 +1772,8 @@ -=head2 The CPAN Shell + +=head2 CPAN Shells In case you have mp1 and mp2 under the same perl and mp2 is installed under the FApache2/ subdirectory, in order for CPAN shell to find @@ -1780,8 +1781,13 @@ % perl -MApache2 -MCPAN -eshell +For CPANPLUS: + + % perl -MApache2 -MCPANPLUS -eshell + If you have only mp2 and you didn't ask to install it under the FApache2/ subdirectory, no special invocation technique is required. + - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r123767 - /perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod
Author: stas Date: Thu Dec 30 19:22:23 2004 New Revision: 123767 URL: http://svn.apache.org/viewcvs?view=revrev=123767 Log: more section reordering Modified: perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod?view=diffrev=123767p1=perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.podr1=123766p2=perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.podr2=123767 == --- perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/porting/porting.pod Thu Dec 30 19:22:23 2004 @@ -1619,7 +1619,7 @@ needs: http://modperlbook.org/html/ch15_04.html -=head2 Documentation and Manpages +=head3 Documentation and Manpages If mp2 installs its F.pm files under FApache2/ Cperldoc won't find those. The alternative solution is to use Cmp2doc provided by @@ -1634,6 +1634,27 @@ locally|download::docs. + + +=head3 CPAN Shells + +In case you have mp1 and mp2 under the same perl and mp2 is installed +under the FApache2/ subdirectory, in order for CPAN shell to find +you mp2 modules you need to invoke it as: + + % perl -MApache2 -MCPAN -eshell + +For CPANPLUS: + + % perl -MApache2 -MCPANPLUS -eshell + +If you have only mp2 and you didn't ask to install it under the +FApache2/ subdirectory, no special invocation technique is required. + + + + + =head2 CPAN Index Since mod_perl 2.0 was released users have noticed a problem with CPAN @@ -1733,8 +1754,6 @@ shells, if you know how please let me know.) - - =item Q. Why not Put Several Generation in the Same Distro A. 1) That doesn't fix the indexing problem. @@ -1769,24 +1788,6 @@ generation, when the other needs to be released. =back - - - - -=head2 CPAN Shells - -In case you have mp1 and mp2 under the same perl and mp2 is installed -under the FApache2/ subdirectory, in order for CPAN shell to find -you mp2 modules you need to invoke it as: - - % perl -MApache2 -MCPAN -eshell - -For CPANPLUS: - - % perl -MApache2 -MCPANPLUS -eshell - -If you have only mp2 and you didn't ask to install it under the -FApache2/ subdirectory, no special invocation technique is required. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r123814 - /perl/modperl/docs/trunk/src/docs/1.0/guide/install.pod
Author: stas Date: Fri Dec 31 11:01:39 2004 New Revision: 123814 URL: http://svn.apache.org/viewcvs?view=revrev=123814 Log: notes on libperl.(a|so) Contributed by: William McKee [EMAIL PROTECTED] Modified: perl/modperl/docs/trunk/src/docs/1.0/guide/install.pod Modified: perl/modperl/docs/trunk/src/docs/1.0/guide/install.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/1.0/guide/install.pod?view=diffrev=123814p1=perl/modperl/docs/trunk/src/docs/1.0/guide/install.podr1=123813p2=perl/modperl/docs/trunk/src/docs/1.0/guide/install.podr2=123814 == --- perl/modperl/docs/trunk/src/docs/1.0/guide/install.pod (original) +++ perl/modperl/docs/trunk/src/docs/1.0/guide/install.pod Fri Dec 31 11:01:39 2004 @@ -681,9 +681,60 @@ mod_perl.o(.text+0x13b): undefined reference to `Perl_av_undef' [more errors snipped] -This happens when you have Perl built statically linked, with no -shared Ilibperl.a. Build a dynamically linked Perl (with -Ilibperl.a) and the problem will disappear. +This happens when you have a statically linked perl build +(i.e. without a shared Ilibperl.so library). Build a dynamically +linked perl (with Ilibperl.so) and the problem will disappear. See +the Building a shared Perl library section from the IINSTALL file +that comes with Perl source. + +=for html Also see a +href=http://modperlbook.org/html/ch15_04.html;Chapter 15.4 - Perl +Build Options/a from a href=http://modperlbook.org/;Practical +mod_perl/a. + +=head4 Further notes on libperl.(a|so) + +Library files such as Ilibfoo.a are archives that are used at +linking time - these files are completely included in the final +application that linked it. + +Whereas Ilibfoo.so indicates that it's a shared library. At the +linking time the application only knows which library it wants. Only +at the loading time (runtime) that shared library will be loaded. + +One of the benefits of using a shared library, is that it's loaded +only once. If there are two application linking to Flibperl.so that +run at the same time, only the first application will need to load +it. The second application will share that loaded library (that +service is provided by the OS kernel). In the case of static +Ilibfoo.a, it'll be loaded as many times as there are applications +that included it, thus consuming more memory. Of course this is not +the only benefit of using shared libs. + +In mod_perl 1.0, the library file is unfortunately named +Flibperl.(so|a). So you have Flibperl.(so|a) which is perl, and +you have Flibperl.(so|a) which is modperl. You are certainly looking +at the modperl version of Flibperl.a if you find it in the apache +directory. perl's Flibperl.(so|a) lives under the perl tree (e.g. in +F5.8.6/i686-linux/CORE/libperl.so). + +Some distributions (notably Debian) have chosen to put Flibperl.so +and Flibperl.a into the global library loader path (e.g., +F/usr/lib) which will cause linking problems when compiling mod_perl +(if compiling against static perl), in which case you hould move aside +the Flibperl.a while building mod_perl or else will likely encounter +further errors. If building against the dynamic perl's Flibperl.so, +you may have similar problems but at startup time. It's the best to +get rid of perl that installs its libs into F/usr/lib (or similar) +and reinstall a new perl, which puts its library under the perl tree. + + + + + + + + =head2 mod_perl Building (make) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r123822 - /perl/modperl/docs/trunk/src/docs/1.0/guide/install.pod
Author: stas Date: Fri Dec 31 13:04:54 2004 New Revision: 123822 URL: http://svn.apache.org/viewcvs?view=revrev=123822 Log: more tweaks Contributed by: William McKee [EMAIL PROTECTED] Modified: perl/modperl/docs/trunk/src/docs/1.0/guide/install.pod Modified: perl/modperl/docs/trunk/src/docs/1.0/guide/install.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/1.0/guide/install.pod?view=diffrev=123822p1=perl/modperl/docs/trunk/src/docs/1.0/guide/install.podr1=123821p2=perl/modperl/docs/trunk/src/docs/1.0/guide/install.podr2=123822 == --- perl/modperl/docs/trunk/src/docs/1.0/guide/install.pod (original) +++ perl/modperl/docs/trunk/src/docs/1.0/guide/install.pod Fri Dec 31 13:04:54 2004 @@ -688,7 +688,7 @@ that comes with Perl source. =for html Also see a -href=http://modperlbook.org/html/ch15_04.html;Chapter 15.4 - Perl +href=http://modperlbook.org/html/ch15_04.html;Chapter 15.4 - Perl Build Options/a from a href=http://modperlbook.org/;Practical mod_perl/a. @@ -721,13 +721,14 @@ Some distributions (notably Debian) have chosen to put Flibperl.so and Flibperl.a into the global library loader path (e.g., F/usr/lib) which will cause linking problems when compiling mod_perl -(if compiling against static perl), in which case you hould move aside -the Flibperl.a while building mod_perl or else will likely encounter -further errors. If building against the dynamic perl's Flibperl.so, -you may have similar problems but at startup time. It's the best to -get rid of perl that installs its libs into F/usr/lib (or similar) -and reinstall a new perl, which puts its library under the perl tree. - +(if compiling against static perl), in which case you should move +aside the Flibperl.a while building mod_perl or else will likely +encounter further errors. If building against the dynamic perl's +Flibperl.so, you may have similar problems but at startup time. It's +the best to get rid of perl that installs its libs into F/usr/lib +(or similar) and reinstall a new perl, which puts its library under +the perl tree. Also see Llibperl.so and +libperl.a|docs::1.0::guide::install/libperl_so_and_libperl_a. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r123741 - /perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.pod
Author: stas Date: Thu Dec 30 14:54:44 2004 New Revision: 123741 URL: http://svn.apache.org/viewcvs?view=revrev=123741 Log: perl -V:useshrplib should return false when perl is built statically linked Submitted by: William McKee [EMAIL PROTECTED] Modified: perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.pod Modified: perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.pod?view=diffrev=123741p1=perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.podr1=123740p2=perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.podr2=123741 == --- perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.pod (original) +++ perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.pod Thu Dec 30 14:54:44 2004 @@ -148,7 +148,7 @@ will say: -useshrplib='true' +useshrplib='false' Again, the solution may vary from system to system, but moving F/usr/lib/libperl.a away while building mod_perl is probably the - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r123752 - /perl/modperl/docs/trunk/tmpl/custom/html/tail
Author: stas Date: Thu Dec 30 15:57:04 2004 New Revision: 123752 URL: http://svn.apache.org/viewcvs?view=revrev=123752 Log: suggest to post site comments to the modperl users list, rather than modperl-docs (since most comments have to do with modperl and not the site, so need to be discussed on the users list) Modified: perl/modperl/docs/trunk/tmpl/custom/html/tail Modified: perl/modperl/docs/trunk/tmpl/custom/html/tail Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/tmpl/custom/html/tail?view=diffrev=123752p1=perl/modperl/docs/trunk/tmpl/custom/html/tailr1=123751p2=perl/modperl/docs/trunk/tmpl/custom/html/tailr2=123752 == --- perl/modperl/docs/trunk/tmpl/custom/html/tail (original) +++ perl/modperl/docs/trunk/tmpl/custom/html/tail Thu Dec 30 15:57:04 2004 @@ -8,8 +8,8 @@ p class=modifiedLast modified [% doc.last_modified %]/p div class=changes[%- INCLUDE changes_link -%]/div p class=modifiedHave comments? Please send them to -a href=[%- doc.dir.abs_doc_root -%]/maillist/docs-dev.htmlthe -modperl-docs mailing list/a./p +a href=[%- doc.dir.abs_doc_root -%]/maillist/modperl.htmlthe +modperl users mailing list/a./p p class=copyrightUse of the Camel for Perl is a trademark of a href=http://www.ora.com;O'Reilly amp; Associates/a, and is used by permission. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r123523 - /perl/modperl/docs/trunk/src/docs/2.0/api/APR/Bucket.pod /perl/modperl/docs/trunk/src/docs/2.0/api/APR/BucketAlloc.pod
Author: stas Date: Tue Dec 28 08:36:42 2004 New Revision: 123523 URL: http://svn.apache.org/viewcvs?view=revrev=123523 Log: APR::Bucket::alloc_create moved to APR::BucketAlloc::new APR::Bucket::alloc_destroy moved to APR::BucketAlloc::destroy Modified: perl/modperl/docs/trunk/src/docs/2.0/api/APR/Bucket.pod perl/modperl/docs/trunk/src/docs/2.0/api/APR/BucketAlloc.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/APR/Bucket.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/APR/Bucket.pod?view=diffrev=123523p1=perl/modperl/docs/trunk/src/docs/2.0/api/APR/Bucket.podr1=123522p2=perl/modperl/docs/trunk/src/docs/2.0/api/APR/Bucket.podr2=123523 == --- perl/modperl/docs/trunk/src/docs/2.0/api/APR/Bucket.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/APR/Bucket.pod Tue Dec 28 08:36:42 2004 @@ -10,9 +10,6 @@ use APR::Bucket (); my $ba = $c-bucket_alloc; - $ba2 = APR::Bucket::alloc_create($pool); - APR::Bucket::alloc_destroy($ba2); - $b1 = APR::Bucket-new($ba, aaa); $b2 = APR::Bucket::eos_create($ba); $b3 = APR::Bucket::flush_create($ba); @@ -152,71 +149,6 @@ it's better to call CLdelete|/C_delete_ which does exactly that. - - - - -=head2 Calloc_create - -Create an CAPR::BucketAlloc object: - - $ba = APR::Bucket::alloc_create($pool); - -=over 4 - -=item arg1: C$pool -( CLAPR::Pool object|docs::2.0::api::APR::Pool ) - -The pool used to create this object. - -=item ret: C$ba -( CLAPR::BucketAlloc object|docs::2.0::api::APR::BucketAlloc ) - -The new object. - -=item since: 1.99_17 - -=back - -This bucket allocation list (freelist) is used to create new buckets -and bucket brigades. Normally it is not necesssary to create them, -since the existing bucket brigades and/or connection objects in -modperl 2.0 provide them automatically. - -Example: - - use APR::Bucket (); - use Apache::Connection (); - my $ba = APR::Bucket::alloc_create($c-pool); - my $eos_b = APR::Bucket::eos_create($ba); - - - - - -=head2 Calloc_destroy - -Destroy an CLAPR::BucketAlloc -object|docs::2.0::api::APR::BucketAlloc: - - APR::Bucket::alloc_destroy($ba); - -=over 4 - -=item arg1: C$ba -( CLAPR::BucketAlloc object|docs::2.0::api::APR::BucketAlloc ) - -The freelist to destroy. - -=item ret: no return value - -=item since: 1.99_17 - -=back - -Once destroyed this object may not be used again. Normally it is not -necessary to destroy allocators, since the pool which created them -will destroy them during pool cleanup. Modified: perl/modperl/docs/trunk/src/docs/2.0/api/APR/BucketAlloc.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/APR/BucketAlloc.pod?view=diffrev=123523p1=perl/modperl/docs/trunk/src/docs/2.0/api/APR/BucketAlloc.podr1=123522p2=perl/modperl/docs/trunk/src/docs/2.0/api/APR/BucketAlloc.podr2=123523 == --- perl/modperl/docs/trunk/src/docs/2.0/api/APR/BucketAlloc.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/APR/BucketAlloc.podTue Dec 28 08:36:42 2004 @@ -7,6 +7,11 @@ =head1 Synopsis + use APR::BucketAlloc (); + $ba = APR::BucketAlloc-new($pool); + $ba-destroy; + + @@ -14,23 +19,89 @@ CAPR::BucketAlloc is used for bucket allocation. -At the moment CAPR::BucketAlloc is a virtual class, which doesn't -exists as a module/package - so you don't need to load it, nor does it -contain any callable methods or functions. - -Objects blessed into CAPR::BucketAlloc class, are returned by -CL$c-Egtbucket_alloc|docs::2.0::api::Apache::Connection/C_bucket_alloc_, -CLAPR::Bucket::alloc_create|docs::2.0::api::APR::Bucket/C_alloc_create_ + + + + + +=head2 Cnew + +Create an CAPR::BucketAlloc object: + + $ba = APR::BucketAlloc-new($pool); + +=over 4 + +=item class: CAPR::BucketAlloc + +=item arg1: C$pool +( CLAPR::Pool object|docs::2.0::api::APR::Pool ) + +The pool used to create this object. + +=item ret: C$ba +( CLAPR::BucketAlloc object|docs::2.0::api::APR::BucketAlloc ) + +The new object. + +=item since: 1.99_20 + +=back + +This bucket allocation list (freelist) is used to create new buckets +(via CLAPR::Bucket-Egtnew|docs::2.0::api::APR::Bucket/C_new_) +and bucket brigades (via +CLAPR::Brigade-Egtnew|docs::2.0::api::APR::Brigade/C_new_). + +You only need to use this method if you aren't running under httpd. +If you are running under mod_perl, you already have a bucket +allocation available via +CL$c-Egtbucket_alloc|docs::2.0::api::Apache::Connection/C_bucket_alloc_ and -CL$bb-Egtbucket_alloc|docs::2.0::api::APR::Brigade/C_bucket_alloc_, -and used by -CLAPR::Brigade-Egtnew|docs::2.0::api::APR::Brigade/C_new_ and -CLAPR::Bucket-Egtnew|docs::2.0::api::APR::Bucket/C_new_. +CL$bb-Egtbucket_alloc|docs::2.0::api::APR::Brigade/C_bucket_alloc_. + +Example: + + use APR::BucketAlloc (); + use APR::Pool (); + my $ba = APR
svn commit: r123539 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/porting.pod
Author: stas Date: Tue Dec 28 11:36:22 2004 New Revision: 123539 URL: http://svn.apache.org/viewcvs?view=revrev=123539 Log: fix wording Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/porting.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/porting.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/porting.pod?view=diffrev=123539p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/porting.podr1=123538p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/porting.podr2=123539 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/porting.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/porting.pod Tue Dec 28 11:36:22 2004 @@ -23,7 +23,7 @@ CApache::porting helps to port mod_perl 1.0 code to run under mod_perl 2.0. It doesn't provide any back-compatibility functionality, -however it knows trap calls to methods that are no longer in the +however it knows to trap methods calls that are no longer in the mod_perl 2.0 API and tell what should be used instead if at all. If you attempts to use mod_perl 2.0 methods without first loading the modules that contain them, it will tell you which modules you need to - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r123023 - /perl/modperl/docs/trunk/src/docs/2.0/api/APR/UUID.pod /perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg
Author: stas Date: Tue Dec 21 16:57:36 2004 New Revision: 123023 URL: http://svn.apache.org/viewcvs?view=revrev=123023 Log: the forgotten manpage: APR::UUID Added: perl/modperl/docs/trunk/src/docs/2.0/api/APR/UUID.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg Added: perl/modperl/docs/trunk/src/docs/2.0/api/APR/UUID.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/APR/UUID.pod?view=autorev=123023 == --- (empty file) +++ perl/modperl/docs/trunk/src/docs/2.0/api/APR/UUID.pod Tue Dec 21 16:57:36 2004 @@ -0,0 +1,148 @@ +=head1 NAME + +APR::UUID - Perl API for manipulating APR UUIDs + + + + +=head1 Synopsis + + use APR::UUID (); + + # get a random UUID and format it as a string + my $uuid = APR::UUID-new-format; + # $uuid = e.g. 'd48889bb-d11d-b211-8567-ec81968c93c6'; + + # same as the object returned by APR::UUID-new + my $uuid_parsed = APR::UUID-parse($uuid); + + +=head1 Description + +CAPR::UUID is used to get and manipulate randow UUID. + +It allows you to CLcreate|/C_new_ random UUID, which when +CLformat|/C_format_ted returns a string like: + + 'd48889bb-d11d-b211-8567-ec81968c93c6'; + +which can be parsed back into the CAPR::UUID object with +CLparse()|/C_parse_. + + + + + + + + + +=head1 API + +CAPR::UUID provides the following functions and/or methods: + + + + + + +=head2 Cformat + +Convert an CLAPR::UUID object|docs::2.0::api::APR::UUID object +into a string presentation: + + my $uuid_str = $uuid-format; + +=over 4 + +=item obj: C$uuid +( CLAPR::UUID object|docs::2.0::api::APR::UUID ) + +=item ret: C$uuid_str + +returns a string representation of the object (.e.g +C'd48889bb-d11d-b211-8567-ec81968c93c6'). + +=item since: 1.99_12 + +=back + + + + + + +=head2 Cnew + +Create a CLAPR::UUID object|docs::2.0::api::APR::UUID using the +random engine: + + my $uuid = APR::UUID-new; + +=over 4 + +=item class: CAPR::UUID +( CLAPR::UUID class|docs::2.0::api::APR::UUID ) + +=item ret: C$uuid +( CLAPR::UUID object|docs::2.0::api::APR::UUID ) + +=item since: 1.99_12 + +=back + + + + + + + +=head2 Cparse + +Convert a UUID string into an CLAPR::UUID +object|docs::2.0::api::APR::UUID object: + + $uuid = APR::UUID-parse($uuid_str) + +=over 4 + +=item arg1: C$uuid_str (string) + +UUID string (.e.g C'd48889bb-d11d-b211-8567-ec81968c93c6') + +=item ret: C$uuid +( CLAPR::UUID object|docs::2.0::api::APR::UUID ) + +The new object. + +=item since: 1.99_12 + +=back + + + + + + +=head1 See Also + +Lmod_perl 2.0 documentation|docs::2.0::index. + + + + +=head1 Copyright + +mod_perl 2.0 and its core modules are copyrighted under +The Apache Software License, Version 2.0. + + + + +=head1 Authors + +LThe mod_perl development team and numerous +contributors|about::contributors::people. + +=cut + Modified: perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg?view=diffrev=123023p1=perl/modperl/docs/trunk/src/docs/2.0/api/config.cfgr1=123022p2=perl/modperl/docs/trunk/src/docs/2.0/api/config.cfgr2=123023 == --- perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg Tue Dec 21 16:57:36 2004 @@ -65,6 +65,7 @@ APR/ThreadMutex.pod APR/URI.pod APR/Util.pod +APR/UUID.pod )], group= 'ModPerl::', - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r123024 - /perl/modperl/docs/trunk/src/docs/2.0/api/APR/UUID.pod
Author: stas Date: Tue Dec 21 17:09:47 2004 New Revision: 123024 URL: http://svn.apache.org/viewcvs?view=revrev=123024 Log: add the missing DESTROY call Modified: perl/modperl/docs/trunk/src/docs/2.0/api/APR/UUID.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/APR/UUID.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/APR/UUID.pod?view=diffrev=123024p1=perl/modperl/docs/trunk/src/docs/2.0/api/APR/UUID.podr1=123023p2=perl/modperl/docs/trunk/src/docs/2.0/api/APR/UUID.podr2=123024 == --- perl/modperl/docs/trunk/src/docs/2.0/api/APR/UUID.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/APR/UUID.pod Tue Dec 21 17:09:47 2004 @@ -95,6 +95,28 @@ +=head2 CDESTROY + + $uuid-DESTROY; + +=over 4 + +=item obj: CAPR::UUID +( CLAPR::UUID object|docs::2.0::api::APR::UUID ) + +=item ret: no return value + +=item since: 1.99_12 + +=back + +Do not call this method, it's designed to be only called by Perl when +the variable goes out of scope. If you call it yourself you will get a +segfault when perl will call DESTROY on its own. + + + + =head2 Cparse - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r123153 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.pod
Author: stas Date: Wed Dec 22 15:30:53 2004 New Revision: 123153 URL: http://svn.apache.org/viewcvs?view=revrev=123153 Log: spel Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.pod?view=diffrev=123153p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.podr1=123152p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.podr2=123153 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.pod Wed Dec 22 15:30:53 2004 @@ -828,7 +828,7 @@ =item ret: C$hostname ( string ) -the current hostname, or the previous value if the optionnal +the current hostname, or the previous value if the optional C$new_hostname argument was passed =item since: 1.99_19 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r122938 - /perl/modperl/docs/trunk/src/docs/offsite/books.pod
Author: stas Date: Mon Dec 20 21:09:38 2004 New Revision: 122938 URL: http://svn.apache.org/viewcvs?view=revrev=122938 Log: modperlbook.org now has the entire book online Modified: perl/modperl/docs/trunk/src/docs/offsite/books.pod Modified: perl/modperl/docs/trunk/src/docs/offsite/books.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/offsite/books.pod?view=diffrev=122938p1=perl/modperl/docs/trunk/src/docs/offsite/books.podr1=122937p2=perl/modperl/docs/trunk/src/docs/offsite/books.podr2=122938 == --- perl/modperl/docs/trunk/src/docs/offsite/books.pod (original) +++ perl/modperl/docs/trunk/src/docs/offsite/books.pod Mon Dec 20 21:09:38 2004 @@ -10,6 +10,9 @@ These are the mod_perl specific books. + + + =head2 Writing Apache Modules with Perl and C =for html img src=../../images/books/wrapmod.jpg @@ -29,6 +32,10 @@ 1-56592-567-X, Order Number: 567X 746 pages, $34.95 + + + + =head2 The mod_perl Developer's Cookbook =for html img src=../../images/books/modperlcookbook.jpg @@ -46,6 +53,10 @@ Price: $39.99 Pages: 600 + + + + =head2 Practical mod_perl =for html img src=../../images/books/practical_modperl.jpg @@ -60,7 +71,14 @@ By Stas Bekman, Eric Cholet May 2003 0-596-00227-0, Order Number: 2270 - 924 pages, $49.95 US, $77.95 CA, 35.50 UK + 924 pages, $49.95 US, $77.95 CA, 35.50 UK + +The entire book is now freely available online +http://modperlbook.org/, under the CreativeCommons Attribution +Share-Alike License: http://creativecommons.org/licenses/by-sa/2.0/. + + + =head2 mod_perl Pocket Reference @@ -83,6 +101,9 @@ See also Andrew's collection of reference cards for Apache and other programs at http://www.refcards.com. + + + =head1 Learn about a technology using mod_perl - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r122970 - /perl/modperl/docs/trunk/src/docs/2.0/user/help/help.pod
Author: stas Date: Tue Dec 21 08:11:30 2004 New Revision: 122970 URL: http://svn.apache.org/viewcvs?view=revrev=122970 Log: Please post the report Binlined, and not as an attachment! Modified: perl/modperl/docs/trunk/src/docs/2.0/user/help/help.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/help/help.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/help/help.pod?view=diffrev=122970p1=perl/modperl/docs/trunk/src/docs/2.0/user/help/help.podr1=122969p2=perl/modperl/docs/trunk/src/docs/2.0/user/help/help.podr2=122970 == --- perl/modperl/docs/trunk/src/docs/2.0/user/help/help.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/help/help.pod Tue Dec 21 08:11:30 2004 @@ -112,6 +112,8 @@ The Ct/REPORT utility is autogenerated when Cperl Makefile.PL is run, so you should have it already after building mod_perl. +Please post the report Binlined, and not as an attachment! + META: soon we will have Cmp2bug report script which will be installed system-wide. For now, if you don't have the source, you can create the report by running the following: - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r122681 - /perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod
Author: stas Date: Fri Dec 17 13:22:19 2004 New Revision: 122681 URL: http://svn.apache.org/viewcvs?view=revrev=122681 Log: reinsert the last commit in the sorted order Modified: perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod?view=diffrev=122681p1=perl/modperl/docs/trunk/src/docs/2.0/user/config/config.podr1=122680p2=perl/modperl/docs/trunk/src/docs/2.0/user/config/config.podr2=122681 == --- perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod Fri Dec 17 13:22:19 2004 @@ -261,6 +261,31 @@ + +=head2 CPerlConfigRequire + + PerlConfigRequire Foo/Bar.pm + +is equivalent to Perl's: + + require Foo/Bar.pm; + +CPerlConfigRequire is used to load files with Perl code. + +It is very similar to CLPerlRequire|/C_PerlRequire_ +with the only difference being that Perl startup is not +Ldelayed|/Startup_Process and will be immediately started +upon encountering this directive. + +META: need to expand on this with examples and suggested usages + + + + + + + + =head2 CPerlLoadModule The CPerlLoadModule directive is similar to @@ -644,6 +669,36 @@ + + + +=head2 CPerlPostConfigRequire + + PerlPostConfigRequire Foo/Bar.pm + +is equivalent to Perl's: + + require Foo/Bar.pm; + +CPerlPostConfigRequire is used to load files with Perl code +as late as possible during server startup. + +It is very similar to CLPerlRequire|/C_PerlRequire_ and +CLPerlConfigRequire|/C_PerlConfigRequire_. + +CPerlPostConfigRequire delays loading of the file until +the last possible moment before the server is starting, in +the post_config phase. + +META: need to expand on this with examples and suggested usages + + + + + + + + =head2 CPerlRequire PerlRequire Foo/Bar.pm @@ -681,47 +736,6 @@ -=head2 CPerlConfigRequire - - PerlConfigRequire Foo/Bar.pm - -is equivalent to Perl's: - - require Foo/Bar.pm; - -CPerlConfigRequire is used to load files with Perl code. - -It is very similar to CLPerlRequire|/C_PerlRequire_ -with the only difference being that Perl startup is not -Ldelayed|/Startup_Process and will be immediately started -upon encountering this directive. - -META: need to expand on this with examples and suggested usages - - - - - - -=head2 CPerlPostConfigRequire - - PerlPostConfigRequire Foo/Bar.pm - -is equivalent to Perl's: - - require Foo/Bar.pm; - -CPerlPostConfigRequire is used to load files with Perl code -as late as possible during server startup. - -It is very similar to CLPerlRequire|/C_PerlRequire_ and -CLPerlConfigRequire|/C_PerlConfigRequire_. - -CPerlPostConfigRequire delays loading of the file until -the last possible moment before the server is starting, in -the post_config phase. - -META: need to expand on this with examples and suggested usages - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r122585 - /perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod
Author: stas Date: Thu Dec 16 13:27:55 2004 New Revision: 122585 URL: http://svn.apache.org/viewcvs?view=revrev=122585 Log: add missing: use Apache::Filter (); Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod?view=diffrev=122585p1=perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.podr1=122584p2=perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.podr2=122585 == --- perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/handlers/filters.pod Thu Dec 16 13:27:55 2004 @@ -1118,6 +1118,7 @@ use Apache::RequestRec (); use Apache::RequestIO (); + use Apache::Filter (); use APR::Brigade (); use APR::Bucket (); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r111914 - /perl/modperl/docs/trunk/src/download/index_top.html
Author: stas Date: Tue Dec 14 17:58:44 2004 New Revision: 111914 URL: http://svn.apache.org/viewcvs?view=revrev=111914 Log: better say: 2.0.0-RC1, than 1.99_18 Modified: perl/modperl/docs/trunk/src/download/index_top.html Modified: perl/modperl/docs/trunk/src/download/index_top.html Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/download/index_top.html?view=diffrev=111914p1=perl/modperl/docs/trunk/src/download/index_top.htmlr1=111913p2=perl/modperl/docs/trunk/src/download/index_top.htmlr2=111914 == --- perl/modperl/docs/trunk/src/download/index_top.html (original) +++ perl/modperl/docs/trunk/src/download/index_top.html Tue Dec 14 17:58:44 2004 @@ -14,7 +14,7 @@ brbr /li -limod_perl 2.0 (in development): Version 1.99_18 - Dec 12, 2004br +limod_perl 2.0 (in development): Version 2.0.0-RC1 - Dec 12, 2004br a href=http://perl.apache.org/dist/mod_perl-2.0-current.tar.gz;Download/a | a href=http://perl.apache.org/dist/mod_perl-2.0-current;Browse/a | a href=http://perl.apache.org/dist/mod_perl-2.0-current/Changes;Changes/a | - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r111918 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.pod
Author: stas Date: Tue Dec 14 18:40:30 2004 New Revision: 111918 URL: http://svn.apache.org/viewcvs?view=revrev=111918 Log: clarify the issue with $Apache::PerlSections::Save (input from gozer) Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.pod?view=diffrev=111918p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.podr1=111917p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.podr2=111918 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.podTue Dec 14 18:40:30 2004 @@ -141,11 +141,36 @@ =head2 C$Apache::PerlSections::Save -By default, the namespace in which CEltPerl Egt sections are -evaluated is cleared after each block closes. By setting it to a true -value, the content of those namespaces will be preserved and will be -available for inspection by modules like -CLApache::Status|docs::2.0::api::Apache::Status. +Each CEltPerlEgt section is evaluated in its unique namespace, +by default residing in a sub-namespace of CApache::ReadConfig::, +therefore any local variables will end up in that namespace. For +example if a CEltPerlEgt section happened to be in file +F/tmp/httpd.conf starting on line 20, the namespace: +CApache::ReadConfig::tmp::httpd_conf::line_20 will be used. Now if +it had: + + Perl +$foo = 5; +my $bar = 6; +$My::tar = 7; + /Perl + +The local global variable C$foo becomes +C$Apache::ReadConfig::tmp::httpd_conf::line_20::foo, the other +variable remain where they are. + +By default, the namespace in which CEltPerlEgt sections are +evaluated is cleared after each block closes. In our example nuking +C$Apache::ReadConfig::tmp::httpd_conf::line_20::foo, leaving the +rest untouched. + +By setting C$Apache::PerlSections::Save to a true value, the content +of those namespaces will be preserved and will be available for +inspection by CLApache::Status|docs::2.0::api::Apache::Status and +CLApache::PerlSections-Egtdump|/C_Apache__PerlSections_E_gt_dump_ +In our example C$Apache::ReadConfig::tmp::httpd_conf::line_20::foo +will still be accessible from other perl code, after the +CEltPerlEgt section was parsed. @@ -155,7 +180,7 @@ -=head2 Apache::PerlSections-Egtdump +=head2 CApache::PerlSections-Egtdump This method will dump out all the configuration variables mod_perl will be feeding to the apache config gears. The output is suitable to @@ -235,7 +260,7 @@ -=head2 Apache::PerlSections-Egtstore +=head2 CApache::PerlSections-Egtstore This method will call the Cdump method, writing the output to a file, suitable to be pulled in via Crequire or Cdo. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r111919 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.pod
Author: stas Date: Tue Dec 14 18:43:02 2004 New Revision: 111919 URL: http://svn.apache.org/viewcvs?view=revrev=111919 Log: start using Perl, chances are that noone uses 2.0.47 anymore, which requried Perl , but in any case this is logged in the: Perl directive missing closing '' entry of this manpage Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.pod?view=diffrev=111919p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.podr1=111918p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.podr2=111919 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.podTue Dec 14 18:43:02 2004 @@ -8,7 +8,7 @@ =head1 Synopsis - Perl + Perl @PerlModule = qw(Mail::Send Devel::Peek); #run the server as whoever starts it @@ -26,10 +26,10 @@ =head1 Description -With CEltPerl Egt...CElt/PerlEgt sections, it is possible +With CEltPerlEgt...CElt/PerlEgt sections, it is possible to configure your server entirely in Perl. -CEltPerl Egt sections can contain Iany and as much Perl code as +CEltPerlEgt sections can contain Iany and as much Perl code as you wish. These sections are compiled into a special package whose symbol table mod_perl can then walk and grind the names and values of Perl variables/structures through the Apache core configuration gears. @@ -67,7 +67,7 @@ To pass all environment variables to the children with a single configuration directive, rather than listing each one via CPassEnv -or CPerlPassEnv, a CEltPerl Egt section could read in a file and: +or CPerlPassEnv, a CEltPerlEgt section could read in a file and: push @PerlPassEnv, [$key = $val]; @@ -86,19 +86,19 @@ aren't Iexactly the same (e.g. the CServerName directive) it's not quite that simple. -CEltPerl Egt sections come to rescue. Now you have a single +CEltPerlEgt sections come to rescue. Now you have a single configuration file and the full power of Perl to tweak the local configuration. For example to solve the problem of the CServerName -directive you might have this CEltPerl Egt section: +directive you might have this CEltPerlEgt section: - Perl + Perl $ServerName = `hostname`; /Perl For example if you want to allow personal directories on all machines except the ones whose names start with Isecure: - Perl + Perl $ServerName = `hostname`; if ($ServerName !~ /^secure/) { $UserDir = public.html; @@ -133,7 +133,7 @@ =head1 Configuration Variables There are a few variables that can be set to change the default -behaviour of CEltPerl Egt sections. +behaviour of CEltPerlEgt sections. @@ -252,8 +252,8 @@ __END__ -It is important to put the call to Cdump in it's own CEltPerl Egt -section, otherwise the content of the current CEltPerl Egt section +It is important to put the call to Cdump in it's own CEltPerlEgt +section, otherwise the content of the current CEltPerlEgt section will not be dumped. @@ -272,7 +272,7 @@ =head1 Advanced API mod_perl 2.0 now introduces the same general concept of handlers to -CEltPerl Egt sections. Apache::PerlSections simply being the +CEltPerlEgt sections. Apache::PerlSections simply being the default handler for them. To specify a different handler for a given perl section, an extra @@ -290,7 +290,7 @@ #do your thing! } -So, when that given CEltPerl Egt block in encountered, the code +So, when that given CEltPerlEgt block in encountered, the code within will first be evaluated, then the handler routine will be invoked with 3 arguments: @@ -315,7 +315,7 @@ $args-{'handler'} = 'My::PerlSection::Handler'; $args-{'package'} = 'Apache::ReadConfig'; -Other Cname=value pairs given on the CEltPerl Egt line will +Other Cname=value pairs given on the CEltPerlEgt line will also be included. =back - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r111920 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.pod
Author: stas Date: Tue Dec 14 18:51:37 2004 New Revision: 111920 URL: http://svn.apache.org/viewcvs?view=revrev=111920 Log: new section: Verifying Perl Sections Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.pod?view=diffrev=111920p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.podr1=111919p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.podr2=111920 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/PerlSections.podTue Dec 14 18:51:37 2004 @@ -334,6 +334,27 @@ +=head1 Verifying CEltPerlEgt Sections + +If the CEltPerlEgt sections include no code requiring a running +mod_perl, it is possible to check those from the command line. But the +following trick should be used: + + # file: httpd.conf + Perl + #!perl + + # ... code here ... + + __END__ + /Perl + +Now you can run: + + % perl -c httpd.conf + + + =head1 Bugs - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r111672 - /perl/modperl/docs/trunk/src/docs/2.0/user/help/help.pod
Author: stas Date: Sun Dec 12 15:16:33 2004 New Revision: 111672 URL: http://svn.apache.org/viewcvs?view=revrev=111672 Log: typo Modified: perl/modperl/docs/trunk/src/docs/2.0/user/help/help.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/help/help.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/help/help.pod?view=diffrev=111672p1=perl/modperl/docs/trunk/src/docs/2.0/user/help/help.podr1=111671p2=perl/modperl/docs/trunk/src/docs/2.0/user/help/help.podr2=111672 == --- perl/modperl/docs/trunk/src/docs/2.0/user/help/help.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/help/help.pod Sun Dec 12 15:16:33 2004 @@ -177,7 +177,7 @@ % make test TEST_VERBOSE=1 \ TEST_FILES=compat/apache_util.t modperl/pnotes.t -or use an altenative way: +or use an alternative way: % cd modperl-1.99_xx % t/TEST -clean - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r111674 - in perl/modperl/docs/trunk: . bin lib src src/about src/advocacy src/bugs src/contribute src/contribute/docs src/docs src/docs/1.0 src/docs/1.0/api src/docs/1.0/guide src/docs/1.0/os src/docs/1.0/os/win32 src/docs/2.0 src/docs/2.0/api src/docs/2.0/devel src/docs/2.0/os src/docs/2.0/os/win32 src/docs/2.0/user src/docs/general src/docs/general/os src/docs/general/os/win32 src/docs/offsite src/docs/tutorials src/download src/help src/jobs src/maillist src/outstanding src/outstanding/stats src/outstanding/success_stories src/products src/start
Author: stas Date: Sun Dec 12 15:36:26 2004 New Revision: 111674 URL: http://svn.apache.org/viewcvs?view=revrev=111674 Log: delete stale .cvsignore files Removed: perl/modperl/docs/trunk/.cvsignore perl/modperl/docs/trunk/bin/.cvsignore perl/modperl/docs/trunk/lib/.cvsignore perl/modperl/docs/trunk/src/.cvsignore perl/modperl/docs/trunk/src/about/.cvsignore perl/modperl/docs/trunk/src/advocacy/.cvsignore perl/modperl/docs/trunk/src/bugs/.cvsignore perl/modperl/docs/trunk/src/contribute/.cvsignore perl/modperl/docs/trunk/src/contribute/docs/.cvsignore perl/modperl/docs/trunk/src/docs/.cvsignore perl/modperl/docs/trunk/src/docs/1.0/.cvsignore perl/modperl/docs/trunk/src/docs/1.0/api/.cvsignore perl/modperl/docs/trunk/src/docs/1.0/guide/.cvsignore perl/modperl/docs/trunk/src/docs/1.0/os/.cvsignore perl/modperl/docs/trunk/src/docs/1.0/os/win32/.cvsignore perl/modperl/docs/trunk/src/docs/2.0/.cvsignore perl/modperl/docs/trunk/src/docs/2.0/api/.cvsignore perl/modperl/docs/trunk/src/docs/2.0/devel/.cvsignore perl/modperl/docs/trunk/src/docs/2.0/os/.cvsignore perl/modperl/docs/trunk/src/docs/2.0/os/win32/.cvsignore perl/modperl/docs/trunk/src/docs/2.0/user/.cvsignore perl/modperl/docs/trunk/src/docs/general/.cvsignore perl/modperl/docs/trunk/src/docs/general/os/.cvsignore perl/modperl/docs/trunk/src/docs/general/os/win32/.cvsignore perl/modperl/docs/trunk/src/docs/offsite/.cvsignore perl/modperl/docs/trunk/src/docs/tutorials/.cvsignore perl/modperl/docs/trunk/src/download/.cvsignore perl/modperl/docs/trunk/src/help/.cvsignore perl/modperl/docs/trunk/src/jobs/.cvsignore perl/modperl/docs/trunk/src/maillist/.cvsignore perl/modperl/docs/trunk/src/outstanding/.cvsignore perl/modperl/docs/trunk/src/outstanding/stats/.cvsignore perl/modperl/docs/trunk/src/outstanding/success_stories/.cvsignore perl/modperl/docs/trunk/src/products/.cvsignore perl/modperl/docs/trunk/src/start/.cvsignore Deleted: /perl/modperl/docs/trunk/.cvsignore Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/.cvsignore?view=autorev=111673 == Deleted: /perl/modperl/docs/trunk/bin/.cvsignore Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/bin/.cvsignore?view=autorev=111673 == Deleted: /perl/modperl/docs/trunk/lib/.cvsignore Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/lib/.cvsignore?view=autorev=111673 == Deleted: /perl/modperl/docs/trunk/src/.cvsignore Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/.cvsignore?view=autorev=111673 == Deleted: /perl/modperl/docs/trunk/src/about/.cvsignore Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/about/.cvsignore?view=autorev=111673 == Deleted: /perl/modperl/docs/trunk/src/advocacy/.cvsignore Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/advocacy/.cvsignore?view=autorev=111673 == Deleted: /perl/modperl/docs/trunk/src/bugs/.cvsignore Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/bugs/.cvsignore?view=autorev=111673 == Deleted: /perl/modperl/docs/trunk/src/contribute/.cvsignore Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/contribute/.cvsignore?view=autorev=111673 == Deleted: /perl/modperl/docs/trunk/src/contribute/docs/.cvsignore Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/contribute/docs/.cvsignore?view=autorev=111673 == Deleted: /perl/modperl/docs/trunk/src/docs/.cvsignore Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/.cvsignore?view=autorev=111673 == Deleted: /perl/modperl/docs/trunk/src/docs/1.0/.cvsignore Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/1.0/.cvsignore?view=autorev=111673 == Deleted: /perl/modperl/docs/trunk/src/docs/1.0/api/.cvsignore Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/1.0/api/.cvsignore?view=autorev=111673 == Deleted: /perl/modperl/docs/trunk/src/docs/1.0/guide/.cvsignore Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/1.0/guide/.cvsignore?view
svn commit: r111573 - /perl/modperl/docs/trunk/src/docs/2.0/api/ModPerl/Util.pod
Author: stas Date: Fri Dec 10 20:04:57 2004 New Revision: 111573 URL: http://svn.apache.org/viewcvs?view=revrev=111573 Log: new API ModPerl::Util::current_perl_id(); Modified: perl/modperl/docs/trunk/src/docs/2.0/api/ModPerl/Util.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/ModPerl/Util.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/ModPerl/Util.pod?view=diffrev=111573p1=perl/modperl/docs/trunk/src/docs/2.0/api/ModPerl/Util.podr1=111572p2=perl/modperl/docs/trunk/src/docs/2.0/api/ModPerl/Util.podr2=111573 == --- perl/modperl/docs/trunk/src/docs/2.0/api/ModPerl/Util.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/ModPerl/Util.pod Fri Dec 10 20:04:57 2004 @@ -20,7 +20,9 @@ # removes a stash (.so, %INC{$stash}, etc.) as best as it can ModPerl::Util::unload_package($stash); - + + # current perl's address (0x92ac760 or 0x0 under non-threaded perl) + ModPerl::Util::current_perl_id(); @@ -58,6 +60,31 @@ =item since: 1.99_12 =back + + + + + + +=head2 Ccurrent_perl_id + +Return the memory address of the perl interpreter + + $perl_id = ModPerl::Util::current_perl_id(); + +=over 4 + +=item ret: C$perl_id ( string ) + +Under threaded perl returns something like: C0x92ac760 + +Under non-thread perl returns C0x0 + +=item since: 1.99_18 + +=back + +Mainly useful for debugging applications running under threaded-perl. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r111337 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod /perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.pod /perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod
Author: stas Date: Wed Dec 8 17:40:25 2004 New Revision: 111337 URL: http://svn.apache.org/viewcvs?view=revrev=111337 Log: new function server_shutdown_cleanup_register Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.pod perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod?view=diffrev=111337p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.podr1=111336p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.podr2=111337 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod Wed Dec 8 17:40:25 2004 @@ -47,8 +47,7 @@ $s-method_register('NEWGET'); # register server shutdown callback - $base_server_pool = Apache::ServerUtil::base_server_pool(); - $base_server_pool-cleanup_register(sub { Apache::OK }); + Apache::ServerUtil::server_shutdown_register_cleanup(sub { Apache::OK }); # do something only when the server restarts my $cnt = Apache::ServerUtil::restart_count(); @@ -188,22 +187,25 @@ -=head2 Cbase_server_pool +=head2 Cserver_shutdown_cleanup_register -Get the base server pool object: +Register server shutdown cleanup callback: - $base_server_pool = Apache::ServerUtil::base_server_pool(); + Apache::ServerUtil::server_shutdown_cleanup_register($sub); =over 4 -=item ret: Cbase_server_pool -( CLAPR::Pool object|docs::2.0::api::APR::Pool ) +=item arg1: C$sub ( CODE ref or SUB name ) + + + +=item ret: no return value =item since: 1.99_18 =back -This pool can be used to register a callback to be run once at the +This function can be used to register a callback to be run once at the server shutdown (compared to CLPerlChildExitHandler|docs::2.0::user::handlers::server/C_PerlChildExitHandler_ which will execute the callback for each exiting child process). @@ -212,13 +214,12 @@ run every time the server shuts down (or restarts), run the following code at the server startup: - $base_server_pool = Apache::ServerUtil::base_server_pool(); - $base_server_pool-cleanup_register(\do_my_cleanups); + Apache::ServerUtil::server_shutdown_cleanup_register(\do_my_cleanups); It's necessary to run this code at the server startup (normally -Fstartup.pl. Cleanup handlers registered after the +Fstartup.pl. The function will croak if run after the CLPerlPostConfigHandler|docs::2.0::user::handlers::server/C_PerlPostConfigHandler_ -phase will be silently ignored. +phase. Modified: perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.pod?view=diffrev=111337p1=perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.podr1=111336p2=perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.podr2=111337 == --- perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.pod Wed Dec 8 17:40:25 2004 @@ -68,7 +68,7 @@ To run something at the server shutdown and restart use a cleanup handler registered on -CLbase_server_pool()|docs::2.0::api::Apache::ServerUtil/C_base_server_pool_ +CLserver_shutdown_cleanup_register()|docs::2.0::api::Apache::ServerUtil/C_server_shutdown_cleanup_register_ in Fstartup.pl: #PerlRequire startup.pl @@ -76,8 +76,7 @@ use APR::Pool (); warn parent pid is $$\n; - $base_server_pool = Apache::ServerUtil::base_server_pool(); - $base_server_pool-cleanup_register(\cleanup); + Apache::ServerUtil::server_shutdown_cleanup_register((\cleanup); sub cleanup { warn server cleanup in $$\n } This is usually useful when some server-wide cleanup should be Modified: perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod?view=diffrev=111337p1=perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.podr1=111336p2=perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.podr2=111337 == --- perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.podWed Dec 8 17:40:25 2004 @@ -822,9 +822,9 @@ CLPerlChildExitHandler|docs::2.0::user::handlers::server/C_PerlChildExitHandler_. In order to register a cleanup handler to be run only once when the -main server (not each child process) shutsdown, you can register a -cleanup handler on the -CLbase_server_pool()|docs::2.0
svn commit: r111419 - /perl/modperl/docs/trunk/src/products/apache-modules.pod
Author: stas Date: Thu Dec 9 11:36:27 2004 New Revision: 111419 URL: http://svn.apache.org/viewcvs?view=revrev=111419 Log: John D Groenveld ported Apache::AuthenURL and Apache::DBILogin for mod_perl2. Modified: perl/modperl/docs/trunk/src/products/apache-modules.pod Modified: perl/modperl/docs/trunk/src/products/apache-modules.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/products/apache-modules.pod?view=diffrev=111419p1=perl/modperl/docs/trunk/src/products/apache-modules.podr1=111418p2=perl/modperl/docs/trunk/src/products/apache-modules.podr2=111419 == --- perl/modperl/docs/trunk/src/products/apache-modules.pod (original) +++ perl/modperl/docs/trunk/src/products/apache-modules.pod Thu Dec 9 11:36:27 2004 @@ -158,6 +158,7 @@ Module NameRequired Dist Package Apache::ASP Apache-ASP-2.55 + Apache::DBILogin Apache-DBILogin-2.03 Apache::AuthCookieApache-AuthCookie-3.05 Apache::AuthExpireApache-AuthExpire-0.38 Apache::AuthNetLDAP Apache-AuthNetLDAP-0.25 @@ -166,6 +167,7 @@ Apache::AuthenNTLMApache-AuthenNTLM-2.04 Apache::AuthenPasswd Apache-AuthenPasswd-0.12 Apache::AuthenSmb Apache-AuthenSmb-0.70 + Apache::AuthenURL Apache-AuthenURL-2.02 Apache::AuthzNIS Apache-AuthzNIS-0.11 Apache::AuthzNetLDAP Apache-AuthzNetLDAP-0.07 Apache::AuthzPasswd Apache-AuthzPasswd-0.11 @@ -183,6 +185,8 @@ Apache::VMonitor Apache-VMonitor-2.0 CGI CGI.pm-2.93 CGI::Cookie CGI.pm-2.93 (comes in the CGI dist) + + - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r111443 - /perl/modperl/docs/trunk/src/docs/general/testing/testing.pod
Author: stas Date: Thu Dec 9 14:46:22 2004 New Revision: 111443 URL: http://svn.apache.org/viewcvs?view=revrev=111443 Log: typo: Contributed by: Fred Moyer [EMAIL PROTECTED] Modified: perl/modperl/docs/trunk/src/docs/general/testing/testing.pod Modified: perl/modperl/docs/trunk/src/docs/general/testing/testing.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/general/testing/testing.pod?view=diffrev=111443p1=perl/modperl/docs/trunk/src/docs/general/testing/testing.podr1=111442p2=perl/modperl/docs/trunk/src/docs/general/testing/testing.podr2=111443 == --- perl/modperl/docs/trunk/src/docs/general/testing/testing.pod (original) +++ perl/modperl/docs/trunk/src/docs/general/testing/testing.podThu Dec 9 14:46:22 2004 @@ -90,7 +90,7 @@ A simpler approach is to use the CTest::More module in your test scripts. This module offers many useful test functions, including Cdiag, a function that automatically escapes and passes strings to -Cprint to bypass CTest::Harnes: +Cprint to bypass CTest::Harness: use Test::More; diag testing : feature foo\n; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r111179 - /perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod
Author: stas Date: Tue Dec 7 16:26:51 2004 New Revision: 79 URL: http://svn.apache.org/viewcvs?view=revrev=79 Log: add a xref to -DAP_UNSAFE_ERROR_LOG_UNESCAPED Modified: perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod?view=diffrev=79p1=perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.podr1=78p2=perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.podr2=79 == --- perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod Tue Dec 7 16:26:51 2004 @@ -343,6 +343,13 @@ +=head2 error_log is Full of Escaped \n, \t, etc. + +It's an Apache feature, see +CL-DAP_UNSAFE_ERROR_LOG_UNESCAPED|docs::2.0::user::install::install/Apache. + + + =head2 Problems with Catching Signals - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r110082 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod
Author: stas Date: Mon Dec 6 21:29:39 2004 New Revision: 110082 URL: http://svn.apache.org/viewcvs?view=revrev=110082 Log: add some xrefs Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod?view=diffrev=110082p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.podr1=110081p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.podr2=110082 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod Mon Dec 6 21:29:39 2004 @@ -32,13 +32,18 @@ Apache::SizeLimit::setmin(6000); Apache::SizeLimit::setmax_unshared(5000); -This will work in places where you are using CSetHandler perl-script -or anywhere you enable CPerlOptions +GlobalRequest. If you want to -avoid turning on CGlobalRequest, you can pass an CApache::RequestRec -object as the second argument in these subs: +This will work in places where you are using CLSetHandler +perl-script|docs::2.0::user::config::config/C_perl_script_ or +anywhere you enable CLPerlOptions ++GlobalRequest|docs::2.0::user::config::config/C_GlobalRequest_. If +you want to avoid turning on CGlobalRequest, you can pass an +CLApache::RequestRec|docs::2.0::api::Apache::RequestRec object as +the second argument in these subs: - my $r = shift; + my $r = shift; # if you don't have $r already Apache::SizeLimit::setmax(12000, $r); + Apache::SizeLimit::setmin(6000, $r); + Apache::SizeLimit::setmax_unshared(5000, $r); Since checking the process size can take a few system calls on some platforms (e.g. linux), you may want to only check the process size - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r109986 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod /perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg
Author: stas Date: Mon Dec 6 08:35:40 2004 New Revision: 109986 URL: http://svn.apache.org/viewcvs?view=revrev=109986 Log: perrin has ported Apache::SizeLimit Added: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg Added: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod?view=autorev=109986 == --- (empty file) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod Mon Dec 6 08:35:40 2004 @@ -0,0 +1,172 @@ +=head1 NAME + +Apache::SizeLimit - Because size does matter. + +=head1 Synopsis + +This module allows you to kill off Apache httpd processes if they grow +too large. You can choose to set up the process size limiter to check +the process size on every request: + + # in your startup.pl, or a Perl section: + use Apache::SizeLimit; + # sizes are in KB + $Apache::SizeLimit::MAX_PROCESS_SIZE = 12000; # 12MB + $Apache::SizeLimit::MIN_SHARE_SIZE= 6000; # 6MB + $Apache::SizeLimit::MAX_UNSHARED_SIZE = 5000; # 5MB + + # in your httpd.conf: + PerlCleanupHandler Apache::SizeLimit + +Or you can just check those requests that are likely to get big, such +as CGI requests. This way of checking is also easier for those who +are mostly just running CGI scripts under CModPerl::Registry: + + # in your script: + use Apache::SizeLimit; + # sizes are in KB + Apache::SizeLimit::setmax(12000); + Apache::SizeLimit::setmin(6000); + Apache::SizeLimit::setmax_unshared(5000); + +Since checking the process size can take a few system calls on some +platforms (e.g. linux), you may want to only check the process size +every N times. To do so, put this in your startup.pl or CGI: + + $Apache::SizeLimit::CHECK_EVERY_N_REQUESTS = 2; + +This will only check the process size every other time the process +size checker is called. + +=head1 Description + +This module is highly platform dependent, please read the +LCAVEATS|/Caveats section. It also does not work under threaded +MPMs, as explained below. + +This module was written in response to questions on the mod_perl +mailing list on how to tell the httpd process to exit if it gets too +big. + +Actually there are two big reasons your httpd children will grow. +First, it could have a bug that causes the process to increase in size +dramatically, until your system starts swapping. Second, it may just +do things that requires a lot of memory, and the more different kinds +of requests your server handles, the larger the httpd processes grow +over time. + +This module will not really help you with the first problem. For that +you should probably look into Apache::Resource or some other means of +setting a limit on the data size of your program. BSD-ish systems +have setrlimit() which will croak your memory gobbling processes. +However it is a little violent, terminating your process in +mid-request. + +This module attempts to solve the second situation where your process +slowly grows over time. The idea is to check the memory usage after +every request, and if it exceeds a threshold, exit gracefully. + +By using this module, you should be able to discontinue using the +Apache configuration directive BMaxRequestsPerChild, although you +can use both if you are feeling paranoid. Personally, I just use the +technique shown in this module and set my MaxRequestsPerChild value to +0. + +=head1 Shared Memory Options + +In addition to simply checking the total size of a process, this +module can factor in how much of the memory used by the process is +actually being shared by copy-on-write. If you don't understand how +memory is shared in this way, take a look at the extensive +documentation at http://perl.apache.org/. + +You can take advantage of the shared memory information by setting a +minimum shared size and/or a maximum unshared size. Experience on one +heavily trafficked mod_perl site showed that setting maximum unshared +size and leaving the others unset is the most effective policy. This +is because it only kills off processes that are truly using too much +physical RAM, allowing most processes to live longer and reducing the +process churn rate. + +=head1 Caveats + +This module is platform dependent, since finding the size of a process +is pretty different from OS to OS, and some platforms may not be +supported. In particular, the limits on minimum shared memory and +maximum shared memory are currently only supported on Linux and BSD. +If you can contribute support for another OS, please do. + +Currently supported OSes: + +=over 4 + +=item linux + +For linux we read the process size out of /proc/self/status. This +seems to be fast enough on modern systems. If you are worried about +performance, try setting the CHECK_EVERY_N_REQUESTS option. + +=item Solaris 2.6 and above
svn commit: r109989 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod
Author: stas Date: Mon Dec 6 09:00:33 2004 New Revision: 109989 URL: http://svn.apache.org/viewcvs?view=revrev=109989 Log: various corrections and massages Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod?view=diffrev=109989p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.podr1=109988p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.podr2=109989 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod Mon Dec 6 09:00:33 2004 @@ -41,7 +41,7 @@ =head1 Description This module is highly platform dependent, please read the -LCAVEATS|/Caveats section. It also does not work under threaded +LCaveats|/Caveats section. It also does not work under threaded MPMs, as explained below. This module was written in response to questions on the mod_perl @@ -56,21 +56,22 @@ over time. This module will not really help you with the first problem. For that -you should probably look into Apache::Resource or some other means of -setting a limit on the data size of your program. BSD-ish systems -have setrlimit() which will croak your memory gobbling processes. -However it is a little violent, terminating your process in -mid-request. +you should probably look into +CLApache::Resource|docs::2.0::api::Apache::Resource or some other +means of setting a limit on the data size of your program. BSD-ish +systems have Csetrlimit() which will croak your memory gobbling +processes. However it is a little violent, terminating your process +in mid-request. This module attempts to solve the second situation where your process slowly grows over time. The idea is to check the memory usage after every request, and if it exceeds a threshold, exit gracefully. By using this module, you should be able to discontinue using the -Apache configuration directive BMaxRequestsPerChild, although you -can use both if you are feeling paranoid. Personally, I just use the -technique shown in this module and set my MaxRequestsPerChild value to -0. +Apache configuration directive CMaxRequestsPerChild, although you +can use both if you are feeling paranoid. Most users use the +technique shown in this module and set their CMaxRequestsPerChild +value to C0. =head1 Shared Memory Options @@ -78,7 +79,7 @@ module can factor in how much of the memory used by the process is actually being shared by copy-on-write. If you don't understand how memory is shared in this way, take a look at the extensive -documentation at http://perl.apache.org/. +documentation at http://perl.apache.org/docs/. You can take advantage of the shared memory information by setting a minimum shared size and/or a maximum unshared size. Experience on one @@ -102,13 +103,13 @@ =item linux -For linux we read the process size out of /proc/self/status. This +For linux we read the process size out of F/proc/self/statm. This seems to be fast enough on modern systems. If you are worried about -performance, try setting the CHECK_EVERY_N_REQUESTS option. +performance, try setting the CCHECK_EVERY_N_REQUESTS option. =item Solaris 2.6 and above -For solaris we simply retrieve the size of /proc/self/as, which +For Solaris we simply retrieve the size of F/proc/self/as, which contains the address-space image of the process, and convert to KB. Shared memory calculations are not supported. @@ -118,19 +119,20 @@ =item *BSD* -Uses BSD::Resource::getrusage() to determine process size. This is -pretty efficient (a lot more efficient than reading it from the /proc -fs anyway). +Uses CBSD::Resource::getrusage() to determine process size. This is +pretty efficient (a lot more efficient than reading it from the +I/proc fs anyway). =item AIX? -Uses BSD::Resource::getrusage() to determine process size. Not sure -if the shared memory calculations will work or not. AIX users? +Uses CBSD::Resource::getrusage() to determine process size. Not +sure if the shared memory calculations will work or not. AIX users? =item Win32 -Uses Win32::API to access process memory information. Win32::API can -be installed under ActiveState perl using the supplied ppm utility. +Uses CWin32::API to access process memory information. +CWin32::API can be installed under ActiveState perl using the +supplied ppm utility. =back @@ -144,10 +146,11 @@ =head1 Threaded MPMs -At this time, Apache::SizeLimit does not support use under threaded -MPMs, including worker. This is because there is no efficient way -to get the memory usage of a thread, or make a thread exit cleanly. -Suggestions and patches are welcome
svn commit: r109990 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod
Author: stas Date: Mon Dec 6 09:05:27 2004 New Revision: 109990 URL: http://svn.apache.org/viewcvs?view=revrev=109990 Log: markup fixes Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod?view=diffrev=109990p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.podr1=109989p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.podr2=109990 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod Mon Dec 6 09:05:27 2004 @@ -163,14 +163,14 @@ =head1 Author -Doug Bagley doug+modperl bagley.org, channeling Procrustes. +Doug Bagley Eltdoug+modperl bagley.orgEgt, channeling Procrustes. -Brian Moseley ix maz.org: Solaris 2.6 support +Brian Moseley Eltix maz.orgEgt: Solaris 2.6 support -Doug Steinwand and Perrin Harkins perrin elem.com: added support for -shared memory and additional diagnostic info +Doug Steinwand and Perrin Harkins Eltperrin elem.comEgt: added +support for shared memory and additional diagnostic info -Matt Phillips mphillips virage.com and Mohamed Hendawi -mhendawi virage.com: Win32 support +Matt Phillips Eltmphillips virage.comEgt and Mohamed Hendawi +Eltmhendawi virage.comEgt: Win32 support =cut Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod?view=diffrev=109990p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.podr1=109989p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.podr2=109990 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod Mon Dec 6 09:05:27 2004 @@ -33,7 +33,7 @@ handler the IEnvironment menu option will show only the environment under that handler. To see the environment seen by handlers running under the -CLperl-script|docs::2.0::user::config::config/C_perl_script_ +CLperl-script|docs::2.0::user::config::config/C_perl_script_ core handler, configure CApache::Status as: Location /perl-status - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r109991 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod
Author: stas Date: Mon Dec 6 09:10:02 2004 New Revision: 109991 URL: http://svn.apache.org/viewcvs?view=revrev=109991 Log: graphviz has its own site now Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod?view=diffrev=109991p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.podr1=109990p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.podr2=109991 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod Mon Dec 6 09:10:02 2004 @@ -143,7 +143,7 @@ the Cdot program. Dot is part of the graph visualization toolkit from ATT: -Chttp://www.research.att.com/sw/tools/graphviz/). +http://www.graphviz.org/. BWARNING: Some graphs may produce very large images, some graphs may produce no image if CB::Graph's output is incorrect. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r109992 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod
Author: stas Date: Mon Dec 6 09:16:28 2004 New Revision: 109992 URL: http://svn.apache.org/viewcvs?view=revrev=109992 Log: more polishing Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod?view=diffrev=109992p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.podr1=109991p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.podr2=109992 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/SizeLimit.pod Mon Dec 6 09:16:28 2004 @@ -2,6 +2,8 @@ Apache::SizeLimit - Because size does matter. + + =head1 Synopsis This module allows you to kill off Apache httpd processes if they grow @@ -20,7 +22,8 @@ Or you can just check those requests that are likely to get big, such as CGI requests. This way of checking is also easier for those who -are mostly just running CGI scripts under CModPerl::Registry: +are mostly just running CGI scripts under +CLModPerl::Registry|docs::2.0::api::ModPerl::Registry: # in your script: use Apache::SizeLimit; @@ -38,11 +41,14 @@ This will only check the process size every other time the process size checker is called. + + + =head1 Description This module is highly platform dependent, please read the -LCaveats|/Caveats section. It also does not work under threaded -MPMs, as explained below. +LCaveats|/Caveats section. It also does not work Lunder threaded +MPMs|/Supported_MPMs. This module was written in response to questions on the mod_perl mailing list on how to tell the httpd process to exit if it gets too @@ -73,6 +79,10 @@ technique shown in this module and set their CMaxRequestsPerChild value to C0. + + + + =head1 Shared Memory Options In addition to simply checking the total size of a process, this @@ -89,6 +99,10 @@ physical RAM, allowing most processes to live longer and reducing the process churn rate. + + + + =head1 Caveats This module is platform dependent, since finding the size of a process @@ -97,7 +111,11 @@ maximum shared memory are currently only supported on Linux and BSD. If you can contribute support for another OS, please do. -Currently supported OSes: + + + + +=head2 Supported OSes =over 4 @@ -144,7 +162,7 @@ -=head1 Threaded MPMs +=head2 Supported MPMs At this time, CApache::SizeLimit does not support use under threaded MPMs. This is because there is no efficient way to get the memory @@ -154,10 +172,14 @@ + + =head1 Copyright mod_perl 2.0 and its core modules are copyrighted under The Apache Software License, Version 2.0. + + - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r110018 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod
Author: stas Date: Mon Dec 6 12:11:46 2004 New Revision: 110018 URL: http://svn.apache.org/viewcvs?view=revrev=110018 Log: more cleanups Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod?view=diffrev=110018p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.podr1=110017p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.podr2=110018 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod Mon Dec 6 12:11:46 2004 @@ -24,8 +24,8 @@ Configure like so: Location /perl-status - SetHandler modperl - PerlResponseHandler Apache::Status + SetHandler modperl + PerlResponseHandler Apache::Status /Location Notice that under the @@ -37,21 +37,21 @@ core handler, configure CApache::Status as: Location /perl-status - SetHandler perl-script - PerlResponseHandler Apache::Status + SetHandler perl-script + PerlResponseHandler Apache::Status /Location Other modules can plugin a menu item like so: require Apache::Module; Apache::Status-menu_item( - 'DBI' = DBI connections, #item for Apache::DBI module - sub { - my($r, $q) = @_; #request and CGI objects - my(@strings); - push @strings, blobs of html; - return [EMAIL PROTECTED]; #return an array ref - } + 'DBI' = DBI connections, #item for Apache::DBI module + sub { + my($r, $q) = @_; #request and CGI objects + my(@strings); + push @strings, blobs of html; + return [EMAIL PROTECTED]; #return an array ref + } ) if Apache::Module::loaded('Apache::Status'); BWARNING: CApache::Status must be loaded before these modules via - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r110020 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Resource.pod
Author: stas Date: Mon Dec 6 12:13:14 2004 New Revision: 110020 URL: http://svn.apache.org/viewcvs?view=revrev=110020 Log: add the missing copyright note Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Resource.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Resource.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Resource.pod?view=diffrev=110020p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Resource.podr1=110019p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Resource.podr2=110020 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Resource.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Resource.podMon Dec 6 12:13:14 2004 @@ -50,14 +50,21 @@ To set reasonable defaults for all RLIMITs, add this to your httpd.conf: - PerlSetEnv PERL_RLIMIT_DEFAULTS On - PerlModule Apache::Resource + PerlSetEnv PERL_RLIMIT_DEFAULTS On + PerlModule Apache::Resource =head1 See Also BSD::Resource(3), setrlimit(2) + + + +=head1 Copyright + +mod_perl 2.0 and its core modules are copyrighted under +The Apache Software License, Version 2.0. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r110043 - /perl/modperl/docs/trunk/src/outstanding/success_stories/config.cfg
Author: stas Date: Mon Dec 6 14:38:35 2004 New Revision: 110043 URL: http://svn.apache.org/viewcvs?view=revrev=110043 Log: success story by Ken Simpson [EMAIL PROTECTED] Modified: perl/modperl/docs/trunk/src/outstanding/success_stories/config.cfg Modified: perl/modperl/docs/trunk/src/outstanding/success_stories/config.cfg Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/outstanding/success_stories/config.cfg?view=diffrev=110043p1=perl/modperl/docs/trunk/src/outstanding/success_stories/config.cfgr1=110042p2=perl/modperl/docs/trunk/src/outstanding/success_stories/config.cfgr2=110043 == --- perl/modperl/docs/trunk/src/outstanding/success_stories/config.cfg (original) +++ perl/modperl/docs/trunk/src/outstanding/success_stories/config.cfg Mon Dec 6 14:38:35 2004 @@ -27,6 +27,7 @@ 'imdb.com.pod', 'isoldmyhouse.com.pod', 'm4m4sex.com.pod', +'mailchannels.com.pod', 'openscape.org.pod', 'presto.pod', 'rent.com.pod', - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r110044 - /perl/modperl/docs/trunk/src/outstanding/success_stories/mailchannels.com.pod /perl/modperl/docs/trunk/src/outstanding/success_stories/mailchannels.com.txt
Author: stas Date: Mon Dec 6 14:41:31 2004 New Revision: 110044 URL: http://svn.apache.org/viewcvs?view=revrev=110044 Log: forget to add the story Added: perl/modperl/docs/trunk/src/outstanding/success_stories/mailchannels.com.pod perl/modperl/docs/trunk/src/outstanding/success_stories/mailchannels.com.txt Added: perl/modperl/docs/trunk/src/outstanding/success_stories/mailchannels.com.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/outstanding/success_stories/mailchannels.com.pod?view=autorev=110044 == --- (empty file) +++ perl/modperl/docs/trunk/src/outstanding/success_stories/mailchannels.com.pod Mon Dec 6 14:41:31 2004 @@ -0,0 +1,59 @@ +### +# WARNING: Do not edit this file! +# If you do the changes will be lost! +# Instead edit the corresponding .txt file and run make.pl +# +# Don't forget to commit the changes to both .txt and the generated +# .pod to cvs, since others won't run the local make.pl + + +=head1 NAME + +Running email through mod_perl 2.0 + +=head1 Ken Simpson Eltksimpson (at) ghpbjymdczr.mailchannels.comEgt exclaimed: + +=over + +=item * + +Date: Mon, 6 Dec 2004 14:15:25 -0800 + +=item * + +Traffic: Low (in development) + +=item * + +URL: http://www.mailchannels.com/opensource/ + +=back + + We have been using mod_perl successfully for several months now as a + flexible email proxy -- we just wrapped Net::Server::Mail and with a + few additional hacks and it worked. Matt Sergeant did the same thing + with qpsmtpd and I have heard that the performance results were + initially very promising + (http://msgs.securepoint.com/cgi-bin/get/qmail0411/120/1/1/1.html). + + More details of our hack (patches etc.) are at + http://www.mailchannels.com/opensource and + http://search.cpan.org/dist/Apache-SMTP/lib/Apache/SMTP.pm. + + IMHO, using mod_perl as a general application server is a great + idea. For us there really was no other viable alternative. We looked + at POE, Sendmail's milter API, Net::Server and of course qpsmtpd but + the reliability, portability, and scalability of Apache was what + caused us to go through the effort of making our bits work on + mod_perl. + + To configure a mail server, it's just a matter of adding a VirtualHost + section to the Apache configuration et voila. And as packages such as + mod_throttle move over to Apache 2, we will gain the wonderment of a + solid resource management tool for mail traffic. Joy! + + Regards, + Ken + +=cut + Added: perl/modperl/docs/trunk/src/outstanding/success_stories/mailchannels.com.txt Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/outstanding/success_stories/mailchannels.com.txt?view=autorev=110044 == --- (empty file) +++ perl/modperl/docs/trunk/src/outstanding/success_stories/mailchannels.com.txt Mon Dec 6 14:41:31 2004 @@ -0,0 +1,32 @@ +URL: http://www.mailchannels.com/opensource/ +Date: Mon, 6 Dec 2004 14:15:25 -0800 +Subject: Running email through mod_perl 2.0 +From: Ken Simpson [EMAIL PROTECTED] +Traffic: Low (in development) +Success Story: + +We have been using mod_perl successfully for several months now as a +flexible email proxy -- we just wrapped Net::Server::Mail and with a +few additional hacks and it worked. Matt Sergeant did the same thing +with qpsmtpd and I have heard that the performance results were +initially very promising +(http://msgs.securepoint.com/cgi-bin/get/qmail0411/120/1/1/1.html). + +More details of our hack (patches etc.) are at +http://www.mailchannels.com/opensource and +http://search.cpan.org/dist/Apache-SMTP/lib/Apache/SMTP.pm. + +IMHO, using mod_perl as a general application server is a great +idea. For us there really was no other viable alternative. We looked +at POE, Sendmail's filter API, Net::Server and of course qpsmtpd but +the reliability, portability, and scalability of Apache was what +caused us to go through the effort of making our bits work on +mod_perl. + +To configure a mail server, it's just a matter of adding a VirtualHost +section to the Apache configuration et voila. And as packages such as +mod_throttle move over to Apache 2, we will gain the wonderment of a +solid resource management tool for mail traffic. Joy! + +Regards, +Ken \ No newline at end of file - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r109887 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod
Author: stas Date: Sun Dec 5 08:39:34 2004 New Revision: 109887 URL: http://svn.apache.org/viewcvs?view=revrev=109887 Log: missing require Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod?view=diffrev=109887p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.podr1=109886p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.podr2=109887 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Status.pod Sun Dec 5 08:39:34 2004 @@ -40,6 +40,7 @@ Other modules can plugin a menu item like so: + require Apache::Module; Apache::Status-menu_item( 'DBI' = DBI connections, #item for Apache::DBI module sub { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r109599 - /perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod
Author: stas Date: Thu Dec 2 16:16:32 2004 New Revision: 109599 URL: http://svn.apache.org/viewcvs?view=revrev=109599 Log: fix pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod?view=diffrev=109599p1=perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.podr1=109598p2=perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.podr2=109599 == --- perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod Thu Dec 2 16:16:32 2004 @@ -303,7 +303,7 @@ -=head2 PerlPostConfigHandler +=head2 CPerlPostConfigHandler The Ipost_config phase happens right after Apache has processed the configuration files, before any child processes were spawned (which @@ -331,7 +331,7 @@ } As you can see, its arguments are identical to the -LIopen_logs|/C_PerlOpenLogsHandler_ phase's handler. In this +ILopen_logs|/C_PerlOpenLogsHandler_ phase's handler. In this example handler we don't do much, but logging that the configuration was completed and returning right away. @@ -356,7 +356,7 @@ -=head2 PerlChildInitHandler +=head2 CPerlChildInitHandler The Ichild_init phase happens immediately after the child process is spawned. Each child process (not a thread!) will run the hooks of this @@ -396,7 +396,7 @@ -=head2 PerlChildExitHandler +=head2 CPerlChildExitHandler Opposite to the Ichild_init phase, the Ichild_exit phase is executed before the child process exits. Notice that it happens only - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r109601 - /perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod
Author: stas Date: Thu Dec 2 16:29:02 2004 New Revision: 109601 URL: http://svn.apache.org/viewcvs?view=revrev=109601 Log: typos Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod?view=diffrev=109601p1=perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.podr1=109600p2=perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.podr2=109601 == --- perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/handlers/server.pod Thu Dec 2 16:29:02 2004 @@ -429,6 +429,10 @@ + + + + =head1 Startup Apache Commands Some notes on how Apache start/restart Apache commands affect @@ -437,7 +441,7 @@ META: not sure this is the best place for this section, but start some notes here. -Apache reparses Fhttpd.conf at least once for Beach of the +Apache re-parses Fhttpd.conf at least once for Beach of the following commands (and will run any mod_perl code found in it). @@ -478,10 +482,13 @@ =item httpd -k stop -Similarly to Chttpd -k restart you may encounter all kind of issue +Similarly to Chttpd -k restart you may encounter all kind of issues here, due to the CSIGTERM signal. =back + + + - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r109606 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod
Author: stas Date: Thu Dec 2 16:46:50 2004 New Revision: 109606 URL: http://svn.apache.org/viewcvs?view=revrev=109606 Log: fix the example Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod?view=diffrev=109606p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.podr1=109605p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.podr2=109606 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod Thu Dec 2 16:46:50 2004 @@ -213,7 +213,7 @@ code at the server startup: $base_server_pool = Apache::ServerUtil::base_server_pool(); - $base_server_pool-cleanup_register(do_my_cleanups()); + $base_server_pool-cleanup_register(\do_my_cleanups); It's necessary to run this code at the server startup (normally Fstartup.pl. Cleanup handlers registered after the - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r109610 - /perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.pod
Author: stas Date: Thu Dec 2 16:52:21 2004 New Revision: 109610 URL: http://svn.apache.org/viewcvs?view=revrev=109610 Log: cleanup Modified: perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.pod?view=diffrev=109610p1=perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.podr1=109609p2=perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.podr2=109610 == --- perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/coding/coding.pod Thu Dec 2 16:52:21 2004 @@ -80,8 +80,6 @@ $base_server_pool-cleanup_register(\cleanup); sub cleanup { warn server cleanup in $$\n } -CLbase_server_pool()|docs::2.0::api::Apache::ServerUtil/C_base_server_pool_. - This is usually useful when some server-wide cleanup should be performed when the server is stopped or restarted. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r109402 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Resource.pod /perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg
Author: stas Date: Wed Dec 1 16:05:06 2004 New Revision: 109402 URL: http://svn.apache.org/viewcvs?view=revrev=109402 Log: add the doc for a new module Added: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Resource.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg Added: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Resource.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Resource.pod?view=autorev=109402 == --- (empty file) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Resource.podWed Dec 1 16:05:06 2004 @@ -0,0 +1,76 @@ +=head1 NAME + +Apache::Resource - Limit resources used by httpd children + + + +=head1 Synopsis + + PerlModule Apache::Resource + # set child memory limit in megabytes + # default is 64 Meg + PerlSetEnv PERL_RLIMIT_DATA 32:48 + + # linux does not honor RLIMIT_DATA + # RLIMIT_AS (address space) will work to limit the size of a process + PerlSetEnv PERL_RLIMIT_AS 32:48 + + # set child cpu limit in seconds + # default is 360 seconds + PerlSetEnv PERL_RLIMIT_CPU 120 + + PerlChildInitHandler Apache::Resource + + + + +=head1 Description + +CApache::Resource uses the CBSD::Resource module, which uses the C +function Csetrlimit to set limits on system resources such as memory +and cpu usage. + +Any CRLIMIT operation available to limit on your system can be set +by defining that operation as an environment variable with a CPERL_ +prefix. See your system Csetrlimit manpage for available resources +which can be limited. + +The following limit values are in megabytes: CDATA, CRSS, +CSTACK, CFSIZE, CCORE, CMEMLOCK; all others are treated as +their natural unit. + +If the value of the variable is of the form CS:H, CS is treated as +the soft limit, and CH is the hard limit. If it is just a single +number, it is used for both soft and hard limits. + + + + +=head1 Defaults + +To set reasonable defaults for all RLIMITs, add this to your httpd.conf: + + PerlSetEnv PERL_RLIMIT_DEFAULTS On + PerlModule Apache::Resource + + + +=head1 See Also + +BSD::Resource(3), setrlimit(2) + + + +=head1 Author + +Doug MacEachern + + + + + +=cut + + + + Modified: perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg?view=diffrev=109402p1=perl/modperl/docs/trunk/src/docs/2.0/api/config.cfgr1=109401p2=perl/modperl/docs/trunk/src/docs/2.0/api/config.cfgr2=109402 == --- perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/config.cfg Wed Dec 1 16:05:06 2004 @@ -34,6 +34,7 @@ Apache/RequestIO.pod Apache/RequestRec.pod Apache/RequestUtil.pod +Apache/Resource.pod Apache/Response.pod Apache/ServerRec.pod Apache/ServerUtil.pod - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r106927 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.pod /perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod
Author: stas Date: Mon Nov 29 08:24:14 2004 New Revision: 106927 URL: http://svn.apache.org/viewcvs?view=revrev=106927 Log: update filename compat changes in the code Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.pod perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.pod?view=diffrev=106927p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.podr1=106926p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.podr2=106927 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/compat.pod Mon Nov 29 08:24:14 2004 @@ -115,6 +115,8 @@ =item * CApache::RequestRec::notes +=item * CApache::RequestRec::filename + =item * CApache::RequestRec::finfo =item * CApache::Connection::local_addr Modified: perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod?view=diffrev=106927p1=perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.podr1=106926p2=perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.podr2=106927 == --- perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/porting/compat.podMon Nov 29 08:24:14 2004 @@ -947,6 +947,24 @@ CLApache::RequestRec|docs::2.0::api::Apache::RequestRec/main__ manpage. + + +=head2 C$r-Egtfilename + +When a new Cfilename() is assigned Apache 2.0 doesn't update the +finfo structure like it did in Apache 1.3. If the old behavior is +desired Apache::compat's +Loverriding|docs::2.0::api::Apache::compat/Compatibility_Functions_Colliding_with_mod_perl_2_0_API +can be used. Otherwise one should explicitly update the finfo struct +when desired as explained in the +CLfilename|docs::2.0::api::Apache::RequestRec/C_filename_ API +entry. + + + + + + =head2 C$r-Egtfinfo As Apache 2.0 doesn't provide an access to the stat structure, but - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r106657 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Log.pod
Author: stas Date: Fri Nov 26 12:15:11 2004 New Revision: 106657 URL: http://svn.apache.org/viewcvs?view=revrev=106657 Log: notice() messages ignore the LogLevel value and always get logged by Apache design (unless error log is set to syslog) Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Log.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Log.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Log.pod?view=diffrev=106657p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Log.podr1=106656p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Log.podr2=106657 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Log.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/Log.pod Fri Nov 26 12:15:11 2004 @@ -639,6 +639,10 @@ See LLogLevel Methods|/LogLevel_Methods. +Though Apache treats Cnotice() calls as special. The message is +always logged regardless the value of CErrorLog, unless the error +log is set to use syslog. (For details see httpd-2.0/server/log.c.) + =head2 Cwarn - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r106660 - /perl/modperl/docs/trunk/src/download/source.pod
Author: stas Date: Fri Nov 26 12:20:06 2004 New Revision: 106660 URL: http://svn.apache.org/viewcvs?view=revrev=106660 Log: mp2 sources are no longer in doug's CPAN dir Modified: perl/modperl/docs/trunk/src/download/source.pod Modified: perl/modperl/docs/trunk/src/download/source.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/download/source.pod?view=diffrev=106660p1=perl/modperl/docs/trunk/src/download/source.podr1=106659p2=perl/modperl/docs/trunk/src/download/source.podr2=106660 == --- perl/modperl/docs/trunk/src/download/source.pod (original) +++ perl/modperl/docs/trunk/src/download/source.pod Fri Nov 26 12:20:06 2004 @@ -80,10 +80,10 @@ =item * CPAN Currently the released versions include C_ in them (e.g., -mod_perl-1.99_08.tar.gz), so they are invisible via CCPAN.pm or -http://search.cpan.org/. But they are available from Doug's CPAN dir: +mod_perl-1.99_17.tar.gz), so they are invisible via CCPAN.pm or +http://search.cpan.org/. But they are available from CPAN dir: -http://www.cpan.org/modules/by-module/Apache/DOUGM/ +http://search.cpan.org/dist/mod_perl/ =back - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r106664 - /perl/modperl/docs/trunk/src/download/source.pod
Author: stas Date: Fri Nov 26 14:16:41 2004 New Revision: 106664 URL: http://svn.apache.org/viewcvs?view=revrev=106664 Log: - apr* should be checked out into httpd-2.1/srclib - use https:// by default (every time a developer uses http:// he gets to to dump 80MB of crap to re-download again with https//) Modified: perl/modperl/docs/trunk/src/download/source.pod Modified: perl/modperl/docs/trunk/src/download/source.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/download/source.pod?view=diffrev=106664p1=perl/modperl/docs/trunk/src/download/source.podr1=106663p2=perl/modperl/docs/trunk/src/download/source.podr2=106664 == --- perl/modperl/docs/trunk/src/download/source.pod (original) +++ perl/modperl/docs/trunk/src/download/source.pod Fri Nov 26 14:16:41 2004 @@ -117,12 +117,14 @@ To download the svn version of httpd-2.0 and bring it to the same state of the distribution package, execute the following commands: +(Use http:// instead of https:// if you don't plan to commit changes) + For httpd 2.0 (the stable Apache 2.0 branch): - % svn checkout http://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x/ httpd-2.0 + % svn checkout https://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x/ httpd-2.0 % cd httpd-2.0/srclib - % svn checkout http://svn.apache.org/repos/asf/apr/apr/branches/0.9.x/ apr - % svn checkout http://svn.apache.org/repos/asf/apr/apr-util/branches/0.9.x/ apr-util + % svn checkout https://svn.apache.org/repos/asf/apr/apr/branches/0.9.x/ apr + % svn checkout https://svn.apache.org/repos/asf/apr/apr-util/branches/0.9.x/ apr-util % cd .. % ./buildconf @@ -136,9 +138,9 @@ For httpd 2.1 (the development Apache 2.0 branch) use this instead: % svn checkout https://svn.apache.org/repos/asf/httpd/httpd/trunk/ httpd-2.1 - % cd srclib - % svn checkout http://svn.apache.org/repos/asf/apr/apr/trunk/ apr - % svn checkout http://svn.apache.org/repos/asf/apr/apr-util/trunk/ apr-util + % cd httpd-2.1/srclib + % svn checkout https://svn.apache.org/repos/asf/apr/apr/trunk/ apr + % svn checkout https://svn.apache.org/repos/asf/apr/apr-util/trunk/ apr-util - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r106577 - /perl/modperl/docs/trunk/src/docs/2.0/user/handlers/http.pod
Author: stas Date: Thu Nov 25 07:41:15 2004 New Revision: 106577 URL: http://svn.apache.org/viewcvs?view=revrev=106577 Log: mention mod_rpaf Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/http.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/handlers/http.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/handlers/http.pod?view=diffrev=106577p1=perl/modperl/docs/trunk/src/docs/2.0/user/handlers/http.podr1=106576p2=perl/modperl/docs/trunk/src/docs/2.0/user/handlers/http.podr2=106577 == --- perl/modperl/docs/trunk/src/docs/2.0/user/handlers/http.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/handlers/http.pod Thu Nov 25 07:41:15 2004 @@ -1687,6 +1687,29 @@ +=head1 Misc Notes + +These items will need to be extended and integrated in this or other +HTTP related documents: + +=over + +=item * front-end back-end setup: mod_proxy+X-Forwarded-For + +apache-1.3: + +frontend: mod_proxy_add_forward http://develooper.com/code/mpaf/ + +backend: mod_rpaf (reverse proxy add forward): +http://stderr.net/apache/rpaf/ + +apache-2.x: + +frontend: mod_proxy + +backend: mod_rpaf: http://stderr.net/apache/rpaf/ + +=back - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r106595 - /perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod
Author: stas Date: Thu Nov 25 11:14:15 2004 New Revision: 106595 URL: http://svn.apache.org/viewcvs?view=revrev=106595 Log: add an extra note stating that 'SetHandler modperl' doesn't reset %ENV Modified: perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod?view=diffrev=106595p1=perl/modperl/docs/trunk/src/docs/2.0/user/config/config.podr1=106594p2=perl/modperl/docs/trunk/src/docs/2.0/user/config/config.podr2=106595 == --- perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/config/config.pod Thu Nov 25 11:14:15 2004 @@ -739,6 +739,11 @@ which always populate Cr-Egtsubprocess_env, but this doesn't happen until the Apache Ifixups phase, which could be too late for your needs. +Notice also that this handler does not reset C%ENV after each +request's response phase, so if one response handler has changed +C%ENV without localizing the change, it'll affect other handlers +running after it as well. + =head3 Cperl-script Configured as: @@ -776,10 +781,10 @@ =item * -Several special global Perl variables are saved before the handler is -called and restored afterwards (similar to mod_perl 1.0). This -includes: C%ENV, C@INC, C$/, CSTDOUT's C$| and CEND blocks -array (CPL_endav). +Several special global Perl variables are saved before the response +handler is called and restored afterwards (similar to mod_perl +1.0). This includes: C%ENV, C@INC, C$/, CSTDOUT's C$| and +CEND blocks array (CPL_endav). =item * - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r106364 - /perl/modperl/docs/trunk/src/docs/2.0/devel/debug/c.pod /perl/modperl/docs/trunk/src/docs/2.0/user/help/help.pod
Author: stas Date: Tue Nov 23 16:34:15 2004 New Revision: 106364 Modified: perl/modperl/docs/trunk/src/docs/2.0/devel/debug/c.pod perl/modperl/docs/trunk/src/docs/2.0/user/help/help.pod Log: rewrite/update the dealing with segfaults documents Modified: perl/modperl/docs/trunk/src/docs/2.0/devel/debug/c.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/devel/debug/c.pod?view=diffrev=106364p1=perl/modperl/docs/trunk/src/docs/2.0/devel/debug/c.podr1=106363p2=perl/modperl/docs/trunk/src/docs/2.0/devel/debug/c.podr2=106364 == --- perl/modperl/docs/trunk/src/docs/2.0/devel/debug/c.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/devel/debug/c.pod Tue Nov 23 16:34:15 2004 @@ -13,9 +13,15 @@ Lmod_perl-specific functionality flow|docs::2.0::devel::core::mod_perl_specific. + + + + + =head1 Debug notes -META: needs more organization +META: needs more organization (if you grok any of the following, +patches are welcome) META: there is a new directive CoreDumpDirectory in 2.0.45, need to check whether we should mention it. @@ -44,6 +50,8 @@ + + =head2 Entering Single Server Mode Most of the time, when debugging Apache or mod_perl, one needs to @@ -56,6 +64,8 @@ + + =head2 Setting gdb Breakpoints with mod_perl Built as DSO If mod_perl is built as a DSO module, you cannot set the breakpoint in @@ -100,6 +110,13 @@ % gdb /home/stas/httpd-2.0/bin/httpd -command \ `pwd`/t/.gdb-jump-to-init + + + + + + + =head2 Starting the Server Fast under gdb When the server is started under gdb, it first loads the symbol tables @@ -254,6 +271,11 @@ which will block till the server starts responding, and only then will try to run the test. + + + + + =head2 Precooked gdb Startup Scripts Here are a few startup scripts you can use with gdb to accomplish one @@ -313,199 +335,155 @@ =back -=head1 Analyzing Dumped Core Files -META: need to review (unfinished) + + + + +=head1 Analyzing Dumped Core Files When your application dies with the ISegmentation fault error (which -generates a CSIGSEGV signal) and optionally generates a Icore file -you can use Cgdb or a similar debugger to find out what caused the -ISegmentation fault (or Isegfault as we often call it). +is generated by the CSIGSEGV signal) and optionally generates a +Fcore file you can use Cgdb or a similar debugger to find out what +caused the ISegmentation fault (or a Isegfault as we often call +it). + + + + =head2 Getting Ready to Debug -In order to debug the Icore file we may need to recompile Perl and -mod_perl with debugging symbols inside. Usually you have to recompile -only mod_perl, but if the Icore dump happens in the Ilibmodperl.so -library and you want to see the whole backtrace, you probably want to -recompile Perl as well. - -Recompile Perl with I-DDEBUGGING during the ./Configure stage (or -even better with I-Doptimize=-g which in addition to adding the -C-DDEBUGGING option, adds the I-g options which allows you to -debug the Perl interpreter itself). +In order to debug the Fcore file you may need to recompile Perl and +mod_perl with debugging symbols. Usually you have to recompile only +mod_perl, but if the Fcore dump happens in the Ilibperl.so library +and you want to see the whole backtrace, you need to recompile Perl as +well. It may also occur inside httpd or 3rd party module, in which +case you will need to recompile those. The following notes should help +to accomplish the right thing: + +=over -After recompiling Perl, recompile mod_perl with CMP_DEBUG=1 during -the IMakefile.PL stage. +=item * mod_perl + +rebuild mod_perl with CMP_DEBUG=1. + + % perl Makefile.PL MP_DEBUG=1 ... + % make make test make install Building mod_perl with CPERL_DEBUG=1 will: =over -=item 1 +=item 1 -add `-g' to EXTRA_CFLAGS +add C-g to CEXTRA_CFLAGS -=item 1 +=item 1 -turn on MP_TRACE (tracing) +turn on CMP_TRACE (tracing) -=item 1 +=item 1 -Set PERL_DESTRUCT_LEVEL=2 +Set CPERL_DESTRUCT_LEVEL=2 -=item 1 +=item 1 -Link against Clibperld if -e $Config{archlibexp}/CORE/libperld$Config{lib_ext} +Link against Flibperld.so if +F$Config{archlibexp}/CORE/libperld$Config{lib_ext} exists. =back -If you build a static mod_perl, remember that during Imake install -Apache strips all the debugging symbols. To prevent this you should -use the Apache I--without-execstrip C./configure option. So if you -configure Apache via mod_perl, you should do: - - panic% perl Makefile.PL USE_APACI=1 \ -APACI_ARGS='--without-execstrip' [other options] - -Alternatively you can copy the unstripped binary manually. For example -we did this to give us an Apache binary called Chttpd_perl which -contains debugging symbols: +=item * httpd - panic# cp httpd-2.x/httpd /home/httpd/httpd_perl/bin/httpd_perl +If the segfault happens inside Iap_ or Iapr_ calls, rebuild httpd +with C--enable
svn commit: r106429 - /perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod
Author: stas Date: Wed Nov 24 08:52:16 2004 New Revision: 106429 URL: http://svn.apache.org/viewcvs?view=revrev=106429 Log: Problems with Catching Signals under Perl 5.8.x+ Modified: perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod?view=diffrev=106429p1=perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.podr1=106428p2=perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.podr2=106429 == --- perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod Wed Nov 24 08:52:16 2004 @@ -363,6 +363,68 @@ + +=head2 Problems with Catching Signals under Perl 5.8.x+ + +Starting from 5.8.0 Perl delays signal delivery, making signals +safe. This change may break previously working code. For more +information please see: +http://search.cpan.org/dist/perl/pod/perl58delta.pod#Safe_Signals and +http://search.cpan.org/dist/perl/pod/perlipc.pod#Deferred_Signals_%28Safe_Signals%29 + +For example if you had the alarm code: + + eval { + local $SIG{ALRM} = sub { die alarm }; + alarm 3; + sleep 10; # in reality some real code should be here + alarm 0; + }; + die the operation was aborted if $@ and $@ =~ /alarm/; + +It may not work anymore. Starting from 5.8.1 it's possible to +circumvent the safeness of signals, by setting: + + $ENV{PERL_SIGNALS} = unsafe; + +as soon as you start your program (e.g. in the case of mod_perl in +startup.pl). + +For more information please refer to: +http://search.cpan.org/dist/perl/pod/perl581delta.pod#Unsafe_signals_again_available +and http://search.cpan.org/dist/perl/pod/perlrun.pod#PERL_SIGNALS + +But most likely this is not what you want (since that circumvention +makes your code unsafe). The proper solution that works correctly +across all 5.8.x+ versions is to use the POSIX signal handling, which +bypasses perl signal mechanism. Our example should be rewritten as +follows: + + use POSIX qw(SIGALRM); + eval { + POSIX::sigaction(SIGALRM, + POSIX::SigAction-new(sub { die alarm })) +or die Error setting SIGALRM handler: $!\n; + alarm 3; + sleep 10; # in reality some real code should be here + alarm 0; + }; + die the operation was aborted if $@ and $@ =~ /alarm/; + +For more details see: +http://search.cpan.org/dist/perl/ext/POSIX/POSIX.pod#POSIX::SigAction + + + + + + + + + + + + =head2 APR::Socket::recv: (11) Resource temporarily unavailable at ... You need to make sure that the socket is set to Lblocking IO - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r106476 - /perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod
Author: stas Date: Wed Nov 24 14:03:17 2004 New Revision: 106476 URL: http://svn.apache.org/viewcvs?view=revrev=106476 Log: make: don't know how to make dynamic was fixed in 1.99_17 Modified: perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod?view=diffrev=106476p1=perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.podr1=106475p2=perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.podr2=106476 == --- perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/troubleshooting/troubleshooting.pod Wed Nov 24 14:03:17 2004 @@ -38,25 +38,6 @@ -=head2 make: don't know how to make dynamic. Stop - - make: don't know how to make dynamic. Stop - make: stopped in xs/APR/aprext - -That's a MakeMaker bug on FreeBSD, OpenBSD and NetBSD (an may be other -platforms). See: http://rt.cpan.org/NoAuth/Bug.html?id=7417 - -It was reported that using Cgmake instead of Cmake solves the -problem. - -Another workaround, which allows continuing using Cmake, is to -change Fxs/APR/aprext/Makefile.PL: - - -my @skip = qw(dynamic test); - +my @skip = qw(test); - push @skip, q{static} - unless (Apache::Build::BUILD_APREXT); - - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r106479 - /perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod
Author: stas Date: Wed Nov 24 14:23:14 2004 New Revision: 106479 URL: http://svn.apache.org/viewcvs?view=revrev=106479 Log: typo fix Submitted by: Jon Forrest [EMAIL PROTECTED] Modified: perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod Modified: perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod?view=diffrev=106479p1=perl/modperl/docs/trunk/src/docs/2.0/user/install/install.podr1=106478p2=perl/modperl/docs/trunk/src/docs/2.0/user/install/install.podr2=106479 == --- perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod Wed Nov 24 14:23:14 2004 @@ -372,7 +372,7 @@ =head3 Static mod_perl Before you proceed make sure that Apache 2.0 has been downloaded and -extracted. mod_perl Bcannot be build before that. +extracted. mod_perl Bcannot be built before that. To enable statically linking mod_perl into Apache, use the CLMP_USE_STATIC|/MP_USE_STATIC flag like this: - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r106486 - /perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.pod
Author: stas Date: Wed Nov 24 15:02:27 2004 New Revision: 106486 URL: http://svn.apache.org/viewcvs?view=revrev=106486 Log: extra notes on Out of memory problem Submitted by: Brian Hirt [EMAIL PROTECTED] Modified: perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.pod Modified: perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.pod?view=diffrev=106486p1=perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.podr1=106485p2=perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.podr2=106486 == --- perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.pod (original) +++ perl/modperl/docs/trunk/src/docs/1.0/guide/troubleshooting.pod Wed Nov 24 15:02:27 2004 @@ -667,38 +667,88 @@ See also LOut of memory|/Out_of_memory_ + + + + =head2 Out of memory! If something goes really wrong with your code, Perl may die with an -Out of memory! message and/or Callback called exit. Common causes of this -are never-ending loops, deep recursion, or calling an -undefined subroutine. Here's one way to catch the problem: See Perl's -INSTALL document for this item: - - =item -DPERL_EMERGENCY_SBRK - - If PERL_EMERGENCY_SBRK is defined, running out of memory need not be a - fatal error: a memory pool can allocated by assigning to the special - variable $^M. See perlvar(1) for more details. - -If you compile with that option and add 'Cuse Apache::Debug level -=Egt 4;' to your Perl script, it will allocate the C$^M emergency -pool and the C$SIG{__DIE__} handler will call CCarp::confess, -giving you a stack trace which should reveal where the problem is. -See the CApache::Resource module for ways to control httpd -processes. +Out of memory! message and/or Callback called exit. Common causes +of this are never-ending loops, deep recursion, or calling an +undefined subroutine. + +If you are using perl 5.005 or later, and perl is compiled to use it's +own malloc rutines, you can trap out of memory errors by setting aside +an extra memory pool in the special variable C$^M. By default perl +uses the operating system malloc for many popular systems, so unless +you build perl with 'usemymalloc=y' you probably wont be able to use +C$^M. Run: + + % perl -V:usemymalloc + +if your mod_perl was compiled against perl which uses internal +Cmalloc() the answer will be 'y'. + +Here is an explanation of C$^M from the Cperlvar manpage: + + By default, running out of memory is an untrap- pable, fatal + error. However, if suitably built, Perl can use the contents of + $^M as an emergency memory pool after die()ing. Suppose that + your Perl were compiled with -DPERL_EMERGENCY_SBRK and used + Perl's malloc. Then + + $^M = 'a' x (1 16); + + would allocate a 64K buffer for use in an emer- gency. See the + INSTALL file in the Perl distribu- tion for information on how + to enable this option. To discourage casual use of this + advanced feature, there is no English long name for this + variable. + +If your perl installation supports $^M and you add 'Cuse +Apache::Debug level =Egt 4;' to your Perl script, it will allocate +the C$^M emergency pool and the C$SIG{__DIE__} handler will call +CCarp::confess, giving you a stack trace which should reveal where +the problem is. See the CApache::Resource module for ways to +control httpd processes. Note that Perl 5.005 and later have CPERL_EMERGENCY_SBRK turned on by default. -The other trick is to have a startup script initialize -CCarp::confess, like so: +Another trick is to have a startup script initialize CCarp::confess, +like so: use Carp (); eval { Carp::confess(init) }; this way, when the real problem happens, CCarp::confess doesn't eat memory in the emergency pool (C$^M). + +Some other mod_perl users have reported that this works well for them: + + # Allocate 64K as an emergency memory pool for use in out of + # memory situation + $^M = 0x00 x 65536; + + # Little trick to initialize this routine here so that in the case + # of OOM, compiling this routine doesn't eat memory from the + # emergency memory pool $^M + use CGI::Carp (); + eval { CGI::Carp::confess('init') }; + + # Importing CGI::Carp sets $main::SIG{__DIE__} = \CGI::Carp::die; + # Override that to additionally give a stack backtrace + $main::SIG{__DIE__} = \CGI::Carp::confess; + +Discussion of C$^M has come up on PerlMonks, and there is +speculation that C$^M is a forgotten feature that's not well +supported. See http://perlmonks.org/index.pl?node_id=287850 for more +information. + + + + =head2 server reached MaxClients setting, consider raising the MaxClients setting - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r106308 - /perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod
Author: stas Date: Tue Nov 23 07:52:51 2004 New Revision: 106308 Modified: perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod Log: whitespaces are significant in pod! Modified: perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod?view=diffrev=106308p1=perl/modperl/docs/trunk/src/docs/2.0/user/install/install.podr1=106307p2=perl/modperl/docs/trunk/src/docs/2.0/user/install/install.podr2=106308 == --- perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/install/install.pod Tue Nov 23 07:52:51 2004 @@ -167,7 +167,7 @@ $ svn checkout http://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x/ httpd-2.0 $ cd httpd-2.0/srclib - $ svn checkout http://svn.apache.org/repos/asf/apr/apr/branches/0.9.x/ apr + $ svn checkout http://svn.apache.org/repos/asf/apr/apr/branches/0.9.x/ apr $ svn checkout http://svn.apache.org/repos/asf/apr/apr-util/branches/0.9.x/ apr-util $ cd .. $ ./buildconf @@ -303,7 +303,7 @@ $ ssh svn.apache.org $ svnpasswd - + You can also try the latest cvs snapshot: http://cvs.apache.org/snapshots/modperl-2.0/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r106323 - /perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.pod
Author: stas Date: Tue Nov 23 10:03:50 2004 New Revision: 106323 Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.pod Log: updates from Geoff Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.pod Url: http://svn.apache.org/viewcvs/perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.pod?view=diffrev=106323p1=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.podr1=106322p2=perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.podr2=106323 == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/RequestRec.pod Tue Nov 23 10:03:50 2004 @@ -604,9 +604,13 @@ =item since: 1.99_12 =back +after map-to-storage runs (such as from a +PerlFixupHandler). -Note that if you change the filename and expect Apache to serve it, -you need to update its Cstat record, like so: +Note that if you change the filename after the +CLPerlMapToStorageHandler|docs::2.0::user::handlers::http/PerlMapToStorageHandler +phase was run and expect Apache to serve it, you need to update its +Cstat record, like so: use Apache::RequestRec (); use APR::Finfo (); @@ -678,7 +682,7 @@ use APR::Finfo (); use APR::Const -compile = qw(FINFO_NORM); - + my $finfo = APR::Finfo::stat(__FILE__, APR::FINFO_NORM, $r-pool); $r-finfo($finfo); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r106061 - perl/modperl/docs/trunk/tmpl/custom/html
Author: stas Date: Sat Nov 20 19:32:29 2004 New Revision: 106061 Modified: perl/modperl/docs/trunk/tmpl/custom/html/headers Log: remove the sex keywords Modified: perl/modperl/docs/trunk/tmpl/custom/html/headers == --- perl/modperl/docs/trunk/tmpl/custom/html/headers(original) +++ perl/modperl/docs/trunk/tmpl/custom/html/headersSat Nov 20 19:32:29 2004 @@ -3,7 +3,7 @@ meta = { name = { author = 'docs-dev (at) perl.apache.org', -keywords = 'mod_perl modperl perl cgi apache webserver speed fast guide mod_perl asf parent apache guide help info faq mod_perl installation cgi troubleshooting help no sex speedup child rules free open source OSS mod_perl speed suck apache guide manual troubleshoot cgi fast apache sexy', +keywords = 'mod_perl modperl perl cgi apache webserver speed fast guide mod_perl asf parent apache guide help info faq mod_perl installation cgi troubleshooting help no speedup child process rules free open source OSS mod_perl speed apache guide manual troubleshoot cgi fast apache', classification = 'information', }, 'http-equiv' = { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r105935 - in perl/modperl/docs/trunk: lib/DocSet src src/docs/1.0/guide src/docs/2.0/devel src/docs/2.0/user src/search
Author: stas Date: Fri Nov 19 21:23:25 2004 New Revision: 105935 Modified: perl/modperl/docs/trunk/lib/DocSet/Config.pm perl/modperl/docs/trunk/src/config.cfg perl/modperl/docs/trunk/src/docs/1.0/guide/config.cfg perl/modperl/docs/trunk/src/docs/2.0/devel/config.cfg perl/modperl/docs/trunk/src/docs/2.0/user/config.cfg perl/modperl/docs/trunk/src/search/swish.conf Log: - inherit the parent 'copy_skip' attribute if not set in the child - revert the change adding copy_skip to sub-trees Modified: perl/modperl/docs/trunk/lib/DocSet/Config.pm == --- perl/modperl/docs/trunk/lib/DocSet/Config.pm(original) +++ perl/modperl/docs/trunk/lib/DocSet/Config.pmFri Nov 19 21:23:25 2004 @@ -221,6 +221,8 @@ : '.'; } +# inherit the 'copy_skip' attribute if not set in the child +$self-{copy_skip} ||= $parent_o-{copy_skip} || []; } Modified: perl/modperl/docs/trunk/src/config.cfg == --- perl/modperl/docs/trunk/src/config.cfg (original) +++ perl/modperl/docs/trunk/src/config.cfg Fri Nov 19 21:23:25 2004 @@ -76,7 +76,7 @@ copy_skip = [ '(?:^|\/)\.svn(?:\/|$)', # skip svn control files -'#|~', # skip emacs backup files +'#|~', # skip emacs backup files ], dir = { @@ -98,7 +98,7 @@ # search path for pods, etc. must put more specific paths first! search_paths = [qw( docs/2.0/api -docs/2.0 +docs/2.0 docs/1.0/api docs/1.0 docs Modified: perl/modperl/docs/trunk/src/docs/1.0/guide/config.cfg == --- perl/modperl/docs/trunk/src/docs/1.0/guide/config.cfg (original) +++ perl/modperl/docs/trunk/src/docs/1.0/guide/config.cfg Fri Nov 19 21:23:25 2004 @@ -48,8 +48,4 @@ code )], -copy_skip = [ -'\.svn', -], - ); Modified: perl/modperl/docs/trunk/src/docs/2.0/devel/config.cfg == --- perl/modperl/docs/trunk/src/docs/2.0/devel/config.cfg (original) +++ perl/modperl/docs/trunk/src/docs/2.0/devel/config.cfg Fri Nov 19 21:23:25 2004 @@ -46,8 +46,4 @@ debug/code )], -copy_skip = [ -'\.svn', -], - ); Modified: perl/modperl/docs/trunk/src/docs/2.0/user/config.cfg == --- perl/modperl/docs/trunk/src/docs/2.0/user/config.cfg(original) +++ perl/modperl/docs/trunk/src/docs/2.0/user/config.cfgFri Nov 19 21:23:25 2004 @@ -62,10 +62,6 @@ handlers/*.jpg )], -copy_skip = [ -'\.svn', -], - changes = 'Changes.pod', ); Modified: perl/modperl/docs/trunk/src/search/swish.conf == --- perl/modperl/docs/trunk/src/search/swish.conf (original) +++ perl/modperl/docs/trunk/src/search/swish.conf Fri Nov 19 21:23:25 2004 @@ -18,3 +18,6 @@ IgnoreFirstChar _:- IgnoreLastChar _:- +BuzzWords $/ $\ $| $? $! $@ $$ $ $ $( $) $0 $[ $] $^C $^I $^M $^S $^T $^V $^W $^X @_ $c $r $s +IgnoreFirstChar \' +IgnoreLastChar .,;'\ \ No newline at end of file - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r105938 - perl/modperl/docs/trunk/src/search
Author: stas Date: Fri Nov 19 21:56:09 2004 New Revision: 105938 Modified: perl/modperl/docs/trunk/src/search/swish.conf Log: revert the last change, committed by mistake Modified: perl/modperl/docs/trunk/src/search/swish.conf == --- perl/modperl/docs/trunk/src/search/swish.conf (original) +++ perl/modperl/docs/trunk/src/search/swish.conf Fri Nov 19 21:56:09 2004 @@ -18,6 +18,3 @@ IgnoreFirstChar _:- IgnoreLastChar _:- -BuzzWords $/ $\ $| $? $! $@ $$ $ $ $( $) $0 $[ $] $^C $^I $^M $^S $^T $^V $^W $^X @_ $c $r $s -IgnoreFirstChar \' -IgnoreLastChar .,;'\ \ No newline at end of file - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r105894 - perl/modperl/docs/trunk/src/docs/2.0/api/Apache
Author: stas Date: Fri Nov 19 14:54:04 2004 New Revision: 105894 Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod Log: fix typo Modified: perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod == --- perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod (original) +++ perl/modperl/docs/trunk/src/docs/2.0/api/Apache/ServerUtil.pod Fri Nov 19 14:54:04 2004 @@ -125,7 +125,7 @@ =item arg1: C$component ( string ) -The string componennt to add +The string component to add =item ret: no return value - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: modperl-docs/src/docs/2.0/user/troubleshooting troubleshooting.pod
stas2004/11/08 15:06:41 Modified:src/docs/2.0/user/troubleshooting troubleshooting.pod Log: document the issue with BOMs Revision ChangesPath 1.30 +41 -0 modperl-docs/src/docs/2.0/user/troubleshooting/troubleshooting.pod Index: troubleshooting.pod === RCS file: /home/cvs/modperl-docs/src/docs/2.0/user/troubleshooting/troubleshooting.pod,v retrieving revision 1.29 retrieving revision 1.30 diff -u -u -r1.29 -r1.30 --- troubleshooting.pod 4 Nov 2004 03:41:20 - 1.29 +++ troubleshooting.pod 8 Nov 2004 23:06:41 - 1.30 @@ -315,6 +315,47 @@ +=head2 Registry scripts fail to load with: Unrecognized character \xEF at ... + +Certain editors (in particular on win32) may add a UTF-8 Byte Order +Marker (BOM: http://www.unicode.org/faq/utf_bom.html#BOM) at the +beginning of the file. Since +CLModPerl::RegistryCooker|docs::2.0::api::ModPerl::RegistryCooker +adds extra code in front of the original script, before compiling it, +it creates a situation where BOM appears past the beginning of the +file, which is why the error: + + Unrecognized character \xEF at ... + +is thrown by Perl. + +The simplest solution is to configure your editor to not add BOMs (or +switch to another editor which allows you to do that). + +You could also subclass +CLModPerl::RegistryCooker|docs::2.0::api::ModPerl::RegistryCooker +or its existing subclasses to try to remove BOM in +ModPerl::RegistryCooker::read_script(): + +# remove BOM +${$self-{CODE}} =~ s/^(?: +\xef\xbb\xbf | +\xfe\xff | +\xff\xfe | +\x00\x00\xfe\xff | +\xff\xfe\x00\x00 +)//x; + +but do you really want to add an overhead of this operation multiple +times, when you could just change the source file once? Probably +not. It was also reported that on win32 the above s/// doesn't work. + + + + + + + =head1 Runtime - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]