big problems with GDBM / MLDBM on solaris
hopefully some of you have seen this before and can offer some advice. We have a site we've developed on linux boxes and are now moving it over to a solaris box. it runs mod_perl 1.25 / HTML-Mason 2.02 / Stronghold 3 / Perl 5.6.1 and uses GDBM_File for cacheing. We are getting lots of these all over the place: Can't locate object method "TIEHASH" via package "GDBM_File" It affects all of mason's cacheing as well as some critical routines we wrote ourselves. We installed libgdbm (1.8) on the system and it appears to run from the command line, although i still have my doubts about whether when we built PERL the dynamic loadable library paths were correct (we ended up running Configure and make with "LD_LIBRARY_PATH=/usr/local/lib" on the command line to get it working). Any idea what's up? Could it just be permission problems? Should we rebuild perl? It's pretty urgent, so any ideas would be greatly appreciated ASAP! -Noam
Java.pm
Thanks to all that replied, I'll try unziping the JAR file before using it...
Re: @INC and mod_perl - PerlSetEnv PERL5LIB ... doesn't seem to work
Vivek Khera wrote: "TS" == Tim Sweetman [EMAIL PROTECTED] writes: TS you can add directories to @INC by putting TS PerlSetEnv PERL5LIB /home/httpd/perl Just use the second method in the guide. ie, use lib '/path/to/lib' in a startup script. I request that the guide be changed, since apparently the 'PerlSetEnv' way hasn't worked properly for some time. Never has for me, anyway.
Re: @INC and mod_perl - PerlSetEnv PERL5LIB ... doesn't seem to work
Vivek Khera wrote: "TS" == Tim Sweetman [EMAIL PROTECTED] writes: TS you can add directories to @INC by putting TS PerlSetEnv PERL5LIB /home/httpd/perl Thanks Vivek, but I was after clarification of whether this was a bug (to be fixed) or inaccurate docs (also to be fixed). I'd also appreciate knowing if the "set the env. variable before Apache run" approach (ie. PERL5LIB=/usr/lib/foo httpsd ...) works, or whether this is going to be blown out of the water by subsequent mod_perl versions (though this may be currently unknowable, or known by very few people). :) On a related note (preloading in startup scripts), presumably packages which use AutoLoader/SelfLoader will do a fairly half-baked job of preloading. Should this pair have some kind of compile() functionality? (Not saying I'd implement it, but IF we turn out to need it, and nobody else has, and people think it's a good idea...) Cheers -- Tim Sweetman A L Digital
Java.pm
Thanks again to all that replied to my earlier posting, however, I've run into another issue. I followed the link in one of the replies to http://www-personal.umich.edu/~mcafee/perl/java-pm.html and discovered that this module was different than the one I'm attempting to use. Originally I was trying to use Java.pm Version 3 created by Mark Trostler which I downloaded from CPAN. Does anyone know which one I should be using? I'm trying to execute Java procedures in class files from within ModPerl. I'm new to Java and a little confused on how to make this work. Thanks, Chris.
Re: Java.pm
At 11:34 11/04/2001 -0400, cbell wrote: Originally I was trying to use Java.pm Version 3 created by Mark Trostler which I downloaded from CPAN. Does anyone know which one I should be using? I'm trying to execute Java procedures in class files from within ModPerl. Haven't tried it, but maybe you should look into Inline::Java. ___ Robin Berjon [EMAIL PROTECTED] -- CTO k n o w s c a p e : // venture knowledge agency www.knowscape.com --- drug, n: a substance that, injected into a rat, produces a scientific paper.
Re: Java.pm
I did take a look at it originally, but it didn't seem to do what I needed it to. I'll take another look... Robin Berjon wrote: At 11:34 11/04/2001 -0400, cbell wrote: Originally I was trying to use Java.pm Version 3 created by Mark Trostler which I downloaded from CPAN. Does anyone know which one I should be using? I'm trying to execute Java procedures in class files from within ModPerl. Haven't tried it, but maybe you should look into Inline::Java. ___ Robin Berjon [EMAIL PROTECTED] -- CTO k n o w s c a p e : // venture knowledge agency www.knowscape.com --- drug, n: a substance that, injected into a rat, produces a scientific paper.
Re: @INC and mod_perl - PerlSetEnv PERL5LIB ... doesn't seem to work
I Told You So [EMAIL PROTECTED] wrote: I'd also appreciate knowing if the "set the env. variable before Apache run" approach (ie. PERL5LIB=/usr/lib/foo httpsd ...) works, or whether this is going to be blown out of the water by subsequent mod_perl versions (though this may be currently unknowable, or known by very few people). :) It works for me at least. I'm PERL5LIB to keep several versions of mod_perl's modules on the same system; the first one I installed (mod_perl 1.21) installed itself under the default location (/usr/lib/perl5/site_perl/Apache), and then when I needed to setup another Apache with a more recent mod_perl, I prepared it with perl Makefile.PL APACHE_SRC=../apache_1.3.19/src DO_HTTPD=1 USE_APACI=1 \ PREP_HTTPD=1 EVERYTHING=1 \ LIB=/usr/local/new-apache/perl-lib and then I added the line PERL5LIB=/usr/local/ssl-apache/perl-lib ; export PERL5LIB to /usr/local/new-apache/bin/apachectl Looking at /perl-status's Modules page, @INC looks good. -- Roger Espel Llima, [EMAIL PROTECTED] http://www.iagora.com/~espel/index.html
[OT]: POST/GET semantics
Hi. I have found that having a session object is a rather bad idea. What happens if there is such a beast is essentially communication of functions through global variables. So I thought about the cure and found that having server side "objects" that can be retrieved through an id enables "passing of parameters by reference". The client does a request and gets an id with the response, which he will return to the server with further requests to refer to an object created with the first request. The question however is: If I create an object on the server that is only accessible to the requesting client (the id can be thaught of as a password) - may this be done with a GET request? RFC 2616 says that the idea of GET is that the client can not be held accountable for the side effects of GET. If I however return an id to the client so that only this client has access to the effects of the request this client is in full control. An application for this would be to have a request that creates a result set for an expensive search and returns an id to this. Any comments appreciated, Joachim Is there a better place to discuss such a question? -- "... ein Geschlecht erfinderischer Zwerge, die fuer alles gemietet werden koennen."- Bertolt Brecht - Leben des Galilei
proxy: manipulate-response-before-send-phase?
Hi all, To get the functionality of a special kind of proxy, we do the following, as described in O'Reilly's "Apache Modules" first edition (S. 370 ff.): * set a Transhandler in httpd.conf PerlTransHandler SomePackage::Proxy * at the end of this perl-script: $r-proxyreq(1); $r-uri($uri); $r-filename("proxy:$uri"); $r-handler('proxy-server'); This works fine, the document defined in $uri gets delivered to the client. But, there are some kind of responses of the remote webserver that include its domain, e.g. redirects or the "permanently moved"-response after trying to get a directory without trailing slash: in the Location-Header-element we find the webserver's domain and the following request bypasses our proxy. There is the ProxyPassReverse directive for mod_proxy, but can we activate it from within the perl-script above? (how?) And would it care for every situation like the ones mentioned above? Another possibility would be to get hands on the response as generated by mod_proxy and manipulate it before sending it to the client. But how could this be achieved? Using a "PerlHandler", mod_proxy no longer seems to be activated - could it be activated from within the perl-handler, to then manipulate its results? Thanks for any hints, -- Ernst Leonhard mailto:[EMAIL PROTECTED] ___ SecureNet GmbH Intranet und Internet Solutions Tel: +49 89/32133-654 Frankfurter Ring 193a Fax: +49 89/32133-699 80807 Mnchen, Germany http://www.secure-net.de
Re: [OT]: POST/GET semantics
Hello, JZI have found that having a session object is a rather bad idea. What JZhappens if there is such a beast is essentially communication of JZfunctions through global variables. So I thought about the cure and JZfound that having server side "objects" that can be retrieved through an JZid enables "passing of parameters by reference". The client does a JZrequest and gets an id with the response, which he will return to the JZserver with further requests to refer to an object created with the JZfirst request. What you describe is exactly, I think, what most people think of when they talk about a session object. The client must always somehow indicate who they are, so you know what session to associate them with. JZThe question however is: If I create an object on the server that is JZonly accessible to the requesting client (the id can be thaught of as a JZpassword) - may this be done with a GET request? RFC 2616 says that the JZidea of GET is that the client can not be held accountable for the side JZeffects of GET. If I however return an id to the client so that only JZthis client has access to the effects of the request this client is in JZfull control. It can be done with either GET or POST. However, if you use GET, you have to prepare for receiving GET requests possibly more than once (although sending Cache-Control headers should minimize this). In your case, since your search application does not change any permanent server state, it's fine to use either GET or POST. Note: in HTTP, the client is ALWAYS in "full control". HTTP is always a client-pull model. Whether you use GET or POST, the client can always choose to replay a previous request. So you have to prepare to handle this case no matter what. You may want to read the chapter on server-side state in the Eagle book. Humbly, Andrew -- Andrew Ho http://www.tellme.com/ [EMAIL PROTECTED] Engineer [EMAIL PROTECTED] Voice 650-930-9062 Tellme Networks, Inc. 1-800-555-TELLFax 650-930-9101 --
Re: @INC and mod_perl - PerlSetEnv PERL5LIB ... doesn't seem to work
On Wed, 11 Apr 2001, Keith G. Murphy wrote: Vivek Khera wrote: "TS" == Tim Sweetman [EMAIL PROTECTED] writes: TS you can add directories to @INC by putting TS PerlSetEnv PERL5LIB /home/httpd/perl Just use the second method in the guide. ie, use lib '/path/to/lib' in a startup script. I request that the guide be changed, since apparently the 'PerlSetEnv' way hasn't worked properly for some time. Never has for me, anyway. Do you have the taint mode turned on? I think at some point mod_perl ignores PERL5LIB settings then. Can you confirm that? _ Stas Bekman JAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide http://perl.apache.org/guide mailto:[EMAIL PROTECTED] http://apachetoday.com http://logilune.com/ http://singlesheaven.com http://perl.apache.org http://perlmonth.com/
Re: Problem with modperl
Hi there, I've had similar problems before with a stock install of Redhat 6.x and their installation of apache + mod_perl (dso) + php It's been a long time now but if my memory serves me correctly (probably not) loading mod_perl before php in the httpd.conf file worked (in some instances). Read the guide regarding mod_perl as dso. You should probably try to compile it into apache. Escario Julien wrote: Here's exactly the line in httpd.conf : LoadModule perl_modulelibexec/libperl.so I'm gone on http://perl.apache.org/guide/ but nothing is said on my case. I forgot a detail : I'm using mod_vhost_alias , is mod_perl compatible ? On apache restart here's what I get in error_log : [Tue Apr 10 19:45:15 2001] [notice] SIGHUP received. Attempting to restart [Tue Apr 10 19:45:16 2001] [notice] Apache/1.3.19 (Unix) mod_perl/1.25 PHP/4.0.4pl1 configured -- resuming normal operations And now when trying to get a doc : [Tue Apr 10 19:46:23 2001] [notice] child pid 1500 exit signal Segmentation fault (11) [Tue Apr 10 19:47:23 2001] [notice] child pid 1503 exit signal Segmentation fault (11) So it's because Apache is SegFaulting ? Why can I solve this problem ? "G.W. Haywood" wrote: Hi there, On Tue, 10 Apr 2001, Escario Julien wrote: This document contains no data ... but why ? Could be lots of reasons. Often it's because Apache is segfaulting. Look in the error_log, it might tell you. Have you read the guide? http://perl/apache.org/guide 73, Ged. -- Daniel Bohling NewsFactor Network
Re: [OT]:/GET header
hi, anyone recall howto get 'only' the initial header from http servers? TIA
Re: [OT]:/GET header
[EMAIL PROTECTED] wrote: hi, anyone recall howto get 'only' the initial header from http servers? TIA HEAD is the command you want: cuvarack:~/$ telnet impetus 80 Trying 192.168.20.3... Connected to impetus. Escape character is '^]'. HEAD / HTTP/1.0 HTTP/1.1 200 OK Date: Wed, 11 Apr 2001 18:24:40 GMT Server: Apache/1.3.17 (Unix) mod_perl/1.25 mod_ssl/2.8.0 OpenSSL/0.9.6 Content-Length: 787 Connection: close Content-Type: text/html Connection closed by foreign host. cuvarack:~/$ -- Regards, Wim Kerkhoff, Software Engineer Merilus, Inc. -|- http://www.merilus.com Email: [EMAIL PROTECTED]
Re: Apache::ASP
well apache won't start i wouldn't be writing here if it would work fine.. - Original Message - From: "Escario Julien" [EMAIL PROTECTED] To: "alexus" [EMAIL PROTECTED] Cc: "Joshua Chamas" [EMAIL PROTECTED]; [EMAIL PROTECTED] Sent: Wednesday, April 11, 2001 5:37 AM Subject: Re: Apache::ASP Do you really thing this is an error ? This depend on your syslog.conf rules but this is only a notice ... I have the same message when restarting apache or when rebooting and nothing goes wrong alexus wrote: I dont run two web servers all i want is to run fully functional mod_perl so i can run Apache::ASP on my *one* (single) webserver please advice - Original Message - From: "Joshua Chamas" [EMAIL PROTECTED] To: "alexus" [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Sent: Tuesday, April 10, 2001 11:49 AM Subject: Re: Apache::ASP alexus wrote: I don't know what there wrong to setup i have in httpd.conf following lines: LoadModule perl_modulelibexec/libperl.so and AddModule mod_perl.c and whenever I start apache I get this in error_log [Tue Apr 10 00:40:23 2001] [notice] Apache/1.3.19 (Unix) PHP/4.0.4pl1 mod_perl/1.25 mod_ssl/2.8.1 OpenSSL/0.9.6 configured -- resuming normal operations Recently, someone else posted with this problem where they had 2 web servers, the one running modperl was running on a high port in a dual httpd / proxypass situation. If this is your case, you need to run scripts through that web server, say by going to port 2000 or through the /path/ that gets forwarded to that other server. At the end of it all, you know modperl is working correctly when things like PerlHandler don't error. I have only seen this error because of configuration problems or modperl not being installed. --Josh _ Joshua Chamas Chamas Enterprises Inc. NodeWorks free web link monitoring Huntington Beach, CA USA http://www.nodeworks.com1-714-625-4051
Not able to read file
Hi, i'm stuck with a very peculiar problem. i'm trying to upload a file using mod_perl but whenevr I attempt to do that the server hangs. The file is opened in the specified directory but the "read" attempt fails. The server is not able to read the file from the local machine. Here is the code snippet: if(open(OUTFILE, ".$Data."/".$filename") { *while(my $bytesread = read($file, my $buffer, 1024) { print OUTFILE $buffer; } close(OUTFILE); } $filename is the name of the file and $data is the path. $file is the path of the file on the local machine. *The flow stops at this line and the server hangs here. I'll be thankful if I can get some useful tips on this issue. Thanks, Ratan
Re: Apache::Filter doesn't filter right
On Tue, 3 Apr 2001, Michael Nachbaur wrote: I'm having a problem with Apache::Filter (and Apache::OutputChain) which I don't think is related to Apache::Filter itself, but I can't seem to track the problem down. I wrote a content handler which outputs XML, which I want to then be processed by AxKit. So, I did: SetHandler perl-script PerlSetVar Filter On PerlHandler HTTPFilter AxKit The output that I get is the combination of HTTPFilter's output, and AxKit's output (one right before the other). So, it seems that HTTPFilter's output is successfully making it into AxKit (otherwise it wouldn't process its output correctly), but is still making its way to the browser. Any ideas? It could be the bug in AxKit, which is fixed by 1.3_90 (and _91). -- Matt/ /||** Founder and CTO ** ** http://axkit.com/ ** //||** AxKit.com Ltd ** ** XML Application Serving ** // ||** http://axkit.org ** ** XSLT, XPathScript, XSP ** // \\| // ** mod_perl news and resources: http://take23.org ** \\// //\\ // \\
Re: [OT] Apachecon folks
On Wed, 4 Apr 2001, G.W. Haywood wrote: Hi Gunther, On Wed, 4 Apr 2001, Gunther Birznieks wrote: Did you check under the bar...? :) Thanks for brightening my day, Gunther. Wish I was under the bar with Matt. For what it's worth, I'm now back out from spending a week and a bit under the bar. What a hangover! :-) -- Matt/ /||** Founder and CTO ** ** http://axkit.com/ ** //||** AxKit.com Ltd ** ** XML Application Serving ** // ||** http://axkit.org ** ** XSLT, XPathScript, XSP ** // \\| // ** mod_perl news and resources: http://take23.org ** \\// //\\ // \\
Re: [OT] Apachecon folks
Matt Sergeant writes: For what it's worth, I'm now back out from spending a week and a bit under the bar. What a hangover! :-) I'd like to attest that I did see Matt away from the bar. Sometimes he was pool-side, and sometimes he went to Fry's with us. :-) I can't say how much fun it was meeting the mod_perl folks face-to-face. I'm normally insane at TPC, so it was good to meet everyone whose messages I've been reading for the last few years in a more relaxed atmosphere (translation: over 21oz Guinness and a cheesecake pizza :-) Nat
Re: mod_parrot
If anybody didn't figure it out yet... http://www.oreilly.com/news/parrotstory_0401.html Also...it looks like TPJ is back!!! http://www.tpj.com Emad
install solution for new mod_perl based application needed
Hi, I've just spent about 2 months and 5000 lines of code writing a great little mysql/mod_perl/ImageMagick based web application for managing and tweaking digital photographs. It's really been a whole lot of fun. There are three kinds of code involved - .pm modules that are strictly handlers for apache requests, scripts intended to be run by the user administering the site, and .pm modules that are generally used by both the handler modules and the scripts. Now I want to package it in such a way that it'll be easy for folks to use if they want it. My first attempt was to use MakeMaker the way it seems to be intended in all the CPAN modules. That works fine if the installer is root... but it winds up making all the installed perl code root-owned and it seems like the wrong thing in that all sorts of perl modules that I've written just to provide handlers wind up in the general @INC path, and there doesn't seem to be any obvious way to make it possible for both scripts and mod_perl modules to be able to access the reuseable modules if I tell MakeMaker to install the modules elsewhere. Plus, MakeMaker apparently doesn't provide a hook for a script (in this case, a database-configuration script) to be run after the 'make install' is done. So, I'm figuring this must have been encountered before - does anyone on this list know of a good example of an install mechanism for a mod_perl-based web application? Ideally something that doesn't require that the user be root except maybe to modify their httpd.conf. Thanks in advance- //Thomas Thomas K. Burkholder [EMAIL PROTECTED]
Re: big problems with GDBM / MLDBM on solaris
mucho gracia! Jonathan Swartz wrote: One option is to switch to Berkeley DB (DB_File) - I believe it is much more stable and maintained. Don't know how much data transfer that would involve, though. -Original Message- From: Noam Solomon [mailto:[EMAIL PROTECTED]] Sent: Tuesday, April 10, 2001 11:56 PM To: [EMAIL PROTECTED] Cc: Stas Bekman; Jonathan Swartz; Geoffrey Young; Desmond Poyser Subject: big problems with GDBM / MLDBM on solaris hopefully some of you have seen this before and can offer some advice. We have a site we've developed on linux boxes and are now moving it over to a solaris box. it runs mod_perl 1.25 / HTML-Mason 2.02 / Stronghold 3 / Perl 5.6.1 and uses GDBM_File for cacheing. We are getting lots of these all over the place: Can't locate object method "TIEHASH" via package "GDBM_File" It affects all of mason's cacheing as well as some critical routines we wrote ourselves. We installed libgdbm (1.8) on the system and it appears to run from the command line, although i still have my doubts about whether when we built PERL the dynamic loadable library paths were correct (we ended up running Configure and make with "LD_LIBRARY_PATH=/usr/local/lib" on the command line to get it working). Any idea what's up? Could it just be permission problems? Should we rebuild perl? It's pretty urgent, so any ideas would be greatly appreciated ASAP! -Noam
Mod_perl and Post Read Request
I'm trying to use mod_perl in conjunction with another module called mod_adbanners.c From our tests, its quite apparent that when a Location is handled by mod_perl, our other apache handler is not called called, though we've compiled perl to not hook into PostReadRequest Any suggestions? Is there a spell we can invoke? Do I need a dead chicken? -- Jay Thorne Manager, Systems Technology, UserFriendly Media, Inc.
Win32 Apache-1.3.19
Win2000 SP1, Apache-1.3.19, mod_perl-1.25_01-dev (installed from randy kobes site using the Activestate PPM install). Apache installed at c:/Apache/Apache whenever I attempt to start up with mod_perl.so or ApachePerlModule.dll i get the following error: Cannot load c:/apache/apache/modules/mod_perl.so into server: (126) The specified module could not be found: is anyone else even using this yet ? thanks Sean McHugh, MCSE Sungard ePI Inc. Regional Systems Administrator 45 Broadway New York, NY 10006 Wk phone: 212-806-4972
from the quick hacks department... x-bit controls mod_cgi
In an .htaccess, I place: Options +ExecCGI PerlFixupHandler "sub { -f $_[0]-filename and -x _ and $_[0]-handler(q{cgi-script}) }" Now any executable file in this directory (or below) is processed with mod_cgi. Any non-executable file is processed with whatever the MIME engine came up with before. OK, too cool to not pass on. :) -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 [EMAIL PROTECTED] URL:http://www.stonehenge.com/merlyn/ Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!
Re: Win32 Apache-1.3.19
On Wed, 11 Apr 2001 [EMAIL PROTECTED] wrote: Win2000 SP1, Apache-1.3.19, mod_perl-1.25_01-dev (installed from randy kobes site using the Activestate PPM install). Apache installed at c:/Apache/Apache whenever I attempt to start up with mod_perl.so or ApachePerlModule.dll i get the following error: Cannot load c:/apache/apache/modules/mod_perl.so into server: (126) The specified module could not be found: Assuming c:/apache/apache/modules/mod_perl.so is there, are you loading it in httpd.conf the same way that other modules are loaded? In mine the line look like LoadModule perl_module modules/mod_perl.so Do other modules (eg, mod_info.so) load OK with the same syntax structure? is anyone else even using this yet ? Yes best regards, randy kobes
Re: install solution for new mod_perl based application needed
On Wed, 11 Apr 2001, Thomas K. Burkholder wrote: Hi, I've just spent about 2 months and 5000 lines of code writing a great little mysql/mod_perl/ImageMagick based web application for managing and tweaking digital photographs. It's really been a whole lot of fun. There are three kinds of code involved - .pm modules that are strictly handlers for apache requests, scripts intended to be run by the user administering the site, and .pm modules that are generally used by both the handler modules and the scripts. Now I want to package it in such a way that it'll be easy for folks to use if they want it. My first attempt was to use MakeMaker the way it seems to be intended in all the CPAN modules. That works fine if the installer is root... but it winds up making all the installed perl code root-owned and it seems like the wrong thing in that all sorts of perl modules that I've written just to provide handlers wind up in the general @INC path, and there doesn't seem to be any obvious way to make it possible for both scripts and mod_perl modules to be able to access the reuseable modules if I tell MakeMaker to install the modules elsewhere. Why not let the user decide where to install things? She/he then has the control and presumably knows how to deal with it. The FAQ entries in perlfaq8 on keeping one's own module directory, and subsequently how to use it, explains how to do this. Plus, MakeMaker apparently doesn't provide a hook for a script (in this case, a database-configuration script) to be run after the 'make install' is done. See the mod_perl Makefile.PL, for example, for an illustration on how to modify Makefile targets - it basically involves overriding a Makefile section by defining, in Makefile.PL, a sub like MY::top_targets or MY::install. See 'perldoc ExtUtils::MakeMaker', near the end, for details. best regards, randy kobes
March 2001 mod_perl numbers
Hi Doug, The mod_perl figures for March 2001 are: mod_perl: 2298821 Domains, 244201 IP Addresses Yours, Matt. -- Matthew Hunt http://www.netcraft.com/ [EMAIL PROTECTED] Voice +44 (0)1225 867975Fax +44 (0)1225 867700 Netcraft, Treenwood House, Rowden Lane, Bradford on Avon, BA15 2AZ, UK
cvs commit: modperl-site/netcraft graph.jpg index.html input.data pseudo-graph.jpg
sbekman 01/04/11 06:42:33 Modified:netcraft graph.jpg index.html input.data pseudo-graph.jpg Log: march 2001 Revision ChangesPath 1.8 +228 -226 modperl-site/netcraft/graph.jpg Binary file 1.36 +1 -0 modperl-site/netcraft/index.html Index: index.html === RCS file: /home/cvs/modperl-site/netcraft/index.html,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- index.html2001/03/23 03:23:53 1.35 +++ index.html2001/04/11 13:42:32 1.36 @@ -42,6 +42,7 @@ p table cellpadding=3 border=1 trtdSurvey/tdtdhostnames/tdtdunique ip addresses/td/tr +trtd March 2001 /tdtd2298821/tdtd244201/td/tr trtd February 2001 /tdtd2203353/tdtd230502/td/tr trtd January 2001 /tdtd2001011/tdtd225123/td/tr trtd December 2000 /tdtd1811864/tdtd214467/td/tr 1.21 +1 -0 modperl-site/netcraft/input.data Index: input.data === RCS file: /home/cvs/modperl-site/netcraft/input.data,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- input.data2001/03/23 03:23:53 1.20 +++ input.data2001/04/11 13:42:32 1.21 @@ -1,3 +1,4 @@ +March 2001 2298821 244201 February 20012203353 230502 January 2001 2001011 225123 December 20001811864 214467 1.8 +59 -58modperl-site/netcraft/pseudo-graph.jpg Binary file
cvs commit: modperl-2.0/lib/ModPerl MM.pm
dougm 01/04/11 15:46:58 Modified:lib/ModPerl MM.pm Log: always link these module dynamic Revision ChangesPath 1.10 +1 -1 modperl-2.0/lib/ModPerl/MM.pm Index: MM.pm === RCS file: /home/cvs/modperl-2.0/lib/ModPerl/MM.pm,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- MM.pm 2001/04/10 01:57:54 1.9 +++ MM.pm 2001/04/11 22:46:57 1.10 @@ -78,7 +78,7 @@ ExtUtils::MakeMaker::WriteMakefile(@opts, @_); } -my %always_dynamic = map { $_, 1 } qw(Apache::Leak); +my %always_dynamic = map { $_, 1 } qw(ModPerl::Const Apache::Const APR::Const); sub ModPerl::MM::MY::constants { my $self = shift;
cvs commit: modperl-2.0/src/modules/perl modperl_const.c modperl_const.h
dougm 01/04/11 15:48:29 Added: src/modules/perl modperl_const.c modperl_const.h Log: module for compiling/exporting constants Revision ChangesPath 1.1 modperl-2.0/src/modules/perl/modperl_const.c Index: modperl_const.c === #include "mod_perl.h" #include "modperl_const.h" typedef int (*constants_lookup)(const char *); typedef const char ** (*constants_group_lookup)(const char *); static int new_constsub(pTHX_ constants_lookup lookup, HV *caller_stash, HV *stash, const char *name) { int name_len = strlen(name); GV **gvp = (GV **)hv_fetch(stash, name, name_len, FALSE); int val; /* dont redefine */ if (!(gvp GvCV(*gvp))) { CV *cv; val = (*lookup)(name); #if 0 fprintf(stderr, "newCONSTSUB(%s, %s, %d)\n", HvNAME(stash), name, val); #endif cv = newCONSTSUB(stash, (char *)name, newSViv(val)); gvp = CvGV(cv); } /* export into callers namespace */ if (gvp caller_stash) { GV *alias = *(GV **)hv_fetch(caller_stash, (char *)name, name_len, TRUE); if (!isGV(alias)) { gv_init(alias, caller_stash, name, name_len, TRUE); } GvCV(alias) = GvCV(*gvp); } return val; } int modperl_const_compile(pTHX_ const char *classname, const char *arg, const char *name) { HV *stash = gv_stashpv(classname, TRUE); HV *caller_stash = Nullhv; constants_lookup lookup; constants_group_lookup group_lookup; if (strnEQ(classname, "APR", 3)) { lookup = modperl_constants_lookup_apr; group_lookup = modperl_constants_group_lookup_apr; } else { lookup = modperl_constants_lookup_apache; group_lookup = modperl_constants_group_lookup_apache; } if (*arg != '-') { /* only export into callers namespace without -compile arg */ caller_stash = gv_stashpv(arg, TRUE); } if (*name == ':') { int i; const char **group; name++; group = (*group_lookup)(name); for (i=0; group[i]; i++) { new_constsub(aTHX_ lookup, caller_stash, stash, group[i]); } } else { new_constsub(aTHX_ lookup, caller_stash, stash, name); } return 1; } XS(XS_modperl_const_compile) { I32 i; STRLEN n_a; char *stashname = HvNAME(GvSTASH(CvGV(cv))); const char *classname, *arg; dXSARGS; if (items 2) { Perl_croak(aTHX_ "Usage: %s-compile(...)"); } classname = *(stashname + 1) == 'P' ? "APR" : "Apache"; arg = SvPV(ST(1),n_a); for (i=2; iitems; i++) { (void)modperl_const_compile(aTHX_ classname, arg, SvPV(ST(i), n_a)); } XSRETURN_YES; } 1.1 modperl-2.0/src/modules/perl/modperl_const.h Index: modperl_const.h === #ifndef MODPERL_CONST_H #define MODPERL_CONST_H #include "modperl_constants.h" int modperl_const_compile(pTHX_ const char *classname, const char *arg, const char *name); XS(XS_modperl_const_compile); #endif /* MODPERL_CONST_H */
cvs commit: modperl-2.0/xs/Apache/Const - New directory
dougm 01/04/11 15:49:19 modperl-2.0/xs/Apache/Const - New directory
cvs commit: modperl-2.0/xs/Apache/Const Const.pm Const.xs Makefile.PL
dougm 01/04/11 15:50:10 Added: xs/Apache/Const Const.pm Const.xs Makefile.PL Log: module for compiling/export constants in the Apache:: namespace Revision ChangesPath 1.1 modperl-2.0/xs/Apache/Const/Const.pm Index: Const.pm === package Apache::Const; use ModPerl::Const (); use XSLoader (); our $VERSION = '0.01'; our @ISA = qw(ModPerl::Const); XSLoader::load(__PACKAGE__, $VERSION); 1; 1.1 modperl-2.0/xs/Apache/Const/Const.xs Index: Const.xs === #include "mod_perl.h" #include "modperl_const.h" MODULE = Apache::ConstPACKAGE = Apache::Const BOOT: newXS("Apache::Const::compile", XS_modperl_const_compile, file); 1.1 modperl-2.0/xs/Apache/Const/Makefile.PL Index: Makefile.PL === use lib qw(../lib); use ModPerl::MM (); ModPerl::MM::WriteMakefile( NAME = 'Apache::Const', VERSION_FROM = 'Const.pm', );
cvs commit: modperl-2.0/xs/APR/Const - New directory
dougm 01/04/11 15:50:23 modperl-2.0/xs/APR/Const - New directory
cvs commit: modperl-2.0/xs/ModPerl - New directory
dougm 01/04/11 15:51:08 modperl-2.0/xs/ModPerl - New directory
cvs commit: modperl-2.0/xs/ModPerl/Const - New directory
dougm 01/04/11 15:51:31 modperl-2.0/xs/ModPerl/Const - New directory
cvs commit: modperl-2.0/xs/ModPerl/Const Const.pm Const.xs Makefile.PL
dougm 01/04/11 15:53:14 Added: xs/ModPerl Makefile.PL xs/ModPerl/Const Const.pm Const.xs Makefile.PL Log: base module for compiling/exporting constants Revision ChangesPath 1.1 modperl-2.0/xs/ModPerl/Makefile.PL Index: Makefile.PL === use ExtUtils::MakeMaker; WriteMakefile(NAME = "ModPerl", VERSION = '0.01'); 1.1 modperl-2.0/xs/ModPerl/Const/Const.pm Index: Const.pm === package ModPerl::Const; use DynaLoader (); our $VERSION = '0.01'; our @ISA = qw(DynaLoader); #dlopen("Const.so", RTDL_GLOBAL); sub dl_load_flags { 0x01 } __PACKAGE__-bootstrap($VERSION); sub import { my $class = shift; my $arg; if ($_[0] and $_[0] =~ /^-compile/) { $arg = shift; #just compile the constants subs, export nothing } $arg ||= scalar caller; #compile and export into caller's namespace $class-compile($arg, @_ ? @_ : ':common'); } 1; 1.1 modperl-2.0/xs/ModPerl/Const/Const.xs Index: Const.xs === #include "mod_perl.h" MODULE = ModPerl::ConstPACKAGE = ModPerl::Const BOOT: file = file; /* -Wall */ 1.1 modperl-2.0/xs/ModPerl/Const/Makefile.PL Index: Makefile.PL === use lib qw(../lib); use ModPerl::MM (); use File::Basename; my $srcdir = '../../../src/modules/perl'; #link these two into Const.so so constants can be used outside of httpd my @names = map { "modperl_$_" } qw(const constants); my @obj; for (@names) { my $srcfile = join '.', "$srcdir/$_", 'c'; my $lnfile = join '.', $_, 'c'; push @obj, join '.', $_, 'o'; unlink $lnfile; symlink $srcfile, $lnfile; } ModPerl::MM::WriteMakefile( NAME = 'ModPerl::Const', VERSION_FROM = 'Const.pm', OBJECT = "Const.o @obj", );
cvs commit: modperl-2.0/t/apr - New directory
dougm 01/04/11 15:53:33 modperl-2.0/t/apr - New directory
cvs commit: modperl-2.0/t/apr constants.t
dougm 01/04/11 15:54:15 Added: t/aprconstants.t Log: test for APR::Const Revision ChangesPath 1.1 modperl-2.0/t/apr/constants.t Index: constants.t === use ExtUtils::testlib; use strict; use warnings FATAL = 'all'; use Test; use APR::Const -compile = qw(:common POLLIN); use APR::Const qw(:hook); plan tests = 4; ok ! defined POLLIN; ok APR::SUCCESS == 0; ok APR::POLLIN == 0x001; ok HOOK_LAST == 20;
cvs commit: modperl-2.0/t/apache constants.t
dougm 01/04/11 15:54:48 Added: t/apache constants.t Log: test for Apache::Const Revision ChangesPath 1.1 modperl-2.0/t/apache/constants.t Index: constants.t === use ExtUtils::testlib; use strict; use warnings FATAL = 'all'; use Test; use Apache::Const -compile = qw(DECLINED :http :common TAKE23); use Apache::Const; #defaults to :common plan tests = 10; ok AUTH_REQUIRED == 401; ok OK == 0; ok Apache::OK == 0; ok Apache::DECLINED == -1; ok Apache::HTTP_GONE == 410; ok ! defined M_GET; Apache::Const-import('M_GET'); ok defined M_GET; for (qw(BOGUS :bogus)) { eval { Apache::Const-import($_) }; ok $@; } eval { Apache::Const-import('-foobar') }; ok $@;
cvs commit: modperl-2.0/t/apache constants.t
dougm 01/04/11 16:02:59 Modified:t/apache constants.t Log: test usage Revision ChangesPath 1.2 +4 -1 modperl-2.0/t/apache/constants.t Index: constants.t === RCS file: /home/cvs/modperl-2.0/t/apache/constants.t,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- constants.t 2001/04/11 22:54:47 1.1 +++ constants.t 2001/04/11 23:02:57 1.2 @@ -7,7 +7,7 @@ use Apache::Const -compile = qw(DECLINED :http :common TAKE23); use Apache::Const; #defaults to :common -plan tests = 10; +plan tests = 11; ok AUTH_REQUIRED == 401; ok OK == 0; @@ -28,3 +28,6 @@ ok $@; +eval { Apache::Const::compile() }; + +ok $@;
cvs commit: modperl-2.0/src/modules/perl modperl_const.c
dougm 01/04/11 16:11:03 Modified:src/modules/perl modperl_const.c Log: tab begone Revision ChangesPath 1.3 +1 -1 modperl-2.0/src/modules/perl/modperl_const.c Index: modperl_const.c === RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_const.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- modperl_const.c 2001/04/11 23:02:12 1.2 +++ modperl_const.c 2001/04/11 23:11:01 1.3 @@ -94,7 +94,7 @@ dXSARGS; if (items 2) { - Perl_croak(aTHX_ "Usage: %s-compile(...)", stashname); +Perl_croak(aTHX_ "Usage: %s-compile(...)", stashname); } classname = *(stashname + 1) == 'P' ? "APR" : "Apache";
cvs commit: modperl-2.0/xs/ModPerl/Const .cvsignore
dougm 01/04/11 17:30:07 Modified:src/modules/perl .cvsignore Added: Apache-Test/t .cvsignore Apache-Test/t/conf .cvsignore t/apache .cvsignore t/apr.cvsignore xs/APR/Const .cvsignore xs/Apache .cvsignore xs/Apache/Const .cvsignore xs/ModPerl .cvsignore xs/ModPerl/Const .cvsignore Log: ignore Revision ChangesPath 1.1 modperl-2.0/Apache-Test/t/.cvsignore Index: .cvsignore === logs htdocs 1.1 modperl-2.0/Apache-Test/t/conf/.cvsignore Index: .cvsignore === mime.types extra.conf httpd.conf apache_test_config.pm 1.8 +2 -0 modperl-2.0/src/modules/perl/.cvsignore Index: .cvsignore === RCS file: /home/cvs/modperl-2.0/src/modules/perl/.cvsignore,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- .cvsignore2001/01/07 22:40:38 1.7 +++ .cvsignore2001/04/12 00:30:06 1.8 @@ -14,3 +14,5 @@ *.so *.i TAGS +modperl_constants.h +modperl_constants.c 1.1 modperl-2.0/t/apache/.cvsignore Index: .cvsignore === conftree.t 1.1 modperl-2.0/t/apr/.cvsignore Index: .cvsignore === netlib.t lib.t uuid.t 1.1 modperl-2.0/xs/APR/Const/.cvsignore Index: .cvsignore === pm_to_blib Makefile Const.c Const.bs 1.1 modperl-2.0/xs/Apache/.cvsignore Index: .cvsignore === pm_to_blib Makefile 1.1 modperl-2.0/xs/Apache/Const/.cvsignore Index: .cvsignore === pm_to_blib Makefile Const.c Const.bs 1.1 modperl-2.0/xs/ModPerl/.cvsignore Index: .cvsignore === Makefile pm_to_blib 1.1 modperl-2.0/xs/ModPerl/Const/.cvsignore Index: .cvsignore === Makefile pm_to_blib Const.c Const.bs
cvs commit: modperl-2.0/src/modules/perl modperl_const.c
dougm 01/04/11 17:45:42 Modified:src/modules/perl modperl_const.c Log: only bleedperl newCONSTSUB returns a CV, older Perls are void Revision ChangesPath 1.4 +4 -6 modperl-2.0/src/modules/perl/modperl_const.c Index: modperl_const.c === RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_const.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- modperl_const.c 2001/04/11 23:11:01 1.3 +++ modperl_const.c 2001/04/12 00:45:42 1.4 @@ -9,11 +9,11 @@ const char *name) { int name_len = strlen(name); -GV **gvp = (GV **)hv_fetch(stash, name, name_len, FALSE); +GV **gvp = (GV **)hv_fetch(stash, name, name_len, TRUE); int val; /* dont redefine */ -if (!(gvp GvCV(*gvp))) { +if (!isGV(*gvp) || !GvCV(*gvp)) { CV *cv; val = (*lookup)(name); @@ -23,13 +23,11 @@ HvNAME(stash), name, val); #endif -cv = newCONSTSUB(stash, (char *)name, newSViv(val)); - -gvp = CvGV(cv); +newCONSTSUB(stash, (char *)name, newSViv(val)); } /* export into callers namespace */ -if (gvp caller_stash) { +if (caller_stash) { GV *alias = *(GV **)hv_fetch(caller_stash, (char *)name, name_len, TRUE);
cvs commit: modperl-2.0/lib/Apache ParseSource.pm
dougm 01/04/11 17:48:02 Modified:lib/Apache ParseSource.pm Log: filter some junk out Revision ChangesPath 1.14 +2 -1 modperl-2.0/lib/Apache/ParseSource.pm Index: ParseSource.pm === RCS file: /home/cvs/modperl-2.0/lib/Apache/ParseSource.pm,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- ParseSource.pm2001/04/11 22:38:17 1.13 +++ ParseSource.pm2001/04/12 00:48:02 1.14 @@ -169,7 +169,7 @@ ); my $defines_unwanted = join '|', qw{ -HTTP_VERSION +HTTP_VERSION APR_EOL_STR }; sub get_constants { @@ -183,6 +183,7 @@ while ($fh) { if (s/^\#define\s+(\w+)\s+.*/$1/) { chomp; +next if /_H$/; next if $seen{$_}++; $self-handle_constant(\%constants); }
cvs commit: modperl-2.0/xs/tables/current/Apache ConstantsTable.pm
dougm 01/04/11 17:48:30 Modified:xs/tables/current/Apache ConstantsTable.pm Log: sync Revision ChangesPath 1.2 +2 -5 modperl-2.0/xs/tables/current/Apache/ConstantsTable.pm Index: ConstantsTable.pm === RCS file: /home/cvs/modperl-2.0/xs/tables/current/Apache/ConstantsTable.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ConstantsTable.pm 2001/04/11 22:39:49 1.1 +++ ConstantsTable.pm 2001/04/12 00:48:30 1.2 @@ -2,7 +2,7 @@ # !! # ! WARNING: generated by Apache::ParseSource/0.02 -# ! Wed Apr 11 15:21:18 2001 +# ! Wed Apr 11 17:44:45 2001 # ! do NOT edit, any changes will be lost ! # !! @@ -208,7 +208,6 @@ 'APR_DELONCLOSE' ], 'error' = [ - 'APR_ERRNO_H', 'APR_ENOSTAT', 'APR_ENOPOOL', 'APR_ENOFILE', @@ -231,7 +230,6 @@ 'APR_ERELATIVE', 'APR_EINCOMPLETE', 'APR_EABOVEROOT', - 'APR_EBADPATH', 'APR_EOF', 'APR_EINIT', 'APR_ENOTIMPL', @@ -258,8 +256,7 @@ 'APR_ETIMEDOUT', 'APR_EHOSTUNREACH', 'APR_ENETUNREACH', - 'APR_END', - 'APR_EOL_STR' + 'APR_END' ], 'finfo' = [ 'APR_FINFO_LINK',
cvs commit: modperl-2.0/src/modules/perl modperl_const.c
dougm 01/04/11 17:58:00 Modified:src/modules/perl modperl_const.c Log: unused variable Revision ChangesPath 1.5 +0 -2 modperl-2.0/src/modules/perl/modperl_const.c Index: modperl_const.c === RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_const.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- modperl_const.c 2001/04/12 00:45:42 1.4 +++ modperl_const.c 2001/04/12 00:58:00 1.5 @@ -14,8 +14,6 @@ /* dont redefine */ if (!isGV(*gvp) || !GvCV(*gvp)) { -CV *cv; - val = (*lookup)(name); #if 0
cvs commit: modperl-2.0/xs/tables/current/Apache ConstantsTable.pm
dougm 01/04/11 17:59:21 Modified:xs/tables/current/Apache ConstantsTable.pm Log: re-sync Revision ChangesPath 1.3 +3 -2 modperl-2.0/xs/tables/current/Apache/ConstantsTable.pm Index: ConstantsTable.pm === RCS file: /home/cvs/modperl-2.0/xs/tables/current/Apache/ConstantsTable.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ConstantsTable.pm 2001/04/12 00:48:30 1.2 +++ ConstantsTable.pm 2001/04/12 00:59:21 1.3 @@ -2,7 +2,7 @@ # !! # ! WARNING: generated by Apache::ParseSource/0.02 -# ! Wed Apr 11 17:44:45 2001 +# ! Wed Apr 11 17:57:08 2001 # ! do NOT edit, any changes will be lost ! # !! @@ -161,7 +161,7 @@ 'APR_FILEPATH_SECUREROOT', 'APR_FILEPATH_NOTRELATIVE', 'APR_FILEPATH_NOTABSOLUTE', - 'APR_FILEPATH_CANONICAL', + 'APR_FILEPATH_NATIVE', 'APR_FILEPATH_TRUENAME' ], 'hook' = [ @@ -230,6 +230,7 @@ 'APR_ERELATIVE', 'APR_EINCOMPLETE', 'APR_EABOVEROOT', + 'APR_EBADPATH', 'APR_EOF', 'APR_EINIT', 'APR_ENOTIMPL',
cvs commit: modperl-2.0/src/modules/perl mod_perl.c
dougm 01/04/11 18:03:14 Modified:src/modules/perl mod_perl.c Log: i swear eric did this already Revision ChangesPath 1.45 +1 -1 modperl-2.0/src/modules/perl/mod_perl.c Index: mod_perl.c === RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v retrieving revision 1.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- mod_perl.c2001/04/10 13:55:51 1.44 +++ mod_perl.c2001/04/12 01:03:14 1.45 @@ -14,7 +14,7 @@ perl_destruct(perl); perl_free(perl); -if (handles = modperl_xs_dl_handles_get(cdata-pool)) { +if ((handles = modperl_xs_dl_handles_get(cdata-pool))) { modperl_xs_dl_handles_close(handles); }
cvs commit: modperl-2.0/src/modules/perl modperl_const.c
dougm 01/04/11 20:01:40 Modified:t/apache constants.t src/modules/perl modperl_const.c Log: allow name for imports Revision ChangesPath 1.3 +3 -2 modperl-2.0/t/apache/constants.t Index: constants.t === RCS file: /home/cvs/modperl-2.0/t/apache/constants.t,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- constants.t 2001/04/11 23:02:57 1.2 +++ constants.t 2001/04/12 03:01:38 1.3 @@ -4,16 +4,17 @@ use Test; -use Apache::Const -compile = qw(DECLINED :http :common TAKE23); +use Apache::Const -compile = qw(DECLINED :http :common TAKE23 OPT_EXECCGI); use Apache::Const; #defaults to :common -plan tests = 11; +plan tests = 12; ok AUTH_REQUIRED == 401; ok OK == 0; ok Apache::OK == 0; ok Apache::DECLINED == -1; ok Apache::HTTP_GONE == 410; +ok Apache::OPT_EXECCGI; ok ! defined M_GET; Apache::Const-import('M_GET'); 1.6 +3 -0 modperl-2.0/src/modules/perl/modperl_const.c Index: modperl_const.c === RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_const.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- modperl_const.c 2001/04/12 00:58:00 1.5 +++ modperl_const.c 2001/04/12 03:01:39 1.6 @@ -75,6 +75,9 @@ } } else { +if (*name == '') { +name++; +} new_constsub(aTHX_ lookup, caller_stash, stash, name); }