Re: A::T blib vs lib
Hi, Am Dienstag, 21. Oktober 2003 23:24 schrieb Stas Bekman: Stas Bekman wrote: Please verify that it works for you Boris and we will make a new release. Geoff has volunteered to be the release manager for this release. ;) Ok, I tested cvs-version 1.05-dev against my project with mp1 and it works fine out of the box. Thank you. -- Boris
potential Apache-Test release candidate
hi all I have a release candidate for Apache-Test ready to go http://perl.apache.org/~geoff/Apache-Test-1.05-dev.tar.gz but before I announce it publically I wanted to make sure that I understood our position on META.yml. I'm supposed to leave the autogenerated version in the release (as opposed to editing it out or building with 5.6.0 instead), right? --Geoff
have_module('mod_perl.c')
hi all have_module('mod_perl.c') doesn't work currently for DSO installations unless the parent config has a LoadModule statement in it. the attached patch fixes this - once the appropriate .so is found, it's added to the cached module list so that the fallback for have_module() is populated appropriately. I'm going to hold up 1.05 until this is integrated, as it's pretty important since have_module('mod_perl.c') is now the way to test for the presence of mod_perl. --Geoff Index: Apache-Test/lib/Apache/TestConfigPerl.pm === RCS file: /home/cvspublic/httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfigPerl.pm,v retrieving revision 1.79 diff -u -r1.79 TestConfigPerl.pm --- Apache-Test/lib/Apache/TestConfigPerl.pm21 Oct 2003 22:09:41 - 1.79 +++ Apache-Test/lib/Apache/TestConfigPerl.pm22 Oct 2003 14:58:43 - @@ -67,6 +67,11 @@ $lib =~ s/lib$/dll/; $cfg = 'LoadFile ' . qq($lib\n) if -e $lib; } +# add the module we found to the cached modules list +# otherwise have_module('mod_perl') doesn't work unless +# we have a LoadModule in our base config +$self-{modules}-{'mod_perl.c'} = $vars-{libmodperl}; + $cfg .= 'LoadModule ' . qq(perl_module $vars-{libmodperl}\n); } else {
Flood: New patch to flood_socket_keepalive.c fixes keepalive protocol bugs [Ref A7], Question on Chunking Protocol
The new diff available for Flood fixes protocol errors for keepalive (file flood_socket_keepalive.c, function keepalive_recv_resp()) mainly by assimilating the functionality of the wantresponse and !wantresponse modes within the readback operations, and maintaining whatever worked correctly. Also the algorithm for reading a decimal value within the above function was simplified (we found cases where what was replaced did not work), as was the routine for reading a hexadecimal value (this being in the function keepalive_read_chunk_size()), the same reason for its replacement applying. Since this diff is independent of other changes made recently, I have done it off the original file in CVS/Flood 1.1, which I have in my local directory c:\flood-1.1 Norman Tuttle, developer, OpenDemand Systems, [EMAIL PROTECTED] PS: In a comparison between the 2 modes mentioned above (wantresponse and !wantresponse), the Chunked Transfer-Encoding method of reading of the body is absent from the wantresponse pathway. I was wondering whether that was inadvertent, and if so, it looks like we will have to add this functionality as well or our readback of data in that case will be incomplete. --- flood_socket_keepalive.c2003-10-22 12:11:38.0 -0400 +++ \flood-1.1\flood_socket_keepalive.c 2003-09-06 00:27:38.0 -0400 @@ -161,17 +161,25 @@ write_socket(ksock-s, req); } -/* This is really a hex evaluator function. */ static long keepalive_read_chunk_size(char *begin_chunk) { -long OutputHex=0; -unsigned char Addend; -while (isspace(*begin_chunk)) begin_chunk++; -while (isxdigit(Addend=(*(begin_chunk++ +char chunk[17], *end_chunk; +long chunk_length; + +/* FIXME: Handle chunk-extension */ +end_chunk = strstr(begin_chunk, CRLF); + +if (end_chunk end_chunk - begin_chunk 16) { - OutputHex=(OutputHex4)+((Addend 0xF)+((Addend '9')?9:0)); +strncpy(chunk, begin_chunk, end_chunk - begin_chunk); +chunk[end_chunk-begin_chunk] = '\0'; +/* Chunks are base-16 */ +chunk_length = strtol(chunk, end_chunk, 16); +if (*end_chunk == '\0') +return chunk_length; } -return OutputHex; + +return 0; } static apr_status_t keepalive_read_chunk(response_t *resp, @@ -233,7 +241,7 @@ return status; } -/* We got caught in the middle of a chunk last time. */ +/* We got caught in the middle of a chunk last time. */ if (old_length 0) { b -= old_length; blen += old_length; @@ -299,7 +307,7 @@ return APR_SUCCESS; } -static apr_status_t keepalive_load_resp(response_t *resp, +static apr_status_t keepalive_load_resp(response_t *resp, keepalive_socket_t *sock, apr_size_t remaining, apr_pool_t *pool) { @@ -352,7 +360,7 @@ cp += i; remaining -= i; } -while (status != APR_EGENERAL status != APR_EOF +while (status != APR_EGENERAL status != APR_EOF status != APR_TIMEUP (!remain || remaining)); return status; @@ -366,7 +374,6 @@ keepalive_socket_t *ksock = (keepalive_socket_t *)sock; char *cl, *ecl, cls[17]; char *current_line; -int keep_reading = 0; int i; response_t *new_resp; apr_status_t status; @@ -400,7 +407,7 @@ header_end = memchr(current_line, ':', line_length); if (header_end) { key_length = header_end - current_line; - + header_key = apr_pstrmemdup(pool, current_line, key_length); header_val = apr_pstrmemdup(pool, current_line + key_length + 2, line_length - key_length - 2); @@ -413,10 +420,10 @@ /* If this exists, we aren't keepalive anymore. */ header = apr_table_get(new_resp-headers, Connection); if (header !strcasecmp(header, Close)) { -new_resp-keepalive = 0; +new_resp-keepalive = 0; } else { -new_resp-keepalive = 1; +new_resp-keepalive = 1; } /* If we have a HEAD request, we shouldn't be receiving a body. */ @@ -426,12 +433,11 @@ return APR_SUCCESS; } -new_resp-chunk = NULL; -new_resp-chunked = 0; header = apr_table_get(new_resp-headers, Transfer-Encoding); if (header !strcasecmp(header, Chunked)) { new_resp-chunked = 1; +new_resp-chunk = NULL; /* Find where headers ended */ cl = current_line; @@ -443,7 +449,7 @@ /* We have a partial chunk and we aren't at the end. */ if (cl *cl (cl - (char*)new_resp-rbuf) new_resp-rbufsize) { int remaining; - + do { if (new_resp-chunk) {
Re: potential Apache-Test release candidate
Stas Bekman wrote: Geoffrey Young wrote: hi all I have a release candidate for Apache-Test ready to go http://perl.apache.org/~geoff/Apache-Test-1.05-dev.tar.gz but before I announce it publically I wanted to make sure that I understood our position on META.yml. I'm supposed to leave the autogenerated version in the release (as opposed to editing it out or building with 5.6.0 instead), right? Just leave it as it is. If you ever decide to edit it, you need to change Makefile.PL to have NO_META=1 in WriteMakefile args. But since at the moment we have no special uses for this feature, we shouldn't do anything special. ok, but now the MANIFEST has META.yml in it, and if I commit it will go in. is that ok? --Geoff
Re: potential Apache-Test release candidate
Geoffrey Young wrote: Stas Bekman wrote: Geoffrey Young wrote: hi all I have a release candidate for Apache-Test ready to go http://perl.apache.org/~geoff/Apache-Test-1.05-dev.tar.gz but before I announce it publically I wanted to make sure that I understood our position on META.yml. I'm supposed to leave the autogenerated version in the release (as opposed to editing it out or building with 5.6.0 instead), right? Just leave it as it is. If you ever decide to edit it, you need to change Makefile.PL to have NO_META=1 in WriteMakefile args. But since at the moment we have no special uses for this feature, we shouldn't do anything special. ok, but now the MANIFEST has META.yml in it, and if I commit it will go in. is that ok? Yes. It's OK. __ 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
[RELEASE CANDIDATE] Apache-Test-1.05-dev is available
a release candidate for Apache-Test 1.05 is now available. http://perl.apache.org/~geoff/Apache-Test-1.05-dev.tar.gz please take the time to excercise the candidate through all your existing applications that use Apache-Test and report back any problems. --Geoff Changes since 1.04: core scanning changes [Stas] - speedup by not chdir'ing into subdirs - an optional scanning of only t/ dir (used by TestSmoke) - don't scan on win32, since it has no core files in the autogenerated t/conf/modperl_inc.pl don't add the project/lib directory, unless a special env var APACHE_TEST_LIVE_DEV is true. This is because some projects change things in project/blib and pushing project/lib on top of @INC, breaks the test suite for them [Stas] TestRun was using httpd.pid file to ensure that the server is killed before starting it, if the file existed. This was a problem on win32 platforms, where a process scheduler tries to re-use the pids that were just freed, which may have killed a valid process which is not even Apache.exe. So we try not to rely on that file, and if the server wasn't properly stopped and still running, users will learn about that, since the port will be busy, and Apache will fail to start. Users have to kill it manually. TestSmoke is no longer using an explicit kill `cat httpd.pid` to stop Apache, but delegates the stopping procedure to TestRun [Steve Hay, Randy Kobes] use IPC::Run3 in Apache::TestSmoke to run t/TEST commands, so as t/SMOKE can be used on Win32 [Stas, Steve Hay, Randy Kobes] place mod_perl-specific directives in IfModule containers within httpd.conf, allowing the default server to start if mod_perl isn't present. [Geoffrey Young] fix t/request.t to get /index.html, instead of / since not everybody uses mod_dir [Steve Piner [EMAIL PROTECTED]] when testing whether Apache started as root and running under 'nobody' or alike, will be able to -r/-w/-x in t/ use 'su' instead of 'sudo', the latter is not available on all unix platforms. [Vivek Khera khera@kcilink.com] in the Apache/test.pm nuke code s/PERLRUN/FULLPERL/ as older MakeMaker doesn't have the PERLRUN target [Stas] Apache 1.3 servers now run in standard prefork mode under normal operation. single server mode (httpd -X) was replaced with MaxClients set to 1 by default. [Geoffrey Young] --Geoff
Re: [RELEASE CANDIDATE] Apache-Test-1.05-dev is available
On Wednesday, October 22, 2003, at 12:48 PM, Geoffrey Young wrote: a release candidate for Apache-Test 1.05 is now available. http://perl.apache.org/~geoff/Apache-Test-1.05-dev.tar.gz please take the time to excercise the candidate through all your existing applications that use Apache-Test and report back any problems. I think that this release contains my fixes to the TestRequest::POST documentation, too. Or was that in 1.04? David -- David Wheeler AIM: dwTheory [EMAIL PROTECTED] ICQ: 15726394 http://www.kineticode.com/ Yahoo!: dew7e Jabber: [EMAIL PROTECTED] Kineticode. Setting knowledge in motion.[sm]
Re: [RELEASE CANDIDATE] Apache-Test-1.05-dev is available
David Wheeler wrote: On Wednesday, October 22, 2003, at 12:48 PM, Geoffrey Young wrote: a release candidate for Apache-Test 1.05 is now available. http://perl.apache.org/~geoff/Apache-Test-1.05-dev.tar.gz please take the time to excercise the candidate through all your existing applications that use Apache-Test and report back any problems. I think that this release contains my fixes to the TestRequest::POST documentation, too. Or was that in 1.04? do you mean this? http://cvs.apache.org/viewcvs.cgi/httpd-test/perl-framework/Apache-Test/lib/Apache/TestRequest.pm.diff?r1=1.87r2=1.88 this was added after 1.04. I guess we are inconsistent in logging doc changes in Changes. personally, I think the Changes file is most useful if it logs only functionality changes. but there are other documentation issues mentioned there currently, so if you'd like I'll insert that into Changes in (around) the appropriate place chronologically. --Geoff
Re: [RELEASE CANDIDATE] Apache-Test-1.05-dev is available
On Wednesday, October 22, 2003, at 02:17 PM, Geoffrey Young wrote: do you mean this? http://cvs.apache.org/viewcvs.cgi/httpd-test/perl-framework/Apache- Test/lib/Apache/TestRequest.pm.diff?r1=1.87r2=1.88 Yes. this was added after 1.04. I guess we are inconsistent in logging doc changes in Changes. personally, I think the Changes file is most useful if it logs only functionality changes. but there are other documentation issues mentioned there currently, so if you'd like I'll insert that into Changes in (around) the appropriate place chronologically. Oh. Up to you guys; I thought stuff like that was always noted. Cheers, David -- David Wheeler AIM: dwTheory [EMAIL PROTECTED] ICQ: 15726394 http://www.kineticode.com/ Yahoo!: dew7e Jabber: [EMAIL PROTECTED] Kineticode. Setting knowledge in motion.[sm]
Re: [RELEASE CANDIDATE] Apache-Test-1.05-dev is available
I guess we are inconsistent in logging doc changes in Changes. personally, I think the Changes file is most useful if it logs only functionality changes. but there are other documentation issues mentioned there currently, so if you'd like I'll insert that into Changes in (around) the appropriate place chronologically. Oh. Up to you guys; I thought stuff like that was always noted. I forgot to add that I certainly don't mean to belittle your contributions here - you've done lots of work on the docs and added lots of value. I even mentioned you by name at my OSCon talk :) I'll give it some thought, look over Changes more closely, and then probably add it in :) --Geoff
Re: [RELEASE CANDIDATE] Apache-Test-1.05-dev is available
Geoffrey Young wrote: David Wheeler wrote: [...] I think that this release contains my fixes to the TestRequest::POST documentation, too. Or was that in 1.04? do you mean this? http://cvs.apache.org/viewcvs.cgi/httpd-test/perl-framework/Apache-Test/lib/Apache/TestRequest.pm.diff?r1=1.87r2=1.88 this was added after 1.04. I guess we are inconsistent in logging doc changes in Changes. personally, I think the Changes file is most useful if it logs only functionality changes. but there are other documentation issues mentioned there currently, so if you'd like I'll insert that into Changes in (around) the appropriate place chronologically. Seconded. We try to keep the Changes files to containing only information about changes that help users decide whether they need to upgrade to that newer version or not. If we log everything, the file will become useless. We could just run cvs2lg to autogenerated a list of all cvs changes. There is another issue with acknowledging the contributions, but it's probably not the reason to log those contributions in Changes. Perhaps we need to start CONTRIBUTORS and simply list the names of contributors there. We do change docs all the time, and trying to track those changes is not simple and certainly doesn't belong to the current Changes. Suggestions on how to improve that are certainly welcome. BTW, I did acknowledge that I've committed your patch, David, in reply to your email with the patch. __ 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