Re: Minor doc fix for Apache::TestRequest
Hi, Am Dienstag 19 Oktober 2004 00:15 schrieb Stas Bekman: Ops, sorry. hard to explain in english, here is a example: perl -we 'sub have_lwp {} my $redir = have_lwp ? [qw(GET HEAD POST)] : 1;' % perl -we 'sub have_lwp {}; my $redir = have_lwp ? [qw(GET HEAD POST)] : 1;' Search pattern not terminated at -e line 1. Hmm, I wonder where does it find a search pattern there Perl thinks ? is the start of the ?PATTERN? operator. See perldoc perlop for more on it. I never used it. And I'm amazed too. -- Boris
Re: Minor doc fix for Apache::TestRequest
Boris Zentner wrote: Hi, Am Dienstag 19 Oktober 2004 00:15 schrieb Stas Bekman: Ops, sorry. hard to explain in english, here is a example: perl -we 'sub have_lwp {} my $redir = have_lwp ? [qw(GET HEAD POST)] : 1;' % perl -we 'sub have_lwp {}; my $redir = have_lwp ? [qw(GET HEAD POST)] : 1;' Search pattern not terminated at -e line 1. Hmm, I wonder where does it find a search pattern there Perl thinks ? is the start of the ?PATTERN? operator. See perldoc perlop for more on it. I never used it. And I'm amazed too. Hmm, I wasn't even aware of the existance of this operator. That sounds like a parser bug to me. Care to ping p5p about it? At least this caveat needs to be documented in perl docs I believe (if it isn't already). -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: Fix: Apache::TestRequest::redirect_ok
Hi, Am Dienstag 19 Oktober 2004 01:12 schrieb Stas Bekman: Boris Zentner wrote: [...] Older ones use ( $self, $request ) newer use ( $self, $request, $response); This routine forward the redirect_ok call to the underlying class(LWP::UserAgent, but maybe not always) if possible else, fallback to RedirectOK. If I'm not mistaken David was the last who was working on this code. David, could you please comment on this code, commit if it's good, etc.? Boris, aren't you dropping the case where !$have_lwp? No, in that case I return $RedirectOK. I think that at least the return 0 if $request-method eq 'POST'; line is wrong, since I clearly have no chance to redirect a post request. --- a/Apache-Test-1.14/lib/Apache/TestRequest.pmThu Sep 30 05:32:13 2004 +++ b/Apache-Test-1.14/lib/Apache/TestRequest.pmMon Oct 18 15:35:52 2004 @@ -199,8 +199,11 @@ $RedirectOK = 1; sub redirect_ok { -my($self, $request) = @_; -return 0 if $request-method eq 'POST'; +#my($self, $request) = @_; +if ( $have_lwp ) { +my $s = $_[0]-can('SUPER::redirect_ok'); +goto $s if $s; +} $RedirectOK; } Have a nice day. -- Boris -- Boris
Re: cvs commit: httpd-test/perl-framework/Apache-Test Changes
On Oct 18, 2004, at 5:06 PM, [EMAIL PROTECTED] wrote: add new test_config make target, equivalent to t/TEST -conf, and make it a prerequisite for the cmodules make target. now you can 'make cmodules' to build the things in c-modules/ without running t/TEST -conf first. Uh, what? Can you tell me what this does, Geoff, so I can figure out whether it needs to be implemented for TestMB, too? Thanks, David
Re: Fix: Apache::TestRequest::redirect_ok
On Oct 18, 2004, at 4:52 PM, Boris Zentner wrote: No, in that case I return $RedirectOK. I think that at least the return 0 if $request-method eq 'POST'; line is wrong, since I clearly have no chance to redirect a post request. I just left it that way because that the way it was when I started playing with it. It never made sense to me that there would be a difference in redirection between GET and POST requests. Ask Doug. ;-) Regards, David
outdated docs ( testing.html )
Hi, while browsing http://perl.apache.org/docs/general/testing/testing.html, I discovered that the page describe the have function. But the Changelog of A::T says the have function is removed in falvor of need. -- Boris
Re: Fix: Apache::TestRequest::redirect_ok
David Wheeler wrote: On Oct 18, 2004, at 4:52 PM, Boris Zentner wrote: No, in that case I return $RedirectOK. I think that at least the return 0 if $request-method eq 'POST'; line is wrong, since I clearly have no chance to redirect a post request. I just left it that way because that the way it was when I started playing with it. It never made sense to me that there would be a difference in redirection between GET and POST requests. Ask Doug. ;-) Is it because you can't really do redirects on real POST requests? The body will get lost, isn't it? -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: outdated docs ( testing.html )
Boris Zentner wrote: Hi, while browsing http://perl.apache.org/docs/general/testing/testing.html, I discovered that the page describe the have function. But the Changelog of A::T says the have function is removed in falvor of need. it wasn't removed, it was replaced by need. and the original behavior of have has changed not to push the skip reasons. Please feel free to improve the docs, but if you do, please post a patch against testing.pod (so one probably need to do s/have/need/ and mention have as something to use when one doesn't want the skip reason to be added). http://perl.apache.org/contribute/index.html Thanks Boris. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: Fix: Apache::TestRequest::redirect_ok
On Oct 19, 2004, at 5:22 AM, Stas Bekman wrote: Is it because you can't really do redirects on real POST requests? The body will get lost, isn't it? No, we do them all the time in Bricolage. Regards, David
Re: Fix: Apache::TestRequest::redirect_ok
David Wheeler wrote: On Oct 19, 2004, at 5:22 AM, Stas Bekman wrote: Is it because you can't really do redirects on real POST requests? The body will get lost, isn't it? No, we do them all the time in Bricolage. In which case, can you please review Boris' patch and commit it if you think it's good? As I haven't coded and haven't used much this feature, I'd rather let somebody who is more familiar with it do the decision. If it breaks something, we can always fix that later. And of course when changing something it's a good idea to add a new test which exercises that fix. Thanks. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: Mod_Proxy Counting Bug(s)?
Mladen Turk wrote: NormW wrote: Well It's not a bug since It's not finished :). Not finished? Not a bug then, as you suggest! I meant: the received/transferred counting logic is not finished, and I doubt if it's worth to be finished after all. At least as far as I can see with proxy_ajp, this is about its only 'issue' I've found, so I thought it was near enough to being finished. Well that's excellent. Glad that it works on Netware too. Regards, MT. Greetings again, Some testing of proxy_http found the 'Acc' and 'Rd' counters were producing counts consistent with what could be found in the network packets. The 'Wr' counter was showing (approximately) twice the 'visible' amount in the packets forwarded to the Apache server. A check of proxy_http.c source showed the following at lines 488-490: if (transfered != -1) conn-worker-s-transfered += transfered; conn-worker-s-transfered += transfered; which seems an 'anomoly'...? I also noticed a difference between proxy_ajp and proxy_http that might not be intentional, but will mention that in a separate post. Cheers, Norm
Mod_Proxy - proxy_ajp and proxy_http difference intended?
Greetings All, Testing the Apache21 CVS using proxy_ajp and proxy_http: When using proxy_ajp with the following configuration: Proxy balancer://test1 BalancerMember ajp://localhost:9009 /Proxy Location /admin ProxyPass balancer://test1 /Location If I send a URL to the Apache of /admin, then '/admin' is forwarded to Tomcat and the login page is displayed. However, when using proxy_http with the following configuration: Proxy balancer://test1 BalancerMember http://test.com.au:80 /Proxy Location /manuald ProxyPass balancer://test1 /Location If I send a URL to the Apache of /manuald, then only '/' is forwarded to the second Apache server in the GET. To get proxy_http to work correctly I have change the configuration to: Proxy balancer://test1 BalancerMember http://test.com.au:80 /Proxy Location /manuald ProxyPass balancer://test1/manuald /Location Curious if this difference in operation is intended? Cheers, Norm
Mod_Proxy suggestion
Hey all, I have a suggestion for a feature that may fall into the category of mod_proxy. Now, I'm no apache programmer however I have attempted to write scripts that implement this in my server to little avail. What I propose is written into mod_proxy (or another module of similar effect) is a usage accounting function that can assist administrators in controling their bandwidth usage when users use the connection via the proxy. In addition to this, a per-user usage accounting system could be implemented. What does the apache community think of this? Feasable? -- (`-''-/).___..--''`-._ `6_ 6 ) `-. ( ).`-.__.`) (_Y_.)' ._ ) `._ `. ``-..-' _..`--'_..-_/ /--'_.' ,' (il),-'' (li),' ((!.-' Jason! Go to this site and make moneys for nothing: http://www.emailcash.com.au/join.asp?refer=F72476
Re: Apache with Security Processor - Interesting
On Thu, Oct 14, 2004 at 10:03:50AM -0700, Madhusudan Mathihalli wrote: Well.. not exactly based on my experience (may be I'm wrong or worked around something) Here's what I did: 1. Enable loading of 'dynamic' engine by default 2. Specify SSLCryptoDevice my_engine 3. Put libmy_engine.so in apache/lib 4. set SHLIB_PATH/LD_LIBRARY_PATH in apachectl to point to apache/lib This enabled me to start up Apache with the configured crypto engine. I think the only limitation here is : Is this with OpenSSL 0.9.7 or .8? Best I can tell this won't work out of the box with 0.9.7, though if you made a bunch of changes in (1) of course that's great. What changes did you make? joe
Re: Mod_Proxy suggestion
Jason Rigby wrote: I have a suggestion for a feature that may fall into the category of mod_proxy. Now, I'm no apache programmer however I have attempted to write scripts that implement this in my server to little avail. What I propose is written into mod_proxy (or another module of similar effect) is a usage accounting function that can assist administrators in controling their bandwidth usage when users use the connection via the proxy. In addition to this, a per-user usage accounting system could be implemented. What does the apache community think of this? Feasable? It's feasible, but doesn't fall into the mod_proxy category per se. The way you would do this is by writing an Apache filter to control the output of the server. This could be used on any content served by Apache, including CGI, etc. Regards, Graham -- smime.p7s Description: S/MIME Cryptographic Signature
RE: Is there a limit to using with-module directive ???
If it is a limit, then how do I add multiple modules ??? -Original Message- From: Rici Lake [mailto:[EMAIL PROTECTED] Sent: Monday, October 18, 2004 7:08 PM To: [EMAIL PROTECTED] Subject: Re: Is there a limit to using with-module directive ??? On 18-Oct-04, at 9:03 PM, Bennett, Tony - CNF wrote: It only builds the module specified in the last --with-module directive. Is this a limitation with that directive ??? Yes, the directive only handles one module.
Re: Apache HTTP Server 1.3.32 RC Tarballs available for test
On Oct 18, 2004, at 7:15 PM, Jim Jagielski wrote: The RC tarballs for 1.3.32 are available for review and feedback: Good md5, good signature (although I don't seem to have signed your key). Unpacks, compiles, runs perl-framework as well as 1.3.31 did. Darwin 7.5.0 (MacOSX 10.3.5). S. -- [EMAIL PROTECTED] http://www.temme.net/sander/ PGP FP: 51B4 8727 466A 0BC3 69F4 B7B8 B2BE BC40 1529 24AF smime.p7s Description: S/MIME cryptographic signature
Re: Apache HTTP Server 1.3.32 RC Tarballs available for test
+1 Checks out OK on IBM's TPF platform. -David McCreedy - Original Message - From: Jim Jagielski To: [EMAIL PROTECTED] Sent: Monday, October 18, 2004 8:15 PM Subject: Apache HTTP Server 1.3.32 RC Tarballs available for test The RC tarballs for 1.3.32 are available for review and feedback: http://httpd.apache.org/dev/dist/1.3.32 is *not* yet released; these are simply the releasecandidate tarballs.-- === Jim Jagielski [|] [EMAIL PROTECTED] [|] http://www.jaguNET.com/ "There 10 types of people: those who read binary and everyone else."
RE: Is there a limit to using with-module directive ???
Rici, Thanks for the patch... the line numbers were of course different, but I integrated the change it implements as you suggested and reran the following configure, which worked: CC=xlc_r; export CC CPPFLAGS=-D_THREAD_SAFE; export CPPFLAGS ./configure.new \ --prefix=/usr/local/apache \ --with-mpm=worker \ --without-berkeley-db \ --enable-dav=static \ --enable-dav_fs=static \ --with-ssl=/usr/local/ssl \ --enable-ssl=static \ --with-egd=/etc/entropy \ --with-module=aaa:auth_extern aaa:dms_apr \ $@ Just for the archives, note --with-module can still only be used once, but you can specify multiple modules... just separate them with white space. Thanks again, Rici... Lets hope they integrate this into the base configure script. -tony -Original Message- From: Rici Lake [mailto:[EMAIL PROTECTED] Sent: Tuesday, October 19, 2004 7:59 AM To: Bennett, Tony - CNF Subject: Re: Is there a limit to using with-module directive ??? On 19-Oct-04, at 9:22 AM, Bennett, Tony - CNF wrote: If it is a limit, then how do I add multiple modules ??? You might find the following patch helpful (I haven't tried it with 2.0.52) --- httpd-2.0.50/configure Mon Jun 28 19:11:29 2004 +++ httpd-2.0.50-bak/configure Wed Aug 4 20:56:04 2004 @@ -13296,7 +13296,8 @@ # Check whether --with-module or --without-module was given. if test ${with_module+set} = set; then - withval=$with_module + withvals=$with_module + for withval in $withvals; do modtype=`echo $withval | sed -e's/\(.*\):.*/\1/'` pkg=`echo $withval | sed -e's/.*:\(.*\)/\1/'` @@ -13334,6 +13335,7 @@ MODLIST=$MODLIST $module echo $as_me:$LINENO: result: added $withval 5 echo ${ECHO_T}added $withval 6 +done else echo $as_me:$LINENO: result: no extra modules 5
Assigning bugs in bugzilla
It is probably not a good idea to use the Assigned-to field in our bugzilla install for taking ownership of issues. If you do this, then changes to the bug will no longer go to our bugzilla mailing list, which could create gaps in oversight. I suggest (in decreasing order of preference): - Add yourself to the cc: list, and add a note saying that you are looking into the bug; or - Change the Assigned-To field, but add [EMAIL PROTECTED] to the cc: list. Joshua.
Re: Apache with Security Processor - Interesting
On Tue, 19 Oct 2004 11:18:15 +0100, Joe Orton [EMAIL PROTECTED] wrote: On Thu, Oct 14, 2004 at 10:03:50AM -0700, Madhusudan Mathihalli wrote: Well.. not exactly based on my experience (may be I'm wrong or worked around something) Here's what I did: 1. Enable loading of 'dynamic' engine by default 2. Specify SSLCryptoDevice my_engine 3. Put libmy_engine.so in apache/lib 4. set SHLIB_PATH/LD_LIBRARY_PATH in apachectl to point to apache/lib This enabled me to start up Apache with the configured crypto engine. I think the only limitation here is : Is this with OpenSSL 0.9.7 or .8? Best I can tell this won't work out of the box with 0.9.7, though if you made a bunch of changes in (1) of course that's great. What changes did you make? It was with 0.9.7d. Here's a patch against Apache 2.1 - please note that the original changes were made for 2.0, and tested against 2.0. Thanks -Madhu Index: ssl_engine_config.c === RCS file: /home/cvs/httpd-2.0/modules/ssl/ssl_engine_config.c,v retrieving revision 1.94 diff -u -r1.94 ssl_engine_config.c --- ssl_engine_config.c 3 Jun 2004 15:00:15 - 1.94 +++ ssl_engine_config.c 19 Oct 2004 18:24:12 - @@ -476,6 +476,20 @@ } #if defined(HAVE_OPENSSL_ENGINE_H) defined(HAVE_ENGINE_INIT) + +ENGINE *ssl_load_dynamic_engine(const char *engine) +{ +ENGINE *e = ENGINE_by_id(dynamic); +if (e) { +if (!ENGINE_ctrl_cmd_string(e, SO_PATH, engine, 0) || +!ENGINE_ctrl_cmd_string(e, LOAD, NULL, 0)) { +ENGINE_free(e); +e = NULL; +} +} +return e; +} + const char *ssl_cmd_SSLCryptoDevice(cmd_parms *cmd, void *dcfg, const char *arg) @@ -491,7 +505,7 @@ if (strcEQ(arg, builtin)) { mc-szCryptoDevice = NULL; } -else if ((e = ENGINE_by_id(arg))) { +else if ( (e = ENGINE_by_id(arg)) || (e = ssl_load_dynamic_engine(arg)) ) { mc-szCryptoDevice = arg; ENGINE_free(e); } Index: ssl_engine_init.c === RCS file: /home/cvs/httpd-2.0/modules/ssl/ssl_engine_init.c,v retrieving revision 1.129 diff -u -r1.129 ssl_engine_init.c --- ssl_engine_init.c 8 Oct 2004 11:59:32 - 1.129 +++ ssl_engine_init.c 19 Oct 2004 18:24:12 - @@ -317,7 +317,8 @@ ENGINE *e; if (mc-szCryptoDevice) { -if (!(e = ENGINE_by_id(mc-szCryptoDevice))) { +if ( !(e = ENGINE_by_id(mc-szCryptoDevice)) || + !(e = ssl_load_dynamic_engine(mc-szCryptoDevice)) ) { ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, Init: Failed to load Crypto Device API `%s', mc-szCryptoDevice); Index: ssl_private.h === RCS file: /home/cvs/httpd-2.0/modules/ssl/ssl_private.h,v retrieving revision 1.7 diff -u -r1.7 ssl_private.h --- ssl_private.h 3 Jun 2004 15:00:15 - 1.7 +++ ssl_private.h 19 Oct 2004 18:24:12 - @@ -636,4 +636,8 @@ #define APR_SHM_MAXSIZE (64 * 1024 * 1024) +#if defined(HAVE_OPENSSL_ENGINE_H) defined(HAVE_ENGINE_INIT) +ENGINE *ssl_load_dynamic_engine(const char *engine); +#endif + #endif /* SSL_PRIVATE_H */
Re: Bug: Apache hangs if script invokes fork/waitpid
Naik, Roshan wrote: In my humble opinion it is much simpler (and cleaner) to fix this problem in one place...Apache, rather than in each module that may face this problem. I am not sure if it is really simpler (see below) but admittedly it would make things easier for module authors. So from the part of the Perl script I see only two approaches: 1. Guidelines for script programmers that clearly state that you have to call a special Perl function for doing a fork inside mod_perl, because otherwise you will shoot yourself. This is unfortunately not feasible (even though possible). The reason being that there are so many perl modules out there that are being widely used by programmers. You cant know which function call can possibly call a fork(). For example would you ever imagine that Perl's Syslog module would need to fork ? Well it does... and I was really surprised too. That's actually where I noticed this whole problem. Not only does it call fork() but it seems like its unpredictable as to when it calls fork(). It seems to do so if we pound on it too much. Prusuing this option requires too much knowledge on part of Programmers about the internals of the various modules that they will be using. Ok, I do understand your pain and problems better now and I understand the problems you see with my proposal. So let me try to understand your idea of a solution inside Apache a little bit better. If I look at your patch at the end of the mail you would like to exit the process once the handler has been run. I see the following problems with that approach: 1. exit(0): This does exactly what you do not like: A function deeper down in the call stack terminates the process. Furthermore shared resources may no get freed correctly. But this may be fixable by doing it in the same way Apache processes handle SIGTERM, SIGHUP and similar signals. So I do not see a real big problem here. 2. As fork is called inside the module code Apache gets caught by this unprepared. So there may be some locks or similar things on shared resources that should be freed before a fork, especially if the fork is used to create an additional process for handling a time consuming operation in the background. 3. On some Unix OS'es a fork does not copy all threads of the original process for performance reasons. So the forked process is not an exact copy of the original process. This may lead to problems with multithreaded MPM's. I think 2. and 3. can only be solved by having an appropriate wrapper around fork inside of Apache that does the needed preparations. But this would require that the unknowing module is made to call this wrapper when it calls fork. On Unix systems I think this is only possible by some ugly and maybe not portable dynamic linker voodoo. I have no idea how this can be reached on non Unix platforms. [...] better support from Apache API functions should be part of the further discussion. As far as I remeber possible approaches like a special mod_fork have already been discussed by Jeff and Paul in this thread. Yes ... and I don't fully understand the scope or the reasoning behind those. I still think handling it at Apache level is better As far as I understand their ideas they also try to carefully prepare a fork operation. I think their approach is driven from the approaches used by mod_cgi which also forks processes, but in a big difference to your problem also executes a new program by calling an exec like call. than handling it at content handler. That should also simplify the task of writing modules. As a nice side effect a rogue (or naïve) module will not be able to hang apache. I think there are enough other approaches left for a rogue module to reach this :-). [...] I dont think it is good idea for a function deeper down in the call stack to try to clean up resources allocated by functions higher up in the call stack. Mod_perl can (and should have to) only clean up resources that it has allocated. For now most of these solutions seem to be aspirational and nothing concrete likely to materialize soon. For now I would like to propose the solution 2 ( in my original email) as a patch. The idea is to invoke exit(0) (if we are in the forked worker) just after ap_run_handler is invoked by ap_invoke_handler AP_CORE_DECLARE(int) ap_invoke_handler(request_rec *r) { // ...snip result = ap_run_handler(r); if ( I am a forked worker ) { exit(0); // terminate at the earliest possible stage after request was processed } // ...snip } This solution is a band aid to fix the current shortcoming in design. We can get rid of this when (if ever) a full fledged solution is worked out. I feel it is useful to have this band-aid to stop the bleeding till we take it to the hospital. Sorry, for sounding too sarcastic, simply could not resist: I am not quite sure if the patient
Re: Apache HTTP Server 1.3.32 RC Tarballs available for test
+1 NetWare [EMAIL PROTECTED] Monday, October 18, 2004 8:15:16 PM The RC tarballs for 1.3.32 are available for review and feedback: http://httpd.apache.org/dev/dist/ 1.3.32 is *not* yet released; these are simply the release candidate tarballs. -- === Jim Jagielski [|] [EMAIL PROTECTED] [|] http://www.jaguNET.com/ There 10 types of people: those who read binary and everyone else.