Re: Question about mod_perl startup script
Hi! On Wed, Aug 13, 2003 at 09:28:37AM -0700, Wes Plate wrote: > I am getting up and running a server that wants mod_perl. The instructions > talks about a startup script. I'm very new, so I don't know how I'm > supposed to get this step completed. See here for some infos on startup.pl; http://perl.apache.org/docs/1.0/guide/config.html#The_Startup_File Additionally, you might want to search perl.apache.org for 'startup.pl' > The instructions I'm following is quoted below, it is from > http://doc.otrs.org/1.1/html/install-cli.html#INSTALL-CLI-WEBSERVER You're probably better off using perl.apache.org as a reference. Or read one (or more) of the books mentioned here: http://perl.apache.org/docs/offsite/books.html -- #!/usr/bin/perl http://domm.zsi.at for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
Re: [QUESTION] Can't read out verified username (auth)
On Wed, Jul 23, 2003 at 02:37:30PM +0200, Fatih Gey wrote: > From: "Martin Wickman" <[EMAIL PROTECTED]> [...] > > Nope. When the browser gets a 401 response from the server, it > > will (most likely) pop up a dialog asking the user for name and > > password. These credentials gets mangled into an Authorization > > header which gets sent with the next request once the user klicks > > OK in the dialog. Now, you can perform your authen-code as you > > like. Cookies and forms' got nothing to do with it, really. Read > > more here: http://www.faqs.org/rfcs/rfc2617.html > > > > Oh OK.., now i get it: In Basic Auth-Scheme, the Useragent -after > getting the required user and pass info from Client- resends his > Authorization-String in every Requestheader submitted to the > Server. Correct. > So the webserver have not to recognize an already authorized user, > as long as he's possible to authorize the user on every request. Correct. But you still have to do the authorization for each request. The nice thing is that one can delegate the authorization to the webserver, så that the application just have to check if REMOTE_USER is set or not. > So there's no way, to use an http-form instead of browser's ugly > authorization-box and perfrom the Basic Authorization (without > Cookies or taking an sessionkey with the url)? Correct, there is no official way. Except... there is one possibility. Most browser understands the url 'http://userid:[EMAIL PROTECTED]/protected/', and will parse that url and submit the credentials as if they were collected in the standard popup as usual. So, in fact, you _can_ do your authorization using a normal html form and then, upon valid credentials, create a such an url for the user to click/redirect. Messy, but it works. My personal opinion is that the "ugly" popup may indeed be plain and boring, but it is the only standard and resonably secure way of doing authentication. Btw, always use https or you will leak passwords all over the network.
Re: [QUESTION] Can't read out verified username (auth)
- Original Message - From: "Martin Wickman" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, July 21, 2003 4:41 PM Subject: Re: [QUESTION] Can't read out verified username (auth) > On Mon, Jul 21, 2003 at 12:36:55PM +0200, Fatih Gey wrote: > > > On Mon, Jul 21, 2003 at 01:05:58AM +0200, Fatih Gey wrote: > > > > > > > > i was writing my own AuthHandler with modperl v2 (v1.99_09). > > > > > > [...] > > > > > > > After having entered user/pass via html-form, this authentification > > > > does his job well, but on the following request (on same browser) > > > > $obj->user doesnt seem to return any value.. so this handler tries > > > > to compare http post data ( which arent present this time) with > > > > userdata in mysql-table.. resulting in an Auth_Required error. > > > > > > Well, how do you suppose that the browser should know how and what > > > credentials to send? > > > > > > Unless you (a) create a session-cookie, (b) encode a session-kei into > > > each url or (c) use the simple but proper Basic Authentication scheme, > > > there is no way to accomplish this. And from what I gather you are not > > > doing any of that? > > > > > > > I supposed the browser to resend always an unique "bowser session > > id", which is used by apache to save certain values, like > > $ENV{'REMOTE_USER'} (similiar to a session-cookie with uid and > > serverbased $vars) .. Isn't this the way Basic Authentication > > scheme works ? .. > > Nope. When the browser gets a 401 response from the server, it will > (most likely) pop up a dialog asking the user for name and > password. These credentials gets mangled into an Authorization header > which gets sent with the next request once the user klicks OK in the > dialog. Now, you can perform your authen-code as you like. > > Cookies and forms' got nothing to do with it, really. > > Read more here: http://www.faqs.org/rfcs/rfc2617.html > > > Oh OK.., now i get it: In Basic Auth-Scheme, the Useragent -after getting the required user and pass info from Client- resends his Authorization-String in every Requestheader submitted to the Server. So the webserver have not to recognize an already authorized user, as long as he's possible to authorize the user on every request. So there's no way, to use an http-form instead of browser's ugly authorization-box and perfrom the Basic Authorization (without Cookies or taking an sessionkey with the url)?
Re: Question to mod_perl gurus. Take 1 minute. Just choose rightanswer from list!
On Mon, 2003-07-21 at 07:31, Влад Сафронов wrote: > so the question: > which sub "main_deck" will be executed? > > 1. Hi, it's SCRIPT_1! > 2. Bye, it was SCRIPT_2! I think #2, because it was the last one eval'ed, and you can only have one sub with a given name in one package namespace. Apache::ePerl does not really support the use of in-line subs. You have to put them in a separate module. - Perrin
Re: [QUESTION] Can't read out verified username (auth)
On Mon, Jul 21, 2003 at 12:36:55PM +0200, Fatih Gey wrote: > > On Mon, Jul 21, 2003 at 01:05:58AM +0200, Fatih Gey wrote: > > > > > > i was writing my own AuthHandler with modperl v2 (v1.99_09). > > > > [...] > > > > > After having entered user/pass via html-form, this authentification > > > does his job well, but on the following request (on same browser) > > > $obj->user doesnt seem to return any value.. so this handler tries > > > to compare http post data ( which arent present this time) with > > > userdata in mysql-table.. resulting in an Auth_Required error. > > > > Well, how do you suppose that the browser should know how and what > > credentials to send? > > > > Unless you (a) create a session-cookie, (b) encode a session-kei into > > each url or (c) use the simple but proper Basic Authentication scheme, > > there is no way to accomplish this. And from what I gather you are not > > doing any of that? > > > > I supposed the browser to resend always an unique "bowser session > id", which is used by apache to save certain values, like > $ENV{'REMOTE_USER'} (similiar to a session-cookie with uid and > serverbased $vars) .. Isn't this the way Basic Authentication > scheme works ? .. Nope. When the browser gets a 401 response from the server, it will (most likely) pop up a dialog asking the user for name and password. These credentials gets mangled into an Authorization header which gets sent with the next request once the user klicks OK in the dialog. Now, you can perform your authen-code as you like. Cookies and forms' got nothing to do with it, really. Read more here: http://www.faqs.org/rfcs/rfc2617.html
Re: [QUESTION] Can't read out verified username (auth)
Hi! On Mon, Jul 21, 2003 at 12:36:55 +0200, Fatih Gey wrote: > I supposed the browser to resend always an unique "bowser session id", which > is used by apache to save certain values, like $ENV{'REMOTE_USER'} > (similiar to a session-cookie with uid and serverbased $vars) .. > Isn't this the way Basic Authentication scheme works ? .. I do not know how much Auth stuff changed in Apache 2.0/mod_perl 2, but you seem to mix up checking user credentials in the response phase (as done in CGI or PHP) with writing you own Auth Handlers that replace the standard Apache ones. If you get the user credentials via a web form, you are usually NOT using BASIC Auth but your own scheme (or something like Apache::AuthCookie). Thus, $r->connection->user is not set. Take a look at: * Chapter 6 of the Eagel book, available online at: http://modperl.com:9000/book/chapters/ch6.html * Chapter 13.7 of the mod_perl Cookbook * Apache::AuthCookie At least that's how it works with mod_perl 1.x ... -- #!/usr/bin/perl http://domm.zsi.at for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
Re: [QUESTION] Can't read out verified username (auth)
> On Mon, Jul 21, 2003 at 01:05:58AM +0200, Fatih Gey wrote: > > > > i was writing my own AuthHandler with modperl v2 (v1.99_09). > > [...] > > > After having entered user/pass via html-form, this authentification > > does his job well, but on the following request (on same browser) > > $obj->user doesnt seem to return any value.. so this handler tries > > to compare http post data ( which arent present this time) with > > userdata in mysql-table.. resulting in an Auth_Required error. > > Well, how do you suppose that the browser should know how and what > credentials to send? > > Unless you (a) create a session-cookie, (b) encode a session-kei into > each url or (c) use the simple but proper Basic Authentication scheme, > there is no way to accomplish this. And from what I gather you are not > doing any of that? > I supposed the browser to resend always an unique "bowser session id", which is used by apache to save certain values, like $ENV{'REMOTE_USER'} (similiar to a session-cookie with uid and serverbased $vars) .. Isn't this the way Basic Authentication scheme works ? ..
Re: [QUESTION] Can't read out verified username (auth)
On Mon, Jul 21, 2003 at 01:05:58AM +0200, Fatih Gey wrote: > > i was writing my own AuthHandler with modperl v2 (v1.99_09). [...] > After having entered user/pass via html-form, this authentification > does his job well, but on the following request (on same browser) > $obj->user doesnt seem to return any value.. so this handler tries > to compare http post data ( which arent present this time) with > userdata in mysql-table.. resulting in an Auth_Required error. Well, how do you suppose that the browser should know how and what credentials to send? Unless you (a) create a session-cookie, (b) encode a session-kei into each url or (c) use the simple but proper Basic Authentication scheme, there is no way to accomplish this. And from what I gather you are not doing any of that?
Re: Question about Apache::Request and query strings
Tom Gazzini wrote: I have a perl function which, amongst other things, needs to redirect the request to another page. It also needs to pass all the query parameters of the original request (both GET and POST) to the redirected page, and also add one parameter of it's own (an error message). Sounds simple enough, but I'm having problems with the passing paramters bit. Here's what I have: sub show_error { my ($r, $error) = @_; # $r is an Apache:Request object passed by the caller my $uri = URI->new($url); foreach my $p (@params) { $uri->query_form($p => $r->param($p)); } $uri->query_form(error => $error); $r->internal_redirect($uri->canonical); } But this doesn't work. The '?error=' query string gets passed, but the orginal request query strings don't. What am I doing wrong? And is there an easier way? This example may help: http://perl.apache.org/docs/1.0/guide/snippets.html#Reusing_Data_from_POST_request __ 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: Question about Apache::Request and query strings
Tom Where's @params coming from ? Are you sure it's not empty ? Swen |-+> | | "Tom Gazzini"| | | <[EMAIL PROTECTED]| | | uk> | | || | | 06/26/2003 04:42 | | | PM | | || |-+> >--| | | | To: <[EMAIL PROTECTED]> | | cc: | | Subject: Question about Apache::Request and query strings | | | | | >--| I have a perl function which, amongst other things, needs to redirect the request to another page. It also needs to pass all the query parameters of the original request (both GET and POST) to the redirected page, and also add one parameter of it's own (an error message). Sounds simple enough, but I'm having problems with the passing paramters bit. Here's what I have: sub show_error { my ($r, $error) = @_; # $r is an Apache:Request object passed by the caller my $uri = URI->new($url); foreach my $p (@params) { $uri->query_form($p => $r->param($p)); } $uri->query_form(error => $error); $r->internal_redirect($uri->canonical); } But this doesn't work. The '?error=' query string gets passed, but the orginal request query strings don't. What am I doing wrong? And is there an easier way? Thanks, Tom
Re: [Question] Handler executing twice!?!
AHA! That's the culprit! mod_dir implements this at the fix-up stage to allow the directive in .htaccess files, hence my confusion. Thank you Stas! It all makes sense now. -Vince Stas Bekman wrote: Vince Veselosky wrote: [...] The thing that triggered it was the fact that the url was an "index.pl" file. When called as "example.com/index.pl", everything worked as expected, but when called as "example.com/", apache (or something) generated a subrequest for index.pl. NOW my question is, why does apache generate the subrequest *after* the HeaderParser phase, causing it to execute twice? This seems like a pure URI translation issue, and I would expect it to happen in the URI translation phase, *before* the HeaderParser executes at all. I'm wondering if this happens in all requests, or if it is related to Apache::Registry in the content handler. I didn't take the time to track down exactly where the subrequest originates, so I'm not sure if it is a mod_perl issue or just an apache issue. I might one day build some test cases and figure it out, but not soon. Anyone have some insight to add? Do you have mod_dir (DirectoryIndex) configured? It performs a rewrite/sub_request-redirect in the fixup stage. http://httpd.apache.org/docs/mod/mod_dir.html __ Stas Bekman JAm_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: [Question] Handler executing twice!?!
Vince Veselosky wrote: [...] The thing that triggered it was the fact that the url was an "index.pl" file. When called as "example.com/index.pl", everything worked as expected, but when called as "example.com/", apache (or something) generated a subrequest for index.pl. NOW my question is, why does apache generate the subrequest *after* the HeaderParser phase, causing it to execute twice? This seems like a pure URI translation issue, and I would expect it to happen in the URI translation phase, *before* the HeaderParser executes at all. I'm wondering if this happens in all requests, or if it is related to Apache::Registry in the content handler. I didn't take the time to track down exactly where the subrequest originates, so I'm not sure if it is a mod_perl issue or just an apache issue. I might one day build some test cases and figure it out, but not soon. Anyone have some insight to add? Do you have mod_dir (DirectoryIndex) configured? It performs a rewrite/sub_request-redirect in the fixup stage. http://httpd.apache.org/docs/mod/mod_dir.html __ 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: [Question] Handler executing twice!?!
Whew, okay, I have an answer, but I also still have a question. The short explanation: The "bug" in my code was the fact that I forgot that a request might also be a subrequest, so now I check if the request is_initial_req and short circuit if not. (And a tiny bug in my trace code caused my debug log to report is_initial_req as true all the time. Stupid operator precedence bugs!) That solves my immediate problem and gives me something to watch for in future. The thing that triggered it was the fact that the url was an "index.pl" file. When called as "example.com/index.pl", everything worked as expected, but when called as "example.com/", apache (or something) generated a subrequest for index.pl. NOW my question is, why does apache generate the subrequest *after* the HeaderParser phase, causing it to execute twice? This seems like a pure URI translation issue, and I would expect it to happen in the URI translation phase, *before* the HeaderParser executes at all. I'm wondering if this happens in all requests, or if it is related to Apache::Registry in the content handler. I didn't take the time to track down exactly where the subrequest originates, so I'm not sure if it is a mod_perl issue or just an apache issue. I might one day build some test cases and figure it out, but not soon. Anyone have some insight to add? Thanks to everyone who sent help and suggestions! -Vince Veselosky http://ice.control-escape.com Vince Veselosky wrote: Now here is the thing. The PerlHeaderParserHandler executes TWICE for every request. The second time through is apparently a different Apache object from the first, as when I write to $r->notes, only the values from the second execution are visible to the content handler. Now, if I comment out the PerlHeaderParserHandler line in the conf file, the handler never executes at all (which is expected), so it isn't getting pushed onto handlers from somewhere else. Why is this thing running twice, and how can I make it stop??? I hope someone can hit me over the head with a clue-stick, because this thing is driving me completely bananas! All help is greatly appreciated, Vince Veselosky http://ice.control-escape.com
Re: [Question] Handler executing twice!?!
Vince Veselosky wrote: [...] Now here is the thing. The PerlHeaderParserHandler executes TWICE for every request. The second time through is apparently a different Apache Could it be that something in your code pushes the handler on the stack again? I'd suggest debugging with Apache::ShowRequest? http://search.cpan.org/author/DOUGM/Apache-Module-0.11/lib/Apache/ShowRequest.pm Do tracing: http://perl.apache.org/docs/1.0/guide/debug.html#Debug_Tracing Use the 'h' setting PerlSetEnv MOD_PERL_TRACE h Try to use $r->get_handlers() and see what you get. Finally, if nothing helps, go with gdb. Also what happens if you don't use Apache::Request? __ 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: [Question] Prototype Mismatch for Base64 under RunPerl
[EMAIL PROTECTED] wrote: OS: Windows2000 Apache: 1.3.27 ModPerl: 1.27_01-dev I have a script that ran perfectly well when not run under ModPerl but have recently tried to run it under modperl using the RunPerl module. It still seems to run OK, however my error log now seems to being filled with the following error messages ... Prototype mismatch: sub Apache::ROOT::MSS_2dcgi::documents_2ecgi::encode_base64 vs ($;$) at c:/NMS/Perl/lib/Exporter.pm line 57. Prototype mismatch: sub Apache::ROOT::MSS_2dcgi::documents_2ecgi::decode_base64 vs ($) at c:/NMS/Perl/lib/Exporter.pm line 57. The errors are connected with the MIME::Base64 module when it defines the external subroutine names. The relevant section of my conf file is ... Alias /MSS-cgi/"C:/NMS/MSSWeb/cgi-bin/" Alias /MSS-js/ "C:/NMS/MSSWeb/includes/" Alias /MSS-images/ "C:/NMS/MSSWeb/images/" AllowOverride None Order allow,deny Allow from all SetHandler perl-script PerlHandler Apache::PerlRun Options +ExecCGI PerlSendHeader On I've searched all potential areas on the net with no success. Can anyone here assist ? While working on the potential areas you must have missed some real resources ;) Usually the search path is simple: 1. perl.apache.org/docs/ 2. http://perl.apache.org/maillist/modperl.html#Searchable_Archives failing to find anything at [1], I went to [2] and here you go: http://marc.theaimsgroup.com/?l=apache-modperl&w=2&r=1&s=Prototype+mismatch&q=b In particular this reply from Perrin seems to be most helpful: http://marc.theaimsgroup.com/?l=apache-modperl&m=100515176231857&w=2 And since you haven't posted the information we ask for: http://perl.apache.org/docs/1.0/guide/help.html#How_to_Report_Problems I'm guessing that you are using perl 5.6.0 which may be the reason for the problem. __ 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: Question from a newbie regarding apache and mod_perl
On Mon, 6 Jan 2003, sireesha vudatha wrote: > Date: Mon, 6 Jan 2003 16:25:04 -0800 (PST) > From: sireesha vudatha <[EMAIL PROTECTED]> > To: [EMAIL PROTECTED] > Subject: Question from a newbie regarding apache and mod_perl > > > Hi all, > > I am a beginner and am doing a course project for which I want to > know if mod_perl is suitable for my problem at hand. > > My problem is: When a user types in a question, then my perl > program(or whatever) has to go to the database and return the answer > back to the user. If its not able to find the question in the > database, then it has to transfer the connection to a person who > will answer the question and the database has now got to be updated > with this new question and answer. > > (I had written a simple program using the DBI and DBD::Mysql for > just retrieving the answer from the database) > > I don't know if the rest of my problem can be solved using mod_perl... > > Can anyone give me some ideas or suggestions that would help me out... > > Thanking u all in anticipation.. > > Sireesha Sireesha, Nothing you descibe seems to require mod_perl. I think perhaps you are unclear on just what mod_perl is meant to do. A great many people just use mod_perl to speed up execution of their Perl scripts. More advanced users want to manipulate different parts of the Apache request cycle using Perl. It sounds like your task will be most easily accomplished by sticking with a standard CGI script. If you find the performance is not what you desire, then consider running it under Apache::Registry. ky
Re: Question on possible effects of mod_perl on mod_cgi
That was it. I redefined Sig{__WARN__} to drop all STDERR output and my script output everything it was supposed to and exited cleanly. Now there is another bug that undoubtedly came from my trying to track down the original issue... Thanks. That saved me a ton of time. Tom Terra Info wrote: Ugh! I checked the users list archives but I never checked the dev archives. I liked p5p back in the day because it was all one in the same. Chaos, but oddly efficient. Thanks for the pointer. As for the docs, I freely admit I missed it. I was not looking for PerlRun stuff when I went through that migration piece (I was looking for a different project) so when I started dealing with this I did not remember seeing it, therefore in my warped mind it did not exist. Right now, int/0 looks perfectly fine to me. Anyhow, I doubt listing all of them would help, just add in Apache::PerlRun into the header so it reads "The Apache::Registry and Apache::PerlRun Families" (or ~) and that would get people's attention a little bit better. Thanks, Tom Stas Bekman wrote: OK, now it's clear, thanks for the explanation. FWIW, there were discussions of possible pipes read/write deadlocks in the current mod_cgi implementation in Apache 2.0, so you may experience just that. Check the httpd-dev list archives. [...] * Given that, I noticed PerlRun was no longer prominintly displayed in the docs What made you think so? The PerlRun docs weren't touched for ages. and the migration FAQ did not to my knowledge even touch on it. Because all you have to do is to s/Apache::/ModPerl::/ for all registry handlers, which includes PerlRun. Do you think that it'll help to explicitly list them all? __ 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 -- - Terra Novum Research [EMAIL PROTECTED] www.terranovum.com (617) 923-4132 PO Box 362 Watertown, MA 02471-0362 They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety. Benjamin Franklin, Historical Review of Pennsylvania, 1759
Re: Question on possible effects of mod_perl on mod_cgi
Ugh! I checked the users list archives but I never checked the dev archives. I liked p5p back in the day because it was all one in the same. Chaos, but oddly efficient. Thanks for the pointer. As for the docs, I freely admit I missed it. I was not looking for PerlRun stuff when I went through that migration piece (I was looking for a different project) so when I started dealing with this I did not remember seeing it, therefore in my warped mind it did not exist. Right now, int/0 looks perfectly fine to me. Anyhow, I doubt listing all of them would help, just add in Apache::PerlRun into the header so it reads "The Apache::Registry and Apache::PerlRun Families" (or ~) and that would get people's attention a little bit better. Thanks, Tom Stas Bekman wrote: OK, now it's clear, thanks for the explanation. FWIW, there were discussions of possible pipes read/write deadlocks in the current mod_cgi implementation in Apache 2.0, so you may experience just that. Check the httpd-dev list archives. [...] * Given that, I noticed PerlRun was no longer prominintly displayed in the docs What made you think so? The PerlRun docs weren't touched for ages. and the migration FAQ did not to my knowledge even touch on it. Because all you have to do is to s/Apache::/ModPerl::/ for all registry handlers, which includes PerlRun. Do you think that it'll help to explicitly list them all? __ 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 -- - Terra Novum Research [EMAIL PROTECTED] www.terranovum.com (617) 923-4132 PO Box 362 Watertown, MA 02471-0362 "The wireless telegraph is not difficult to understand. The ordinary telegraph is like a very long cat. You pull the tail in New York, and it meows in Los Angeles. The wireless is the same, only without the cat." -- Einstein
Re: Question on possible effects of mod_perl on mod_cgi
OK, now it's clear, thanks for the explanation. FWIW, there were discussions of possible pipes read/write deadlocks in the current mod_cgi implementation in Apache 2.0, so you may experience just that. Check the httpd-dev list archives. [...] * Given that, I noticed PerlRun was no longer prominintly displayed in the docs What made you think so? The PerlRun docs weren't touched for ages. and the migration FAQ did not to my knowledge even touch on it. Because all you have to do is to s/Apache::/ModPerl::/ for all registry handlers, which includes PerlRun. Do you think that it'll help to explicitly list them all? __ 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: Question on possible effects of mod_perl on mod_cgi
Stas Bekman wrote: I still don't understand you. When do you see the problem? When you run the script under mod_cgi or mod_perl? I don't understand why do you keep referring to mod_cgi. And we are talking about Apache/mod_perl 2.0 here, right? No. I am talking about mod_cgi when I say mod_cgi. In short you answered my questions with answers I pretty much expected but I wanted my asumptions valiidated. For that I am grateful. Long answer: Let me state why I was looking (ie; the [il]logic to my thinking) to eliminate mod_perl from the list of of possible reasons why a standard CGI would be failing. * It was a perl CGI. * It was failing in ways that were similar, although not directly alike, ways that poorly written perl apps under mod_perl fail. For example, it would hangup, it would bahave oddly like there were variables set that should have been cleared (ie; unscoped globals). * It was a perl CGI. Hence I know that because of the excellent integration of perl into apache (perl in conf files, etc) as a result of mod_perl, I was looking to see if anyone here on mod_perl's list knew of any interactions, etc that could have spilled over into mod_cgi's handling of perl scripts for instance. * Given that, I noticed PerlRun was no longer prominintly displayed in the docs and the migration FAQ did not to my knowledge even touch on it. I was thiking maybe it had become an automatic thing in mod_cgi for mod_perl enabled httpds to try to speed up perl CGI's by using an in-process perl interpretor instead of backticking it. If that was happening I figured someone here would probably know about it. I posted questions to apache's list but it has been slow going getting people knowledgable about mod_cgi to answer. * There was more (il)logic but I think that should be enough to fill in the holes. Thanks, Tom -- - Terra Novum Research [EMAIL PROTECTED] www.terranovum.com (617) 923-4132 PO Box 362 Watertown, MA 02471-0362 "The wireless telegraph is not difficult to understand. The ordinary telegraph is like a very long cat. You pull the tail in New York, and it meows in Los Angeles. The wireless is the same, only without the cat." -- Einstein
Re: Question on possible effects of mod_perl on mod_cgi
Terra Info wrote: The threads issue is my bag. I know better but was busy and distracted, hence I just did a reply to all and trimmed out the excess. No prob. the comment was addressed to all subscribers. Anyhow, I think you may have misunderstood my question. Although I have a specific issue at hand, my question was more generic. My questions are more related to the overall design of mod_perl and its effects on the functioning of Apache's other components. Anyhow, in answer to your question, I have not tried it under mod_perl 1 or 2 because this script would never function under them. It is that poorly written. I meant the Apache::PerlRun from mod_perl 1.0. Obviously I wasn't trying to suggest for you to run it as a pure handler ;) Notice that ModPerl::PerlRun and others aren't exactly the same as their 1.0 counterparts. Due to the threading issues, currently 2.0's registry aren't chdir()'ing to the scripts directory. That may change in the future. But this may be unrelated to your problem. So, is there any link between mod_perl (1.99..) and mod_cgi (Apache 2)? No. Does mod_perl in anyway influence or maybe cause PerlRun like caching under mod_cgi? The two has nothing to do with each other. I realize the answers are probably no but I am at my wits end with this bug and am trying to elminate things as causes that normally I would not even think were related. So you have a better handle on why I am asking, I have a script that runs fine from the cmd line under all parameter combinations, runs fine in most situations under CGI but when a few param combinations occur it fails to execute to completion. The odd thing is the place it hangs up is the line before exit;. I added a warn('foo at line nnn') after every line and it warns all they way to the line for exit; but never exists and apache tells me that the script times out. That combined with the fact that the script, when executed on the command line, under a faked up ENV that matches exactly what it gets from httpd runs flawlessly and to completion, seems to suggest something is happening in the in-process handling of the CGI script. Does that problem lie in mod_cgi, perl or in some funky interaction between components? With some of the symptoms I saw I wanted to rule out mod_perl before I went any further. Thanks and I hope this made it more clear what I was looking for and why, I still don't understand you. When do you see the problem? When you run the script under mod_cgi or mod_perl? I don't understand why do you keep referring to mod_cgi. And we are talking about Apache/mod_perl 2.0 here, right? __ 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: Question on possible effects of mod_perl on mod_cgi
The threads issue is my bag. I know better but was busy and distracted, hence I just did a reply to all and trimmed out the excess. Anyhow, I think you may have misunderstood my question. Although I have a specific issue at hand, my question was more generic. My questions are more related to the overall design of mod_perl and its effects on the functioning of Apache's other components. Anyhow, in answer to your question, I have not tried it under mod_perl 1 or 2 because this script would never function under them. It is that poorly written. So, is there any link between mod_perl (1.99..) and mod_cgi (Apache 2)? Does mod_perl in anyway influence or maybe cause PerlRun like caching under mod_cgi? I realize the answers are probably no but I am at my wits end with this bug and am trying to elminate things as causes that normally I would not even think were related. So you have a better handle on why I am asking, I have a script that runs fine from the cmd line under all parameter combinations, runs fine in most situations under CGI but when a few param combinations occur it fails to execute to completion. The odd thing is the place it hangs up is the line before exit;. I added a warn('foo at line nnn') after every line and it warns all they way to the line for exit; but never exists and apache tells me that the script times out. That combined with the fact that the script, when executed on the command line, under a faked up ENV that matches exactly what it gets from httpd runs flawlessly and to completion, seems to suggest something is happening in the in-process handling of the CGI script. Does that problem lie in mod_cgi, perl or in some funky interaction between components? With some of the symptoms I saw I wanted to rule out mod_perl before I went any further. Thanks and I hope this made it more clear what I was looking for and why, Tom Stas Bekman wrote: [When starting a new thread, please remember to create a new mail, rather than doing a reply to one of the threads. If you don't do that, your mail software attaches reference ids to the original thread and your post gets folded into the thread you've replied to. people may delete the whole thread without seeing your post if they weren't interested in this thread. it also has an ill effect on mail archives.] Terra Info wrote: I am debugging a particularly nasty issue right now on a perl script that when written 2+ yrs ago worked fine. NB: It does not run under mod_perl and it has not been modified since then. You mean, it has never worked under mod_perl 1.0? Can you test it with mod_perl 1.0? I run it from the cmd line (with the identical query string and all referenced %ENV vars set identical as well) and it runs fine. I run it as a typical CGI and it has problems that, in *some* ways, mirror the behavior of a poorly written (symptoms associated with unscoped globals, etc;) perl app under mod_perl. And since this is a poorly written app I am curious. Is there any link between mod_perl (1.99..) and mod_cgi (Apache 2)? Does mod_perl in anyway influence or maybe cause PerlRun like caching under mod_cgi? I am just trying to eliminate all possibilities as this one has been a real PITFA. You can turn the debugging on and see whether it gets cached. in ModPerl::RegistryCooker set: use constant DEBUG => 4; restart the server and watch error_log, compare the output of Registry with PerlRun. __ 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 -- - Terra Novum Research [EMAIL PROTECTED] www.terranovum.com (617) 923-4132 PO Box 362 Watertown, MA 02471-0362 In time-keeping, in trading, in fighting, men counted numbers; and finally, as the habit grew, only numbers counted. Lewis Mumford
Re: Question on possible effects of mod_perl on mod_cgi
[When starting a new thread, please remember to create a new mail, rather than doing a reply to one of the threads. If you don't do that, your mail software attaches reference ids to the original thread and your post gets folded into the thread you've replied to. people may delete the whole thread without seeing your post if they weren't interested in this thread. it also has an ill effect on mail archives.] Terra Info wrote: I am debugging a particularly nasty issue right now on a perl script that when written 2+ yrs ago worked fine. NB: It does not run under mod_perl and it has not been modified since then. You mean, it has never worked under mod_perl 1.0? Can you test it with mod_perl 1.0? I run it from the cmd line (with the identical query string and all referenced %ENV vars set identical as well) and it runs fine. I run it as a typical CGI and it has problems that, in *some* ways, mirror the behavior of a poorly written (symptoms associated with unscoped globals, etc;) perl app under mod_perl. And since this is a poorly written app I am curious. Is there any link between mod_perl (1.99..) and mod_cgi (Apache 2)? Does mod_perl in anyway influence or maybe cause PerlRun like caching under mod_cgi? I am just trying to eliminate all possibilities as this one has been a real PITFA. You can turn the debugging on and see whether it gets cached. in ModPerl::RegistryCooker set: use constant DEBUG => 4; restart the server and watch error_log, compare the output of Registry with PerlRun. __ 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: question about using a proxy with mod_perl
I believe that the Rewrite rule matches only the document root portion of the URL. So for a request http://a.blah.com/mypath/mypage.html All you will get to match on is this much /mypath/mypage.html To do what you are trying to do, I believe you'll need to use some RewriteCond directives, something like (read: I'm just doing this from memory, you'll need to test)... RewriteCond %{HTTP_HOST} ^b RewriteRule ^/(.*) http://b.blah.com:4374/$1 [P,L] Hope that helps or points you in the right direction. Quoting Brian Hirt ([EMAIL PROTECTED]): > > I have a question about setting up a proxy for a mod_perl server. I've > got a simple proxy set up that listens on port 80 and proxies to the > mod_perl server running on a different port. > > For example. http://blah.blah.com/anything/ will go to > http://blah.blah.com:4374/anything/ and the rules to do that are below. > > RewriteEngine on > RewriteLogLevel 0 > RewriteRule ^/(.*)$ http://blah.blah.com:4374/$1 [P,L] > NoCache * > ProxyPassReverse / http://blah.blah.com/ > > This is fine when you are proxying a single machine name, but how would > i set up a proxy that would send http://a.blah.com -> > http://a.blah.com:4374, http://b.blah.com -> http://b.blah.com:4374, > etc etc etc. There are about 40 different names that need to be > proxied, and it's important that the destination name is the same as the > source machine name. > > It seems like something like > RewriteRule ^http://([^.]+).blah.com/(.*)$ http://$1.blah.com:4374/$2 > [P,L] > > should work, but it doesn't. > > -- > Brian Hirt <[EMAIL PROTECTED]>
Re: question about using a proxy with mod_perl
Good afternoon, On 17/10/02 at 2:46 PM, Lyle Brooks <[EMAIL PROTECTED]> wrote: >To do what you are trying to do, I believe you'll need to use some RewriteCond >directives, something like (read: I'm just doing this from memory, you'll >need to test)... > >RewriteCond %{HTTP_HOST} ^b >RewriteRule ^/(.*) http://b.blah.com:4374/$1 [P,L] > I don't think the RewriteCond is needed. I just use something like the following to proxy all files ending in .cgi: RewriteRule ^/(.*).cgi(.*)$http://%{HTTP_HOST}:8001/$1.cgi$2 [P] I also have lots of domain names that need to get passed to the back-end server. My setup gets even more fun when taking into account the internal NAT addresses that are needed for proxying but local dns serves public external addresses. I had a fun weekend learning about views and acl's in bind to get around that problem. (And then patching output from oDNS to support it.) Charlie -- Charlie Garrison[EMAIL PROTECTED] PO Box 141, Windsor, NSW 2756, Australia
Re: QUESTION - Apache::AuthenCache
* JOSE SOLE <[EMAIL PROTECTED]> [2002-07-08 14:24]: > I am trying to use Apache::AuthenCache as my authentication handler > for my server. I keep getting a FORBIDDEN error each time I try to > access the index.html page by only typing the URL up to the directory. > > Example: > > //FORBIDDEN ERROR > http://elvis.arl.psu.edu:9092/footer > > //IT WORKS > http://elvis.arl.psu.edu:9092/footer/ > http://elvis.arl.psu.edu:9092/footer/index.html Add some debugging to the handler to ensure that the client is sending the WWW-Authenticate header to both /footer and /footer/. The browser sees them as different locations (the first is a file named footer, the second is a directory name footer), and possibly doesn't consider the first to be within the auth realm for which it has a username/password. Apache's mod_dir usually Does The Right Thing here, when given the chance; are you using a perl-handler on Location /? (darren) -- It is wrong always, everywhere and for everyone to believe anything upon insufficient evidence. -- W. K. Clifford, British philosopher, circa 1876
Re: Question about Work Wanted ads
On Wed, 19 Jun 2002, southernstar wrote: > I was aware that on occasion individuals are welcome to post work > wanted ads, but I have some specific questions about how I can > actually get some short contract work here and there, since: [...] Get involved with some of the open source projects; that's always good to put on your resume. - ask -- ask bjoern hansen, http://askbjoernhansen.com/ !try; do();
Re: [OT] RE: Question about Work Wanted ads
That's true. However, you can deduct any expenses incurred in the course of volunteer work, such as milage to and from the site, and so forth. Again, this is in the US, YMMV elsewhere. "David Harris" <[EMAIL PROTECTED]> on 06/20/2002 04:04:38 PM To: "'Marc Spitzer'" <[EMAIL PROTECTED]>, [EMAIL PROTECTED] cc:(bcc: Wesley Sheldahl/Lex/Lexmark) Subject: [OT] RE: Question about Work Wanted ads Marc Spitzer [mailto:[EMAIL PROTECTED]] wrote: > 3: you maybe able to deduct your volunteer work from your > taxes( I have no idea about AU's laws though). You can not claim donated services as a tax deduction in the US. (Probably not other places too, I'd guess.) The theory is this: you'd have to book both a revenue for the work you did and a deduction for the donation. These would cancel out. David
[OT] RE: Question about Work Wanted ads
Marc Spitzer [mailto:[EMAIL PROTECTED]] wrote: > 3: you maybe able to deduct your volunteer work from your > taxes( I have no idea about AU's laws though). You can not claim donated services as a tax deduction in the US. (Probably not other places too, I'd guess.) The theory is this: you'd have to book both a revenue for the work you did and a deduction for the donation. These would cancel out. David
Re: Question about Work Wanted ads
Well if you have some time available, do some volunteer work to build up your resume. This helps you in at least 2 ways: 1: you get experience 2: your "happy clients" may know people who want to be "happy clients" and have a budget. 3: you maybe able to deduct your volunteer work from your taxes( I have no idea about AU's laws though). Also talk to your professors, they may know someone who needs work done. And check the walls in the CS/IS/EE/ME/... departments for job postings. One last thing, when you get clients keep track of them. Ask if there is any way you can help them again, every 3-6 months or so. To keep clients you need to build a relationship with them. happy hunting marc On Wed, 19 Jun 2002 20:19:51 -0700 (PDT) southernstar <[EMAIL PROTECTED]> wrote: > Hi everyone, > > I was aware that on occasion individuals are welcome to post work > wanted ads, but I have some specific questions about how I can > actually get some short contract work here and there, since: > > * I don't have a resume or CV and it would be useless to write one > (nothing to put in it)* I have no commercial experience > * I'm not quite sure what sort of examples I can give to get someone > interested in offering me a short contract to build up some experience > with before I look for a permanent job. > > I'm a student and don't have any money anyway, so I can't very well > travel to work on someone's premesis - I live in a remote/rural part > of Australia. It looks like it could be a tough job to get telecommute > contracts for short jobs (one or two scripts at a time) especially for > someone like me who really doesn't have much to show, except for some > example scripts which I can put together in an archive that can be > downloaded by a potential employer, I guess. > > Does anyone have any advice for me, especially if you are hiring for > your own company or if you're a programmer who was once in my > situation? > > I have my own software company by the way, and it's possible I can > look for sub-contract work. Again, I'm not sure where to start. I'm > happy starting as an individual programmer being hired for short > contracts, and I can build my way up to sub contracting my whole > company for work, and it would be valuable experience before I take > that step anyway. > > Thanks heaps! :) > > -- > James >
Re: question on apache::asp
[EMAIL PROTECTED] wrote: > > So can I use this module to run asp.net on apache(installed on windows)? > > I need to run asp.net on apache(windows). > No. Apache::ASP supports perl scripting for ASP v2.0 model. ASP.net is not supported, nor C#, VBScript, etc. -- Josh _ Joshua Chamas Chamas Enterprises Inc. NodeWorks Founder Huntington Beach, CA USA http://www.nodeworks.com1-714-625-4051
Re: [QUESTION][BUG] apache dies with SIGSEGV
On Tue, Feb 26, 2002 at 11:36:39AM +0100, gaston wrote: > Hi list > > I wrote a small perl module using perl/Expat for parsing XML-files. > With apache 1.3.19 and perl 5.6.0 and Expat 2.27 it works fine. > In my new configuration (apache 1.3.20, perl 5.6.1 and Expat 2.30) > apache dies with an SIGSEGV on loading. > > The error occured during the function call ParseStream() in Expat.pm. > When i checked the core file with gdb i get this: Scope this: http://groups.yahoo.com/group/modperl/message/39557 So try switching to Apache 1.3.23 (the latest)? Hope this helps! :) -- \_/} Mark P. Fister Java, Java, everywhere, and all\_/} \_/} eBay, Inc. the cups did shrink; Java, Java\_/} \_/} Austin, TX everywhere, nor any drop to drink! \_/}
Re: Question...
Actually, you can use the onUnload handler in the body tag. http://developer.netscape.com/docs/manuals/communicator/jsref/evnt24.htm Rodney Hampton Jon Robison wrote: > > On page leave? Well I think you can of course use javascript on all the > links on the page, but I don't believe you can do much about the user > typing in a new url in the browser. . . > but that's just IMHO. > > --Jon > > Ryan Parr wrote: > > > > I think I'm missing something... > > > > If you set a session cookie (i.e. one with no expiry time) then the cookie > > will be deleted immediately upon browser close, forcing the user to login > > again if they've closed their browser instance. > > > > If you don't use cookies and allow basic auth then the exact same behavior > > is called, forcing the user to re-login only if they've closed that browser > > instance. > > > > Is there someway to expire cookies on page leave, or is this the smartass > > thing you were referring to? :) > > > > -- Ryan Parr > > > > - Original Message - > > From: "Jon Robison" <[EMAIL PROTECTED]> > > To: "Ron Beck" <[EMAIL PROTECTED]> > > Cc: <[EMAIL PROTECTED]> > > Sent: Tuesday, February 12, 2002 12:28 PM > > Subject: Re: Question... > > > > > Cookies! > > > > > > /me is in smartass mode today. > > > > > > --Jon > > > > > > Ron Beck wrote: > > > > > > > > Hello all, > > > > I need to know how to clear the $ENV variables. For example, I use a > > > > .htaccess file for specific directories which requires the user to enter > > > > userID and password. When they exit the page, I want them to have to > > > > re-enter userID and passwd if they enter the page again. Does anyone > > > > know how this is accomplished? > > > > > > > > TIA, > > > > Ron
Re: Question...
Do you need to expire the cookie when you leave the page? How about the following. When they login, you send down a cookie. when they go to that page, you check the cookie they sent, but send out a new value for that cookie, invalidating it. So when they leave that page they send back your invalid cookie. When they go back to the page, they'll send the invalid cookie, and you can then prompt them to log in or whatever. You'll get the invalid cookie sent back for images on that page, but that usually isn't a problem. Steve Piner Ryan Parr wrote: > > I think I'm missing something... > > If you set a session cookie (i.e. one with no expiry time) then the cookie > will be deleted immediately upon browser close, forcing the user to login > again if they've closed their browser instance. > > If you don't use cookies and allow basic auth then the exact same behavior > is called, forcing the user to re-login only if they've closed that browser > instance. > > Is there someway to expire cookies on page leave, or is this the smartass > thing you were referring to? :) > > -- Ryan Parr > > - Original Message - > From: "Jon Robison" <[EMAIL PROTECTED]> > To: "Ron Beck" <[EMAIL PROTECTED]> > Cc: <[EMAIL PROTECTED]> > Sent: Tuesday, February 12, 2002 12:28 PM > Subject: Re: Question... > > > Cookies! > > > > /me is in smartass mode today. > > > > --Jon > > > > Ron Beck wrote: > > > > > > Hello all, > > > I need to know how to clear the $ENV variables. For example, I use a > > > .htaccess file for specific directories which requires the user to enter > > > userID and password. When they exit the page, I want them to have to > > > re-enter userID and passwd if they enter the page again. Does anyone > > > know how this is accomplished? > > > > > > TIA, > > > Ron
Re: Question...
On page leave? Well I think you can of course use javascript on all the links on the page, but I don't believe you can do much about the user typing in a new url in the browser. . . but that's just IMHO. --Jon Ryan Parr wrote: > > I think I'm missing something... > > If you set a session cookie (i.e. one with no expiry time) then the cookie > will be deleted immediately upon browser close, forcing the user to login > again if they've closed their browser instance. > > If you don't use cookies and allow basic auth then the exact same behavior > is called, forcing the user to re-login only if they've closed that browser > instance. > > Is there someway to expire cookies on page leave, or is this the smartass > thing you were referring to? :) > > -- Ryan Parr > > - Original Message - > From: "Jon Robison" <[EMAIL PROTECTED]> > To: "Ron Beck" <[EMAIL PROTECTED]> > Cc: <[EMAIL PROTECTED]> > Sent: Tuesday, February 12, 2002 12:28 PM > Subject: Re: Question... > > > Cookies! > > > > /me is in smartass mode today. > > > > --Jon > > > > Ron Beck wrote: > > > > > > Hello all, > > > I need to know how to clear the $ENV variables. For example, I use a > > > .htaccess file for specific directories which requires the user to enter > > > userID and password. When they exit the page, I want them to have to > > > re-enter userID and passwd if they enter the page again. Does anyone > > > know how this is accomplished? > > > > > > TIA, > > > Ron
RE: Question...
you can use sessions... there are some modules for this. Forexample, Apache::ASP has the $Session object... or you can use javascript to delete the cookie (maybe) -Original Message- From: Ryan Parr [mailto:[EMAIL PROTECTED]] Sent: Wednesday, February 13, 2002 11:00 AM To: Jon Robison; Ron Beck Cc: [EMAIL PROTECTED] Subject: Re: Question... I think I'm missing something... If you set a session cookie (i.e. one with no expiry time) then the cookie will be deleted immediately upon browser close, forcing the user to login again if they've closed their browser instance. If you don't use cookies and allow basic auth then the exact same behavior is called, forcing the user to re-login only if they've closed that browser instance. Is there someway to expire cookies on page leave, or is this the smartass thing you were referring to? :) -- Ryan Parr - Original Message - From: "Jon Robison" <[EMAIL PROTECTED]> To: "Ron Beck" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Tuesday, February 12, 2002 12:28 PM Subject: Re: Question... > Cookies! > > /me is in smartass mode today. > > --Jon > > Ron Beck wrote: > > > > Hello all, > > I need to know how to clear the $ENV variables. For example, I use a > > .htaccess file for specific directories which requires the user to enter > > userID and password. When they exit the page, I want them to have to > > re-enter userID and passwd if they enter the page again. Does anyone > > know how this is accomplished? > > > > TIA, > > Ron _ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com
Re: Question...
I think I'm missing something... If you set a session cookie (i.e. one with no expiry time) then the cookie will be deleted immediately upon browser close, forcing the user to login again if they've closed their browser instance. If you don't use cookies and allow basic auth then the exact same behavior is called, forcing the user to re-login only if they've closed that browser instance. Is there someway to expire cookies on page leave, or is this the smartass thing you were referring to? :) -- Ryan Parr - Original Message - From: "Jon Robison" <[EMAIL PROTECTED]> To: "Ron Beck" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Tuesday, February 12, 2002 12:28 PM Subject: Re: Question... > Cookies! > > /me is in smartass mode today. > > --Jon > > Ron Beck wrote: > > > > Hello all, > > I need to know how to clear the $ENV variables. For example, I use a > > .htaccess file for specific directories which requires the user to enter > > userID and password. When they exit the page, I want them to have to > > re-enter userID and passwd if they enter the page again. Does anyone > > know how this is accomplished? > > > > TIA, > > Ron
Re: Question...
Cookies! /me is in smartass mode today. --Jon Ron Beck wrote: > > Hello all, > I need to know how to clear the $ENV variables. For example, I use a > .htaccess file for specific directories which requires the user to enter > userID and password. When they exit the page, I want them to have to > re-enter userID and passwd if they enter the page again. Does anyone > know how this is accomplished? > > TIA, > Ron
Re: Question...
> I need to know how to clear the $ENV variables. For example, I use a > .htaccess file for specific directories which requires the user to enter > userID and password. When they exit the page, I want them to have to > re-enter userID and passwd if they enter the page again. Does anyone > know how this is accomplished? Clearing %ENV will not work. You have to send a 403 response. Uwe
Re: QUESTION
if ($redirect = $shortnames->get($fname, WAIT, 1)) { if ($redirect !~ /$r->server()->server_hostname/) { $r->content_type('text/html'); $r->header_out ( Location => $redirect ); $log->debug($redirect); $r->send_http_header; return REDIRECT; } Regards, Tim Tompkins -- Programmer http://www.arttoday.com/ http://www.rebelartist.com/ -- - Original Message - From: Martin Haase-Thomas To: [EMAIL PROTECTED] Sent: Wednesday, February 06, 2002 8:21 AM Subject: QUESTION Hi all, I hope there'll be someone here to help we with a mod_perl prob, of which I thought first it wouldn't be one. I refer to the "Writing Apache Modules" book by Stein/MacEachern. The prob is quite simple: I have to redirect certain requests under certain conditions to another URL (and please believe me: I tried with mod_rewrite, this way seems to be more efficient). I'm using Apache 1.3.22 on Debian Linux 2.4.17. These are the lines from my httpd.conf: PerlFreshRestart On PerlTaintCheck On PerlSetEnv SHORTNAMES /etc/apache/shortnames.txt PerlAddVar PROJECT_DOCUMENT_ROOT /home/disp05/app/fn/ PerlRequire /usr/local/sbin/appstart SetHandler perl-script PerlHandler Apache::StaticServer The stanza in StaticServer.pm that fails is: if ($redirect = $shortnames->get($fname, WAIT, 1)) { if ($redirect !~ /$r->server()->server_hostname/) { $r->content_type('text/html'); $r->header_out ( Location => $redirect ); $log->debug($redirect); return REDIRECT; } ... } $shortnames is an Apache::SharedMem segment, containing a vast amount of shortnames as keys and the corresponding URLs as values. The funny thing is now, that although I do everything exactly as I find it in the book on p.125 (content_type, header_out, REDIRECT), I get pure nonsense. This is what a libwww-perl client displays when I try to access the address: 500 (Internal Server Error) unexpected EOF before status line seen Client-Date: Wed, 06 Feb 2002 13:40:25 GMT This is what I find in access_log: 192.168.255.75 - - [06/Feb/2002:14:46:24 +0100] "GET /psycho HTTP/1.0" 200 - "-" "libwww-perl/5.50" And this is what stands in error_log: [Wed Feb 6 14:46:24 2002] [debug] /usr/local/share/perl/5.6.1/Apache/StaticServer.pm(45): [client 192.168.255.75] http://www.domain.de/app/fn/portal_welcome_jsp/52329.html The error log proves that the second if() matches, as the entry comes from my $log->debug(...). Has anyone got an idea? I'm close to depression -;) Many thanx in advance Martin
RE: [QUESTION]PerlHandler and PerlLogHandler Phase
Thanks Rob for your reply. --- Rob Bloodgood <[EMAIL PROTECTED]> wrote: Question: > > 2.If the answer to the above question is YES? The > > Handler will add headers,footers for everything. > >What do I need to do to apply the handler logic > >justto the requested page and return the remaining > >files that are needed to complete the requested > >page as they are? Answer: > In the Eagle book (as well as a Perl Journal > article) there is an example of a >Apache::Header/Apache::Footer. CPAN doesn't show > them right now. But you could implement them as >filters using Apache::Filter to mark up each > document on its way out, based on URI. Reply: I shall look into this. There is some database entries that have to take place as the web pages are being servered. Question: > > 3. When I move these JS files outside the > >/en/course URI they seem to work? But now when I > >put them with in? It just displays the Javascript > >code like simple text on the browser. Answer: > > ... or you could template them in directly, since > you're playing w/ the content already. Reply: Most of the books are already existing in that format. To Change them would be a lot of code rewriting,testing and deploying. Question: > > 4. In the Logging Phase, I need to store the last > > requested page as a bookmark. So if the user logs > >out, and logs back in it takes him to the same page. > >Since the html files are made up of some many > >requests to other files, it stores the last file it requested. > > It may be path to an image file,style sheet file > >etc... Is there any way I can circumvent this problem? Answer: > You could use a cookie, issued with each document, > noting what url they are on right now?? Logging it (storing it) and then reading it back are bound > to be way too much work. Reply: I kind of figured this portion out. Though its is not a clean way to do it. In the ActivityLogger.pm, I plan to use $r->the_request instead of $r->uri. The PerlLogHandler being called on every request will be overwriting the same data in the database. Let us assume that the web page request has 5 more files that it depends. Would not the PerlLogHandler be called when each file is being server. > > HTH! > > L8r, > Rob > __ Do You Yahoo!? Great stuff seeking new owners in Yahoo! Auctions! http://auctions.yahoo.com
Re: [QUESTION]PerlHandler and PerlLogHandler Phase
Thanks Thomas, Question: > > Here are the problems/Questions that I face: > > 1. Since in this case each requests for a html > >file has multiple files that need to be downloaded > > the client. Am I right to assume that the handler > >will act on each and every file requested file > >below my /en/course URI? Answer: > >Add something like > >return DECLINED unless $r->content_type() eq > > 'text/html'; > >near the top of your handler. > This way only html-documents get handled by your > handler, the rest falls > through to the default apache handler. This one did work for most of the cases. Which is the first war among many battles? I also have cases where the book content has pop up windows to display meaning of words that do not need the entire header to be displayed .i.e. the handler should not be act on such a request. Question: Is there a way I can put them in a directory and when the uri matches that directory, i disable the handler? If so how can I do it? Mark __ Do You Yahoo!? Great stuff seeking new owners in Yahoo! Auctions! http://auctions.yahoo.com
RE: [QUESTION]PerlHandler and PerlLogHandler Phase
> 2.If the answer to the above question is YES? The > Handler will add headers,footers for everything. What > do I need to do to apply the handler logic just to the > requested page and return the remaining files that are > needed to complete the requested page as they are? In the Eagle book (as well as a Perl Journal article) there is an example of a Apache::Header/Apache::Footer. CPAN doesn't show them right now. But you could implement them as filters using Apache::Filter to mark up each document on its way out, based on URI. > 3. When I move these JS files outside the /en/course > URI they seem to work? But now when I put them with > in? It just displays the Javascript code like simple > text on the browser. ... or you could template them in directly, since you're playing w/ the content already. > 4. In the Logging Phase, I need to store the last > requested page as a bookmark. So if the user logs out, > and logs back in it takes him to the same page. Since > the html files are made up of some many requests to > other files, it stores the last file it requested. It > may be path to an image file,style sheet file etc... > Is there any way I can circumvent this problem? You could use a cookie, issued with each document, noting what url they are on right now?? Logging it (storing it) and then reading it back are bound to be way too much work. HTH! L8r, Rob
Re: [QUESTION]PerlHandler and PerlLogHandler Phase
Hi! On Fri, Feb 01, 2002 at 10:24:24AM -0800, Mod Perl wrote: > Here are the problems/Questions that I face: > 1. Since in this case each requests for a html file > has multiple files that need to be downloaded by the > client. Am I right to assume that the handler will act > on each and every file requested file below my > /en/course URI? Add something like return DECLINED unless $r->content_type() eq 'text/html'; near the top of your handler. This way only html-documents get handled by your handler, the rest falls through to the default apache handler. -- D_OMM +> http://domm.zsi.at <-+ O_xyderkes | neu: Arbeitsplatz | M_echanen | http://domm.zsi.at/d/d162.html | M_asteuei ++
Re: QUESTION: how to debug segfault apache1.3.22/mod_perl1.26/HTML::Mason
Hi there, On Wed, 16 Jan 2002, Chris Hutchinson wrote: > I've recently built apache 1.3.22/mod_perl 1.26, statically with perl > 5.6.1 on linux RH 7.0. > [snip] > ccversion='', gccversion='2.96 2731 (Red Hat Linux 7.0)', At the risk of sounding like a broken record, have you tried compiling everyhthing with a different compiler? The one supplied with RH7.0 had some problem (I gather:). On a couple of RH6.2 systems I'm still using 2.91.66 with no problems, in fact I've deliberately avoided upgrading gcc because the docs said it wouldn't compile my kernels any more if I did... 73, Ged.
Re: question on installing mod_perl to activePerl on win98
On Mon, 25 Jun 2001, ychen56 wrote: > Thanks, I have installed mod_perl successfully by setting the repository to > http://theoryx5.uwinnipeg.ca/ppmpackages/. > I have one more question. The version of mod_perl is 1.25 which is written > for apache 1.3.20, my apache version is 1.3.14, > I think I need copy the file mod_perl.so to apachemodperl.dll, right? What > else I need to do? Or I have to use apache 1.3.20 instead of 1.3.14? > > Best Regards > Ye Generally, in the Win32 Apache world, one should keep as current as possible, for bug/security fixes. So if it's at all possible, it's probably a good idea to upgrade to Apache_1.3.20. If that's impossible, there are older Apache/mod_perl versions in http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl-legacy/. The versioning goes mod_perl-x.xx_y.yy.ppd, where x.xx refers to the mod_perl version and y.yy refers to the apache version. You should note the .ppd file corresponding to your apache version, and install it as (all on one line) ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl-legacy/whatever.ppd Using a mod_perl version compiled for a different apache than you're using doesn't always work. Note that, after Apache_1.3.15, the name of the mod_perl dll that goes into your Apache modules/ directory was changed from ApacheModulePerl.dll to mod_perl.so. best regards, randy kobes
Re: question on installing mod_perl to activePerl on win98
Thanks, I have installed mod_perl successfully by setting the repository to http://theoryx5.uwinnipeg.ca/ppmpackages/. I have one more question. The version of mod_perl is 1.25 which is written for apache 1.3.20, my apache version is 1.3.14, I think I need copy the file mod_perl.so to apachemodperl.dll, right? What else I need to do? Or I have to use apache 1.3.20 instead of 1.3.14? Best Regards Ye - Original Message - From: Randy Kobes <[EMAIL PROTECTED]> To: ychen56 <[EMAIL PROTECTED]> Cc: Mod Perl List <[EMAIL PROTECTED]> Sent: Monday, June 25, 2001 4:35 PM Subject: Re: question on installing mod_perl to activePerl on win98 > On Mon, 25 Jun 2001, ychen56 wrote: > > > Hi: > > >From your website http://perl.apache.org/distributions.html, I got > > message( see following) > > > > Win32 ActivePerl mod_perl ppms - suitable for builds 6xx. You can install > > this by, within the ppm shell, setting the repository to > > http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer and typing > > install mod_perl. This will also run a post-install script to install the > > required mod_perl.so to your Apache modules/ directory. > > > > I followed the instruction, but ppm can not find mod_perl, in fact I opened > > this link, nothing there. I really need to install mod_perl in my computer > > to do some projects, my operation system is win98, I appreciate to get your > > quick respond. > > > > Thanks > > Ye > > The above link only gives something sensible when called by > the ppm utility. Did you try this as > > DOS> ppm > ppm> set repository whatever > http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer > ppm> search mod_perl > ppm> install mod_perl > ppm> quit > DOS> > > (the "set repository ..." should appear on one line). If this > doesn't work, try installing directly as (again as one line) > > DOS> ppm install > http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl.ppd > > If neither of these work, do you have problems installing > modules from ActiveState's repository? eg, does > > DOS> ppm install GD > > install GD.pm OK? > > best regards, > randy kobes > > NetZero Platinum No Banner Ads and Unlimited Access Sign Up Today - Only $9.95 per month! http://www.netzero.net
Re: question on installing mod_perl to activePerl on win98
On Mon, 25 Jun 2001, ychen56 wrote: > Hi: > >From your website http://perl.apache.org/distributions.html, I got > message( see following) > > Win32 ActivePerl mod_perl ppms - suitable for builds 6xx. You can install > this by, within the ppm shell, setting the repository to > http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer and typing > install mod_perl. This will also run a post-install script to install the > required mod_perl.so to your Apache modules/ directory. > > I followed the instruction, but ppm can not find mod_perl, in fact I opened > this link, nothing there. I really need to install mod_perl in my computer > to do some projects, my operation system is win98, I appreciate to get your > quick respond. > > Thanks > Ye The above link only gives something sensible when called by the ppm utility. Did you try this as DOS> ppm ppm> set repository whatever http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer ppm> search mod_perl ppm> install mod_perl ppm> quit DOS> (the "set repository ..." should appear on one line). If this doesn't work, try installing directly as (again as one line) DOS> ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl.ppd If neither of these work, do you have problems installing modules from ActiveState's repository? eg, does DOS> ppm install GD install GD.pm OK? best regards, randy kobes
Re: Question and problem with graphics and Apache:ASP running.
Steve Hurley wrote: > > When I turn on Apache:ASP and try to load a few html files it messes up the graphics >at the top. > > Now if I turn off the ASP, graphics load fine... > Page with banner graphics split up: http://www.clark.cc.oh.us/asp/student.html > page with one banner graphic...: http://www.clark.cc.oh.us/asp/student2.html > > in http.conf: > > SetHandler perl-script > PerlHandler Apache::ASP > PerlSetVar Global /tmp > > If you want to mix media types in the same directory, use the Files Apache config to mark certain files for Apache::ASP execution like so: SetHandler perl-script PerlHandler Apache::ASP PerlSetVar NoState 1 I'm guessing that Apache::ASP was trying to parse anything under /asp/, including graphics, which just _might_ mess things up :) -- Josh _ Joshua Chamas Chamas Enterprises Inc. NodeWorks >> free web link monitoring Huntington Beach, CA USA http://www.nodeworks.com1-714-625-4051
Re: Question
If you run the 2-apache model described in the guide (as you generally need on a busy site), you can use the locations set in ProxyPass directives to determine which requests are passed to the backend mod_perl apache and let the lightweight front end handle the others directly. Or you can use mod_rewrite to almost arbitrarily select which requests are run immediately by the front end or proxied through to the back end server. You don't have to make it visible to the outside by running the back end on a different address - it can be another port accessed only by the front end proxy. Les Mikesell [EMAIL PROTECTED] - Original Message - From: "Peiper,Richard" <[EMAIL PROTECTED]> To: "'Jonathan Tweed'" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Wednesday, November 22, 2000 8:20 AM Subject: RE: Question > > How could they not? Since the files are executable by any process, > then all processes must have the mod_perl code in it. You could if you > really wanted to run 2 versions of Apache, one with mod_perl and one > without. You could then call all CGI's through a different IP and then run > mod_perl on that one only. This would reduce the sizes of your executables > running in memory for Apache. > > Richard > Web Engineer > ProAct Technologies Corp. > > > > -Original Message- > > From: Jonathan Tweed [mailto:[EMAIL PROTECTED]] > > Sent: Wednesday, November 22, 2000 9:15 AM > > To: '[EMAIL PROTECTED]' > > Subject: Question > > > > > > Hi > > > > I would be grateful if someone could answer this question: > > > > Even if you tell Apache only to execute files in a certain > > directory under > > mod_perl do all processes still include the mod_perl code? > > > > Thanks > > > > Jonathan Tweed - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Question
How could they not? Since the files are executable by any process, then all processes must have the mod_perl code in it. You could if you really wanted to run 2 versions of Apache, one with mod_perl and one without. You could then call all CGI's through a different IP and then run mod_perl on that one only. This would reduce the sizes of your executables running in memory for Apache. Richard Web Engineer ProAct Technologies Corp. > -Original Message- > From: Jonathan Tweed [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, November 22, 2000 9:15 AM > To: '[EMAIL PROTECTED]' > Subject: Question > > > Hi > > I would be grateful if someone could answer this question: > > Even if you tell Apache only to execute files in a certain > directory under > mod_perl do all processes still include the mod_perl code? > > Thanks > > Jonathan Tweed > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] >
Re: Question
On Wed, 22 Nov 2000, Jonathan Tweed wrote: > I would be grateful if someone could answer this question: > Even if you tell Apache only to execute files in a certain directory under > mod_perl do all processes still include the mod_perl code? If I understand your question correctly, yes. MBM -- Matthew Byng-Maddick Home: <[EMAIL PROTECTED]> +44 20 8981 8633 (Home) http://colondot.net/ Work: <[EMAIL PROTECTED]> +44 7956 613942 (Mobile) Diplomacy is the art of saying "nice doggie" until you can find a rock. -- Wynn Catlin - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: question on DBIx::Recordset PrevNextForm
> Is there any way to hide the form data that the DBIx::Recordset > PrevNextForm function generates? i just noticed that if someone does a > "view source," the user can view your db connection, username, password, > etc. That doesn't seem very secure even though this is a pretty cool > subroutine to have. I'm using embed perl to handle these request so > perhaps there might be another mechanism that works with DBIx::Recordset > that does the same thing without having to write that kind of sensitive > information as hidden fields? Thanks > Normaly there are no sensitive data in hidden fields. The hidden fields only contain the data, you send to the page. That means when you request the page with a link http://host/db.epl?username=foo&password=secret you will find the username and the password in the hidden fields, but that's not the fault of DBIx::Recordset. More exactly, DBIx::Recordset uses the values from %fdat, so if you add your username and your password to %fdat, they will also apear in the hidden fields. In this case either delete them from %fdat, before you call PrevNextForm or better never put them in. Gerald - Gerald Richterecos electronic communication services gmbh Internetconnect * Webserver/-design/-datenbanken * Consulting Post: Tulpenstrasse 5 D-55276 Dienheim b. Mainz E-Mail: [EMAIL PROTECTED] Voice:+49 6133 925151 WWW:http://www.ecos.de Fax: +49 6133 925152 -
Re: Question on Apache::Compress
>>> Ben Cottrell writes: bc> This fixes static html completely! It's compressed, and also bc> comes through as text/html. Thanks very much!! no problem. i've been doing a lot of this myself lately. bc> perl scripts are still coming through as compressed (which is bc> good) text/plain (which is bad). Umm. Who has control over the bc> content-type? the script; however, if you're compressing everything your script sends to STDOUT, you're compressing your headers too. (the first thing on your browser's screen is most likely Content-type: text/html.) instead have your developers do something like: my $r = shift; $r->content_type('text/html'); just as a by the way, i've been having a small problem with this configuration (see the mail i sent to the list earlier today). cheers, k. -- kevin montuori support independent booksellers -- http://www.booksense.com
Re: Question on Apache::Compress
On Mon, 2 Oct 2000 15:28:09 -0400 (EDT), kevin montuori wrote: > bc> Static .html files aren't compressed at all (but do come through > bc> as text/html). > > do you have > > SetHandler perl-script > > in there somewhere? Kevin, This fixes static html completely! It's compressed, and also comes through as text/html. Thanks very much!! perl scripts are still coming through as compressed (which is good) text/plain (which is bad). Umm. Who has control over the content-type? I thought the perl script itself did (i.e. print "Content-Type: text/html\n\n") but I can't find that anywhere in our perl code (I'm not the one who writes the scripts, so I don't know the code... I'm just responsible for apache). Is there any other possible way the content type would have been getting set, previously, that might be broken with the addition of Apache::Compress? Thanks again :-) ~Ben
Update: Re: PerlSendHeader Off & socket persistence (was Re: question: usingApache for non-HTML messages)
> what is your test client? I wrote a command line client that just sends/receives basic messages for testing. I have been opening a socket and sending this: GET /perl/myscript HTTP/1.1 Connection: Keep-Alive Host: myhost.mydomain.com\n\n It worked as expected - I was able to keep the socket open and send & receive multiple messages. When I set PerlSendHeader to Off, the socket closed after the 1st query. I finally had success with socket persistence when I tried using CGI to print the header by replacing this: print "Content-type: text/html\n\n"; with this: print header(); Once I changed how I was printing the header from the script, the socket persistence worked with PerlSendHeader Off. So I guess I solved my problem although I don't really know why. Brian Doug MacEachern wrote: > On Wed, 27 Sep 2000, B. Burke wrote: > > > When I set PerlSendHeader to Off in my perl.conf it doesn't send headers, > > which > > is good. The bad part is that it seems to break socket persistence for some > > reason. > > When I have PerlSendHeader set to On, I can open a socket with my test client, > > > > and make multiple queries on the same socket. > > what is your test client? apache will close the connection after the > first request, unless keep-alive is maintained between client/server.
Re: PerlSendHeader Off & socket persistence (was Re: question: usingApache for non-HTML messages)
On Wed, 27 Sep 2000, B. Burke wrote: > When I set PerlSendHeader to Off in my perl.conf it doesn't send headers, > which > is good. The bad part is that it seems to break socket persistence for some > reason. > When I have PerlSendHeader set to On, I can open a socket with my test client, > > and make multiple queries on the same socket. what is your test client? apache will close the connection after the first request, unless keep-alive is maintained between client/server.
PerlSendHeader Off & socket persistence (was Re: question: using Apache for non-HTML messages)
When I set PerlSendHeader to Off in my perl.conf it doesn't send headers, which is good. The bad part is that it seems to break socket persistence for some reason. When I have PerlSendHeader set to On, I can open a socket with my test client, and make multiple queries on the same socket. Any ideas to help me keep the socket open? Thanks, Brian Doug MacEachern wrote: > On Mon, 25 Sep 2000, B. Burke wrote: > > > I've been able to basically remove the response headers by removing the > > functionality > > of ap_sen_header_field() before compiling Apache, but it would be nice to > > you don't have to remove anything, just don't call $r->send_http_header > and make sure PerlSendHeader is configured to Off, then Apache will not > send any headers.
Re: question: using Apache for non-HTML messages
On Mon, 25 Sep 2000, B. Burke wrote: > I've been able to basically remove the response headers by removing the > functionality > of ap_sen_header_field() before compiling Apache, but it would be nice to you don't have to remove anything, just don't call $r->send_http_header and make sure PerlSendHeader is configured to Off, then Apache will not send any headers.
Re: question: using Apache for non-HTML messages
Really all you need to do is send your response back like you would any response, just without the HTML formatting. If you wanted to be a bit more "correct", you could change the content-type of the respose so that it is not 'text/html'. (In your case, you might just make one up like 'application/x-brians-spiffy-protocol' or whatever you think is appropriate preceded with 'x-'.) Or, if you wanted to debug it using a web browser, you could simply use 'text/plain', and your browser will display the raw result. It is important to note that Apache is an HTTP server, not an "HTML server". It is capable of serving any sort of serial content. So anyway, since it looks like you're using a registry script, you would merely start your output with : print "Content-type: " . $my_content_type . "\n\n"; # note the 2 newlines! and then proceed directly to your proprietary output. Make sense? David At 9.21 -0400 9/25/2000, B. Burke wrote: >Here is an example of what I'm looking to do. > >GET /perl/app.pl?MODE=search&CITY=Dallas&STATE=TX&ID=195302 HTTP/1.0 >Accept: text/html >User-Agent: MyTestClient1.0 >From: nowhere.com > >I want to replace the HTML request above with something like this: > >|MODE=search|CITY=Dallas|STATE=TX|ID=195302| > >I can hard code the handler to do GET's against only one script. The request >format >is VERY similiar to the arguments in a GET (all I really have to do is >translate the pipe). >I think for the response, all I need to do is remove the headers entirely, >and I can format >the script output to conform to our API (I don't need protocol headers for >requests nor >for responses). > >I've been able to basically remove the response headers by removing the >functionality >of ap_sen_header_field() before compiling Apache, but it would be nice to >have a >more eloquent solution through mod_perl. > >Thanks, >Brian > > >Matt Sergeant wrote: > >> On Mon, 25 Sep 2000, B. Burke wrote: >> >> > >> > I'm using Apache/1.3.11 with mod_perl/1.22 on an AIX platform to serve >> > as an application server, with persistent ties into a MySQL database. >> > >> > My company is using an in-house socket API for data transfers. The >> > request messages in our API are somewhat similiar to an HTML GET >> > request, in that we use tagged, delimited fields (pipe delimited >> > instead of & delimited). >> > >> > I have written a socket server gateway to act as a protocol converter, >> > to convert our API's requests into HTML GET's (and also convert the >> > HTML output into our API's response format). >> > >> > My question is this. Is it possible using mod_perl for me to >> > incorporate the protocol conversion into Apache itself? In other >> > words, can I strip out the need for HTML headers, and rewrite the >> > format of GET requests to comply with our proprietary API? I don't >> > know if this is something that I can do through mod_perl, or if I will >> > have to dig deeper into C and recompile a new server. >> > >> > Any help or ideas will be mucho appreciated! >> >> I don't think you'll actually have to re-write anything. Although an >> example of a transaction would be most helpful. All you have to do is >> setup mod_perl to handle the connection, Apache _should_ be able to handle >> the request if it looks enough like a GET request, and you should be able >> to respond to it with little enough information, provided your responses >> are also similar to HTTP responses (HTTP response code followed optionally >> by headers then the body). >> >> -- >> >> >> Fastnet Software Ltd. High Performance Web Specialists >> Providing mod_perl, XML, Sybase and Oracle solutions >> Email for training and consultancy availability. >> http://sergeant.org | AxKit: http://axkit.org
Re: question: using Apache for non-HTML messages
Here is an example of what I'm looking to do. GET /perl/app.pl?MODE=search&CITY=Dallas&STATE=TX&ID=195302 HTTP/1.0 Accept: text/html User-Agent: MyTestClient1.0 From: nowhere.com I want to replace the HTML request above with something like this: |MODE=search|CITY=Dallas|STATE=TX|ID=195302| I can hard code the handler to do GET's against only one script. The request format is VERY similiar to the arguments in a GET (all I really have to do is translate the pipe). I think for the response, all I need to do is remove the headers entirely, and I can format the script output to conform to our API (I don't need protocol headers for requests nor for responses). I've been able to basically remove the response headers by removing the functionality of ap_sen_header_field() before compiling Apache, but it would be nice to have a more eloquent solution through mod_perl. Thanks, Brian Matt Sergeant wrote: > On Mon, 25 Sep 2000, B. Burke wrote: > > > > > I'm using Apache/1.3.11 with mod_perl/1.22 on an AIX platform to serve > > as an application server, with persistent ties into a MySQL database. > > > > My company is using an in-house socket API for data transfers. The > > request messages in our API are somewhat similiar to an HTML GET > > request, in that we use tagged, delimited fields (pipe delimited > > instead of & delimited). > > > > I have written a socket server gateway to act as a protocol converter, > > to convert our API's requests into HTML GET's (and also convert the > > HTML output into our API's response format). > > > > My question is this. Is it possible using mod_perl for me to > > incorporate the protocol conversion into Apache itself? In other > > words, can I strip out the need for HTML headers, and rewrite the > > format of GET requests to comply with our proprietary API? I don't > > know if this is something that I can do through mod_perl, or if I will > > have to dig deeper into C and recompile a new server. > > > > Any help or ideas will be mucho appreciated! > > I don't think you'll actually have to re-write anything. Although an > example of a transaction would be most helpful. All you have to do is > setup mod_perl to handle the connection, Apache _should_ be able to handle > the request if it looks enough like a GET request, and you should be able > to respond to it with little enough information, provided your responses > are also similar to HTTP responses (HTTP response code followed optionally > by headers then the body). > > -- > > > Fastnet Software Ltd. High Performance Web Specialists > Providing mod_perl, XML, Sybase and Oracle solutions > Email for training and consultancy availability. > http://sergeant.org | AxKit: http://axkit.org
Re: question: using Apache for non-HTML messages
On Mon, 25 Sep 2000, B. Burke wrote: > > I'm using Apache/1.3.11 with mod_perl/1.22 on an AIX platform to serve > as an application server, with persistent ties into a MySQL database. > > My company is using an in-house socket API for data transfers. The > request messages in our API are somewhat similiar to an HTML GET > request, in that we use tagged, delimited fields (pipe delimited > instead of & delimited). > > I have written a socket server gateway to act as a protocol converter, > to convert our API's requests into HTML GET's (and also convert the > HTML output into our API's response format). > > My question is this. Is it possible using mod_perl for me to > incorporate the protocol conversion into Apache itself? In other > words, can I strip out the need for HTML headers, and rewrite the > format of GET requests to comply with our proprietary API? I don't > know if this is something that I can do through mod_perl, or if I will > have to dig deeper into C and recompile a new server. > > Any help or ideas will be mucho appreciated! I don't think you'll actually have to re-write anything. Although an example of a transaction would be most helpful. All you have to do is setup mod_perl to handle the connection, Apache _should_ be able to handle the request if it looks enough like a GET request, and you should be able to respond to it with little enough information, provided your responses are also similar to HTTP responses (HTTP response code followed optionally by headers then the body). -- Fastnet Software Ltd. High Performance Web Specialists Providing mod_perl, XML, Sybase and Oracle solutions Email for training and consultancy availability. http://sergeant.org | AxKit: http://axkit.org
Re: Question
On Tue, Sep 12, 2000 at 04:34:28PM +0100, David Hodgkinson wrote: > "Eric Cholet" <[EMAIL PROTECTED]> writes: > > > well then we're a long shot away, and so are many French natives :) > > Nah, we won't be that demanding, lest we scare him away from the, > > erm, "most beautiful city in the world". > > What? Bath? > > Dave // Found communication in Paris much improved with a thick, > \\ Inspector Clouseau accent...izzat yeur Minkey? Inspector Clouseau ? what's that ? Another french hero that tv-producer is hidding from us, here, in France ?
Re: Question on installation and location of httd.conf file.
What Victor said is right. In general, you need to know how to run your OS, and admin apache to set up mod_perl + Apache::ASP. Using this environment requires a bit of a learning curve on the various underlying technologies. That said, I don't know if you will be able to run your Hyperseek program... if its an "ASP" program, then it might be written for VBScript, in which case you are out of luck because Apache::ASP supports perl scripting only at the moment. Best of luck. -- Joshua _ Joshua Chamas Chamas Enterprises Inc. NodeWorks >> free web link monitoring Huntington Beach, CA USA http://www.nodeworks.com1-714-625-4051 Jason wrote: > > Hi .. I hope someone can help me with this problem. > > I've been assigned to install Apache::ASP and mod_perl so that one of our > client's can use a program called Hyperseek. > > My biggest problem is that I'm not very familiar with the server or the Unix > environment. > > Over the past few days, I've managed to install MySQL, DBI module and > DBD::mysql. I've now run into a problem with Apache::ASP and mod_perl. > > When I perform a locate test on my server (RaQ4) for mod_perl, it finds a > bunch of files. I can also find my Apache::ASP files. > > I had the automatically installed via CPAN.pm by doing an install mod_perl > and install Bundle::Apache command. > > According to tutorials, I need to edit my httpd.conf file in order activate > Apache and mod_perl. The problem is that when I try to locate my > httpd.conf file, I can't find it. I also do not have a /usr/local/Apache > folder. Does this mean Apache isn't installed?? > > I'm really confused. Can anyone help me? Also, is there a way to test that > Apache::ASP and mod_perl are correctly installed and can run scripts? > > Your help is very much appreciated. > > -- Jason Ables
Re: Question on installation and location of httd.conf file.
Mike On Tue, 12 Sep 2000, Jason wrote: > Hi .. I hope someone can help me with this problem. > > I've been assigned to install Apache::ASP and mod_perl so that one of our > client's can use a program called Hyperseek. > > My biggest problem is that I'm not very familiar with the server or the Unix > environment. > > Over the past few days, I've managed to install MySQL, DBI module and > DBD::mysql. I've now run into a problem with Apache::ASP and mod_perl. > > When I perform a locate test on my server (RaQ4) for mod_perl, it finds a > bunch of files. I can also find my Apache::ASP files. > > I had the automatically installed via CPAN.pm by doing an install mod_perl > and install Bundle::Apache command. > > According to tutorials, I need to edit my httpd.conf file in order activate > Apache and mod_perl. The problem is that when I try to locate my > httpd.conf file, I can't find it. I also do not have a /usr/local/Apache > folder. Does this mean Apache isn't installed?? your httpd.conf might be located somewhere in /etc. a sample config for Apache::ASP also comes with the package. > > I'm really confused. Can anyone help me? Also, is there a way to test that > Apache::ASP and mod_perl are correctly installed and can run scripts? there are a lot of examples that comes with the module. > > Your help is very much appreciated. > > -- Jason Ables > >
Re: Question
"Eric Cholet" <[EMAIL PROTECTED]> writes: > well then we're a long shot away, and so are many French natives :) > Nah, we won't be that demanding, lest we scare him away from the, > erm, "most beautiful city in the world". What? Bath? Dave // Found communication in Paris much improved with a thick, \\ Inspector Clouseau accent...izzat yeur Minkey?
Re: Question
> GWH> HI Stas, > GWH> On Mon, 11 Sep 2000, Stas Bekman wrote: > > >> Will you also ask why Stas is learning French? > > GWH> Chercher la femme? > > Most likely because the people in Paris demand you speak to them in > perfect French. High school level French is not accepted ;-| well then we're a long shot away, and so are many French natives :) Nah, we won't be that demanding, lest we scare him away from the, erm, "most beautiful city in the world". -- Eric
Re: Question
> "GWH" == G W Haywood <[EMAIL PROTECTED]> writes: GWH> HI Stas, GWH> On Mon, 11 Sep 2000, Stas Bekman wrote: >> Will you also ask why Stas is learning French? GWH> Chercher la femme? Most likely because the people in Paris demand you speak to them in perfect French. High school level French is not accepted ;-| -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Vivek Khera, Ph.D.Khera Communications, Inc. Internet: [EMAIL PROTECTED] Rockville, MD +1-301-545-6996 GPG & MIME spoken herehttp://www.khera.org/~vivek/
Re: Question
HI Stas, On Mon, 11 Sep 2000, Stas Bekman wrote: > Will you also ask why Stas is learning French? Chercher la femme? [50 Jahre Musik mit Hazy Osterwald] 73, Ged.
Re: Question
On Mon, 11 Sep 2000, Stas Bekman wrote: > On Mon, 11 Sep 2000, Matt Sergeant wrote: > > > On 11 Sep 2000 [EMAIL PROTECTED] wrote: > > > > > > > > Anyone know why a browser would send something like this? > > > > > > HTTP_ACCEPT_LANGUAGE=en-us,x-ns1MKtfdqbuNhQ;q=0.4,x-ns2r2e09OnmPe2 > > > > > > the x-ns1 and x-ns2 stuff look like base64 encoded 8-byte blocks, almost as if > > > it's some kind of key exchange or key leaking mechanism. > > > > Its very odd that one specifies a score too. I've never seen this before. > > The score is a part of the RFC. You forget that the browser is not only NC > or IE :) You can implement your own browser in many ways and than send > any kind of headers. So if I send to your server this header: Yes I know the RFC well :-) > HTTP_ACCEPT_LANGUAGE=Stas_is_learning_french_please_speak_slowly;q=0.99,en-us;0.01 But to what purpose? That was the point. No server is going to deliver alternate content in a language that isn't defined by the IANA list. > Will you also ask why Stas is learning french? :) :) :) I ask myself the > same question :) :-) -- Fastnet Software Ltd. High Performance Web Specialists Providing mod_perl, XML, Sybase and Oracle solutions Email for training and consultancy availability. http://sergeant.org | AxKit: http://axkit.org
Re: Question
On Mon, 11 Sep 2000, Matt Sergeant wrote: > On 11 Sep 2000 [EMAIL PROTECTED] wrote: > > > > > Anyone know why a browser would send something like this? > > > > HTTP_ACCEPT_LANGUAGE=en-us,x-ns1MKtfdqbuNhQ;q=0.4,x-ns2r2e09OnmPe2 > > > > the x-ns1 and x-ns2 stuff look like base64 encoded 8-byte blocks, almost as if > > it's some kind of key exchange or key leaking mechanism. > > Its very odd that one specifies a score too. I've never seen this before. The score is a part of the RFC. You forget that the browser is not only NC or IE :) You can implement your own browser in many ways and than send any kind of headers. So if I send to your server this header: HTTP_ACCEPT_LANGUAGE=Stas_is_learning_french_please_speak_slowly;q=0.99,en-us;0.01 Will you also ask why Stas is learning french? :) :) :) I ask myself the same question :) _ 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://jazzvalley.com http://singlesheaven.com http://perlmonth.com perl.org apache.org
Re: Question
On 11 Sep 2000 [EMAIL PROTECTED] wrote: > > Anyone know why a browser would send something like this? > > HTTP_ACCEPT_LANGUAGE=en-us,x-ns1MKtfdqbuNhQ;q=0.4,x-ns2r2e09OnmPe2 > > the x-ns1 and x-ns2 stuff look like base64 encoded 8-byte blocks, almost as if > it's some kind of key exchange or key leaking mechanism. Its very odd that one specifies a score too. I've never seen this before. -- Fastnet Software Ltd. High Performance Web Specialists Providing mod_perl, XML, Sybase and Oracle solutions Email for training and consultancy availability. http://sergeant.org | AxKit: http://axkit.org
Re: Question about suggested AIX patch to perl.
On Fri, Sep 01, 2000 at 07:45:46PM -0400, Paul J. Reder wrote: > I am working to update my instructions for getting mod_perl working as a DSO > on AIX. I see that there is a recommended patch for dl_aix.xs to get XS > working. > > I am currently testing on AIX 4.3.3, Apache 1.3.13-dev, and IBM's IHS version > 1.3.12.2. There does not seem to be a perl file named dl_aix.xs anywhere in > the perl tree (perl5.00503 - which I believe is the default that is shipped > with AIX now). I did a find on the machine and found nothing. There isn't even > a perl subdirectory named ext. > > Mod_perl seems to be working ok with the tests I have run. Do you know what > versions of perl/AIX require this patch? Do you know of a definitive test > to see if I am broken or not? I looked through the newsgroups and archives > that I could find and found no definitive answer as to what the patch applies > to. I would believe if you are talking about the binary perl distribution that is shipped with AIX 4.3.3 nowadays, for that one you would not find dl_aix.xs as the perl package does not include the source it is built from. The patch is for those folks that build their perl from sources, e.g. by downloading the .tar.gz file from CPAN. To find out if you have the problem you will need to use a perl XS module that also needs to reference symbols from the Apache core, for example HTML::Embperl or libapreq. These modules will dump core without the patch. -- Jens-Uwe Mager HELIOS Software GmbH Steinriede 3 30827 Garbsen Germany Phone: +49 5131 709320 FAX:+49 5131 709325 Internet: [EMAIL PROTECTED]
Re: question on code snippet in mod_perl guide
On Thu, 31 Aug 2000, Aaron Johnson wrote: > I don't work on Oracle so I will speak from my experience with MySQL. MySQL > servers time out after the 8 hour standard disconnect for inactivity (this > can be adjusted in your my.conf file). To compensate for this we now run our > own connect checks for a valid dbh handle before it goes it all the trouble > to make one along with Apache::DBI In fact there is no need for a ping, I don't see why don't you just make the timeout long enough so it'd never time out. I use 48 hours: http://perl.apache.org/guide/databases.html#The_Morning_Bug > We have not had any more issues with the database connects since we moved to > this method. We do a ping and validate the dbh handle rather then blindly > accessing the dbh handle since Apache::DBI will only validate the dbh handle > on a connect. > > Aaron Johnson > > Perrin Harkins wrote: > > > On Thu, 31 Aug 2000 [EMAIL PROTECTED] wrote: > > > What I think is going on is that the script gets killed by Oracle for > > > being idle and tries to ping the connection, but the ping fails. > > > > It is supposed to reconnect when the ping fails. I've had problems > > getting reconnects to Oracle 8 working. The "solution" we ended up with > > was to make processes that can't reconnect send an error page and > > exit. New processes are able to connect. I'm not sure what causes this > > problem. > > > > Since your problem is caused by your processes being idle for too long, > > this may go away when you move out of testing mode into a public release. > > You might want to tweak your MinSpareServers settings so that you won't > > have lots of idle processes hanging around. > > > > > >Rebild your mod_perl with the EVERYTHING=1 flag. That will get rid > > > of the >above error message. > > > > > > So I have to re-install it? Is there anything I need to do when I > > > rebuild it? Or do I just need to reinstall mod_perl as it's done in > > > the documentation? > > > > Just rebuild it and re-install as it shows in the docs. > > > > - Perrin > > _ 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://jazzvalley.com http://singlesheaven.com http://perlmonth.com perl.org apache.org
Re: question on code snippet in mod_perl guide
I don't work on Oracle so I will speak from my experience with MySQL. MySQL servers time out after the 8 hour standard disconnect for inactivity (this can be adjusted in your my.conf file). To compensate for this we now run our own connect checks for a valid dbh handle before it goes it all the trouble to make one along with Apache::DBI We have not had any more issues with the database connects since we moved to this method. We do a ping and validate the dbh handle rather then blindly accessing the dbh handle since Apache::DBI will only validate the dbh handle on a connect. Aaron Johnson Perrin Harkins wrote: > On Thu, 31 Aug 2000 [EMAIL PROTECTED] wrote: > > What I think is going on is that the script gets killed by Oracle for > > being idle and tries to ping the connection, but the ping fails. > > It is supposed to reconnect when the ping fails. I've had problems > getting reconnects to Oracle 8 working. The "solution" we ended up with > was to make processes that can't reconnect send an error page and > exit. New processes are able to connect. I'm not sure what causes this > problem. > > Since your problem is caused by your processes being idle for too long, > this may go away when you move out of testing mode into a public release. > You might want to tweak your MinSpareServers settings so that you won't > have lots of idle processes hanging around. > > > >Rebild your mod_perl with the EVERYTHING=1 flag. That will get rid > > of the >above error message. > > > > So I have to re-install it? Is there anything I need to do when I > > rebuild it? Or do I just need to reinstall mod_perl as it's done in > > the documentation? > > Just rebuild it and re-install as it shows in the docs. > > - Perrin
Re: question on code snippet in mod_perl guide
On Thu, 31 Aug 2000 [EMAIL PROTECTED] wrote: > What I think is going on is that the script gets killed by Oracle for > being idle and tries to ping the connection, but the ping fails. It is supposed to reconnect when the ping fails. I've had problems getting reconnects to Oracle 8 working. The "solution" we ended up with was to make processes that can't reconnect send an error page and exit. New processes are able to connect. I'm not sure what causes this problem. Since your problem is caused by your processes being idle for too long, this may go away when you move out of testing mode into a public release. You might want to tweak your MinSpareServers settings so that you won't have lots of idle processes hanging around. > >Rebild your mod_perl with the EVERYTHING=1 flag. That will get rid > of the >above error message. > > So I have to re-install it? Is there anything I need to do when I > rebuild it? Or do I just need to reinstall mod_perl as it's done in > the documentation? Just rebuild it and re-install as it shows in the docs. - Perrin
Re: question on code snippet in mod_perl guide
>Hmmm. How busy is the site or is still in testing phase? Testing phase. >Are you saying your connection is getting dropped and then you get an error,or that you get dropped and then it has to reconnect? Here's a sample of errors that I'm getting the error_log file: [Tue Aug 29 20:15:52 2000] null: DBD::Oracle::st execute failed: ORA-01012: not logged on (DBD ERROR: OCIStmtExecute) at /u1/web/modules/(some_dir)/process.pm line 580. [Tue Aug 29 20:25:21 2000] null: DBD::Oracle::db ping failed: ORA-02396: exceeded maximum idle time, please connect again (DBD ERROR: OCIStmtExecute/Describe) at /usr/lib/perl5/site_perl/5.005/Apache/DBI.pm line 112. What I think is going on is that the script gets killed by Oracle for being idle and tries to ping the connection, but the ping fails. I took the suggestion in Apache::DBI and replaced the ping code with the subroutine in Oracle.pm but we still encountered this issue. Later on though we want the connection back but it never makes another call to the connect subroutine that is described in the performance tuning t docs. I was guessing that the .pm file that calls the connect routine is in memory someplace so it has no need to call back connect since it assumes that the connection is still present. Then at some random interval we get that error message from apache. I'm out of ideas of what's causing this. > >I guess I am missing the key to the question here :^) > >I have some suggestions that can help, but I need to know which you are >dealing with first. Cool. Any help is much appreciated :) >Rebild your mod_perl with the EVERYTHING=1 flag. That will get rid of the >above error message. So I have to re-install it? Is there anything I need to do when I rebuild it? Or do I just need to reinstall mod_perl as it's done in the documentation? -- Why is College Club the largest and fastest growing college student site? Find out for yourself at http://www.collegeclub.com
Re: Question about Apache::DBI::DEBUG
Hi Sorry I don't really remember the mail, I think it was because of the DEBUG information that were missing in the Apache error_log. There were many reasons why my Apache wasn't working with Apache::DBI (not well compiled with mod_perl, http.conf not correctly set, .) I wrote a little Article that will be publiched in the Swiss Oracle User Group. It explains how to install all the features and contains a little troubleshouting part. This sums up exactly what I did to use the persistent connections with Apache::DBI. Regards Yann Neuhaus Oracle Consultant Trivadis AG Krzysiek wrote: > Hi > I have seen your post on the perl_mod mailing list. > I've got the same problem, How did you manage to solve it? > > Thank you in advance for your reply. > > Chris, Poland Oracle_apache_perl.zip
RE: Question about $sth->finish;
> On Tue, Aug 15, 2000 at 03:26:03PM +0400, Vladislav Safronov wrote: > > Hi, > > > > Could you have a look at the lines and answer the question .. > > --- > > sub foo { > > my $dbh = shift; > > > > my $sql = ... > > > > my $sth = $dbh->prepare($sql); > > $sth->execute; > > $sth->finish; > > } > > === > > Do I always need to call $sth->finish? > > You *never* need to call finish on non-select statements. > (If you do, it's a driver bug.) > > > Wouldn't it be automaticly called when > > sub foo ends (when my variable $sth get destroyed)? > > Finish marks the end of *fetching*, not the end of life of the handle. So I can freely overwrite the handle with new one, since it's not the end of life of the handle, can't I? == my $sql = "select .." my $sth = $dbh->prepare($sql); $sth->execute; .. fetch just some (not all) data my $newsql = "select .." $sth = $dbh->prepare($newsql); $sth->execute; == and this code should work with troubles ... Vlad.
Re: Question about $sth->finish;
On Wed, Aug 16, 2000 at 08:26:09AM +0200, Henrik Tougaard wrote: > From: Jay Jacobs [mailto:[EMAIL PROTECTED]] > > On Tue, 15 Aug 2000, Tom Mornini wrote: > > > > > It is my understanding of the DBI docs that you only need to call > > > $sth->finish when you DON'T fetch all the rows that the > > $sth has ready to > > > return. > > > > > > > From "Writing Apache Modules with Perl and C": > > "You should still call finish() at the end of each series > > of fetches, > > even though you are going to reuse the statement handler. > > Failure to do > > so can lead to memory leaks." > > > > You picked the wrong authority for this! The right place (tm) to look > when discussing DBI is 'perldoc DBI'. The relevant quote is: > > If I remember correctly, it also frees up any resources used by the > > database (depending on db) for the query, like for sorting, joining, > > etc. But I can't quote a source for that one. > > There is no authoritative source for that fallacy - I hope! The right place (tm) to look when discussing DBI is 'perldoc DBI'. The relevant quote is: $rc = $sth->finish; [...] Consider a query like: SELECT foo FROM table WHERE bar=? ORDER BY foo where you want to select just the first (smallest) "foo" value from a very large table. When executed, the database server will have to use temporary buffer space to store the sorted rows. If, after executing the handle and selecting one row, the handle won't be re-executed for some time and won't be destroyed, the C method can be used to tell the server that the buffer space can be freed. :-) Tim.
Re: Question about $sth->finish;
On Tue, Aug 15, 2000 at 12:22:46PM -0500, Jay Jacobs wrote: > > > On Tue, 15 Aug 2000, Tom Mornini wrote: > > > It is my understanding of the DBI docs that you only need to call > > $sth->finish when you DON'T fetch all the rows that the $sth has ready to > > return. > > > > >From "Writing Apache Modules with Perl and C": > "You should still call finish() at the end of each series of fetches, > even though you are going to reuse the statement handler. Failure to do > so can lead to memory leaks." Not true. Unless there's a driver bug, in which case anything can happen. > If I remember correctly, it also frees up any resources used by the > database (depending on db) for the query, like for sorting, joining, > etc. But I can't quote a source for that one. Me. But it's only relevant if you're _not_ fetching _all_ rows. > >From my point of view, it never hurts to call finish()... True. Tim.
Re: Question about $sth->finish;
On Tue, Aug 15, 2000 at 03:26:03PM +0400, Vladislav Safronov wrote: > Hi, > > Could you have a look at the lines and answer the question .. > --- > sub foo { > my $dbh = shift; > > my $sql = ... > > my $sth = $dbh->prepare($sql); > $sth->execute; > $sth->finish; > } > === > Do I always need to call $sth->finish? You *never* need to call finish on non-select statements. (If you do, it's a driver bug.) > Wouldn't it be automaticly called when > sub foo ends (when my variable $sth get destroyed)? Finish marks the end of *fetching*, not the end of life of the handle. Reread the DBI 1.14 docs on finish and tell me if anything is unclear. Tim. p.s. If someone asked me what I'd change about the DBI I was to rewrite it, I'd probably just say "rename finish to cancel_select".
RE: Question about $sth->finish;
Well, summarizing all the answers and assuming using Mysql 1. $sth->finish should be used if (and ONLY if) the the returned data (any SELECT, but not INSERT, UPDATE?) has not been fetched ALL and $sth is going to be overwritten.. 2. $sth (defined as 'my') should not call finish before it gets out of scope.. Vlad/
RE: Question about $sth->finish;
> From: Vladislav Safronov [mailto:[EMAIL PROTECTED]] > What can you say about this code? is it ok (overwriting > previous handle)? > > == > sub foo { > my $dbh = shift; > > my $sql1 = "select *... > my $sql2 = "select *... > > my $sth = $dbh->prepare($sql1); > $sth->execute; > .. fetch some data. > > # should be $sth->finish inserted?? > > $sth = $dbh->prepare($sql2); # we overwrite previous > handle saved in $sth > .. > $sth->execute; > .. fetch some data. > return; > } > == $sth->finish should be inserted if (and ONLY if) the C<...fetch some data> does NOT fetch ALL data in the select. If you do some thing like: while (my $r=$sth->fetchrow_arrayref) { .. handle data; } there is no reason to call finish, but if you do while (...$sth->fetch..) { last if ; } you will have to call finish, but I would reccomend using another name for the second statement (that would help the poor sod who will try to understand this in a years time :) Henrik
RE: Question about $sth->finish;
From: Jay Jacobs [mailto:[EMAIL PROTECTED]] > On Tue, 15 Aug 2000, Tom Mornini wrote: > > > It is my understanding of the DBI docs that you only need to call > > $sth->finish when you DON'T fetch all the rows that the > $sth has ready to > > return. > > > > From "Writing Apache Modules with Perl and C": > "You should still call finish() at the end of each series > of fetches, > even though you are going to reuse the statement handler. > Failure to do > so can lead to memory leaks." > You picked the wrong authority for this! The right place (tm) to look when discussing DBI is 'perldoc DBI'. The relevant quote is: finish $rc = $sth->finish; Indicates that no more data will be fetched from this statement handle before it is either executed again or destroyed. It is rarely needed but can sometimes be helpful in very specific situations in order to allow the server to free up resources currently being held (such as sort buffers). When all the data has been fetched from a select statement the driver should automatically call finish for you. So you should not normally need to call it explicitly. Note the last sentence! > If I remember correctly, it also frees up any resources used by the > database (depending on db) for the query, like for sorting, joining, > etc. But I can't quote a source for that one. There is no authoritative source for that fallacy - I hope! > From my point of view, it never hurts to call finish()... Quite true. Do you also undef all your variables just before they go out of scope? Thats comparable. There are a *few* situations where finish is needed (Michael Peppler has shown one, the DBI docs list another) but must DBI programmers won't need finish ever. Henrik
RE: Question about $sth->finish;
On Tue, 15 Aug 2000, Tom Mornini wrote: > It is my understanding of the DBI docs that you only need to call > $sth->finish when you DON'T fetch all the rows that the $sth has ready to > return. > >From "Writing Apache Modules with Perl and C": "You should still call finish() at the end of each series of fetches, even though you are going to reuse the statement handler. Failure to do so can lead to memory leaks." If I remember correctly, it also frees up any resources used by the database (depending on db) for the query, like for sorting, joining, etc. But I can't quote a source for that one. >From my point of view, it never hurts to call finish()... Jay Jacobs
RE: Question about $sth->finish;
On Tue, 15 Aug 2000, Vladislav Safronov wrote: > Ok. I think, the answers clear the problem, but I have yet more question. > > What can you say about this code? is it ok (overwriting previous handle)? > > == > sub foo { > my $dbh = shift; > > my $sql1 = "select *... > my $sql2 = "select *... > > my $sth = $dbh->prepare($sql1); > $sth->execute; > .. fetch some data. > > # should be $sth->finish inserted?? > > $sth = $dbh->prepare($sql2); # we overwrite previous handle saved in $sth > .. > $sth->execute; > .. fetch some data. > return; > } It is my understanding of the DBI docs that you only need to call $sth->finish when you DON'T fetch all the rows that the $sth has ready to return. -- -- Tom Mornini -- InfoMania Printing and Prepress
RE: Question about $sth->finish;
Matt Sergeant writes: > On Tue, 15 Aug 2000, Michael Peppler wrote: > > > Matt Sergeant writes: > > > On Tue, 15 Aug 2000, Vladislav Safronov wrote: > > > > > > > Ok. I think, the answers clear the problem, but I have yet more question. > > > > > > > > What can you say about this code? is it ok (overwriting previous handle)? > > > > > > [snip] > > > > > > Well it depends on the DBMS. For example Sybase might not like it if you > > > haven't read everything from the $sth first - it will bite you in the bum > > > with locks. Others will be fine. So just be careful... > > > > Actually what happens with Sybase is this: > > > > If $sth has pending results when prepare() is called DBD::Sybase opens > > a new connection (because it sees that the $dbh already has an active > > $sth). When the return value from prepare() is assigned to $sth the > > DESTROY method for the old $sth is called, which cancels the previous > > query. > > > > So I think that you *should* be safe from deadlocks, but the problem > > will be getting additional connections created, which is not really > > optimal. > > Isn't there something different happening when AutoCommit = 0 though? If AutoCommit = 0 then you'll get a fatal error because DBD::Sybase can't guarantee consistent rollback behavior accross multiple connections (which is what happens in this case, even though the first $sth gets destroyed before the second one gets executed). Michael -- Michael Peppler -||- Data Migrations Inc. [EMAIL PROTECTED]-||- http://www.mbay.net/~mpeppler Int. Sybase User Group -||- http://www.isug.com Sybase on Linux mailing list: [EMAIL PROTECTED]
RE: Question about $sth->finish;
On Tue, 15 Aug 2000, Michael Peppler wrote: > Matt Sergeant writes: > > On Tue, 15 Aug 2000, Vladislav Safronov wrote: > > > > > Ok. I think, the answers clear the problem, but I have yet more question. > > > > > > What can you say about this code? is it ok (overwriting previous handle)? > > > > [snip] > > > > Well it depends on the DBMS. For example Sybase might not like it if you > > haven't read everything from the $sth first - it will bite you in the bum > > with locks. Others will be fine. So just be careful... > > Actually what happens with Sybase is this: > > If $sth has pending results when prepare() is called DBD::Sybase opens > a new connection (because it sees that the $dbh already has an active > $sth). When the return value from prepare() is assigned to $sth the > DESTROY method for the old $sth is called, which cancels the previous > query. > > So I think that you *should* be safe from deadlocks, but the problem > will be getting additional connections created, which is not really > optimal. Isn't there something different happening when AutoCommit = 0 though? -- Fastnet Software Ltd. High Performance Web Specialists Providing mod_perl, XML, Sybase and Oracle solutions Email for training and consultancy availability. http://sergeant.org | AxKit: http://axkit.org
RE: Question about $sth->finish;
Matt Sergeant writes: > On Tue, 15 Aug 2000, Vladislav Safronov wrote: > > > Ok. I think, the answers clear the problem, but I have yet more question. > > > > What can you say about this code? is it ok (overwriting previous handle)? > > [snip] > > Well it depends on the DBMS. For example Sybase might not like it if you > haven't read everything from the $sth first - it will bite you in the bum > with locks. Others will be fine. So just be careful... Actually what happens with Sybase is this: If $sth has pending results when prepare() is called DBD::Sybase opens a new connection (because it sees that the $dbh already has an active $sth). When the return value from prepare() is assigned to $sth the DESTROY method for the old $sth is called, which cancels the previous query. So I think that you *should* be safe from deadlocks, but the problem will be getting additional connections created, which is not really optimal. Michael -- Michael Peppler -||- Data Migrations Inc. [EMAIL PROTECTED]-||- http://www.mbay.net/~mpeppler Int. Sybase User Group -||- http://www.isug.com Sybase on Linux mailing list: [EMAIL PROTECTED]
Re: Question about $sth->finish;
On Tue, 15 Aug 2000, Keith G. Murphy wrote: > (Boggle) Really? 'My' variables going out of scope don't always get > freed up? Or is this strictly an object thing with DESTROY? Well why would you care if my $str = "hello world" didn't get freed via this bug? It only matters for objects that do something in DESTROY... -- Fastnet Software Ltd. High Performance Web Specialists Providing mod_perl, XML, Sybase and Oracle solutions Email for training and consultancy availability. http://sergeant.org | AxKit: http://axkit.org
Re: Question about $sth->finish;
Matt Sergeant wrote: > > On Tue, 15 Aug 2000, Vladislav Safronov wrote: > > > Hi, > > > > Could you have a look at the lines and answer the question .. > > --- > > sub foo { > > my $dbh = shift; > > > > my $sql = ... > > > > my $sth = $dbh->prepare($sql); > > $sth->execute; > > $sth->finish; > > } > > === > > Do I always need to call $sth->finish? Wouldn't it be automaticly called > > when > > sub foo ends (when my variable $sth get destroyed)? > > $sth doesn't always get destroyed when foo ends (due to a bug in all > perls). (Boggle) Really? 'My' variables going out of scope don't always get freed up? Or is this strictly an object thing with DESTROY?
RE: Question about $sth->finish;
On Tue, 15 Aug 2000, Vladislav Safronov wrote: > Ok. I think, the answers clear the problem, but I have yet more question. > > What can you say about this code? is it ok (overwriting previous handle)? [snip] Well it depends on the DBMS. For example Sybase might not like it if you haven't read everything from the $sth first - it will bite you in the bum with locks. Others will be fine. So just be careful... -- Fastnet Software Ltd. High Performance Web Specialists Providing mod_perl, XML, Sybase and Oracle solutions Email for training and consultancy availability. http://sergeant.org | AxKit: http://axkit.org
RE: Question about $sth->finish;
Ok. I think, the answers clear the problem, but I have yet more question. What can you say about this code? is it ok (overwriting previous handle)? == sub foo { my $dbh = shift; my $sql1 = "select *... my $sql2 = "select *... my $sth = $dbh->prepare($sql1); $sth->execute; .. fetch some data. # should be $sth->finish inserted?? $sth = $dbh->prepare($sql2); # we overwrite previous handle saved in $sth .. $sth->execute; .. fetch some data. return; } == Vlad.
RE: Question about $sth->finish;
Matt Sergeant <[EMAIL PROTECTED]> wrote: > > This can be demonstrated with a very simple object class with a DESTROY > method. There's a message somewhere in the p5p archives about this from > me. That's http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2000-03/msg00604.html to save anyone else having to look :-)
RE: Question about $sth->finish;
On Tue, 15 Aug 2000, Vladislav Safronov wrote: > "my" (perl's my) variables doesn't always get destoyed, does it Perl's > documentation say that "my" vars are the most safe since they get destroyed > when they get out of scope ... I said this was a bug in Perl, although I don't think that 5.6.1 is fixing it (due out "soon"), because its quite hard to track down. It occurs in conditionals: if (my $rec = foo()) { # lexicals in foo() not destroyed here } # lexicals in foo() destroyed here. This can be demonstrated with a very simple object class with a DESTROY method. There's a message somewhere in the p5p archives about this from me. (and I don't mean the lexicals that might get returned and assigned to $rec, for anyone assuming I don't know what I'm talking about)... -- Fastnet Software Ltd. High Performance Web Specialists Providing mod_perl, XML, Sybase and Oracle solutions Email for training and consultancy availability. http://sergeant.org | AxKit: http://axkit.org
RE: Question about $sth->finish;
> On Tue, 15 Aug 2000, Vladislav Safronov wrote: > > > Hi, > > > > Could you have a look at the lines and answer the question .. > > --- > > sub foo { > > my $dbh = shift; > > > > my $sql = ... > > > > my $sth = $dbh->prepare($sql); > > $sth->execute; > > $sth->finish; > > } > > === > > Do I always need to call $sth->finish? Wouldn't it be > automaticly called > > when > > sub foo ends (when my variable $sth get destroyed)? > > $sth doesn't always get destroyed when foo ends (due to a bug in all > perls). But otherwise, yes. "my" (perl's my) variables doesn't always get destoyed, does it Perl's documentation say that "my" vars are the most safe since they get destroyed when they get out of scope ... Vlad.
RE: Question about $sth->finish;
>From: Vladislav Safronov [mailto:[EMAIL PROTECTED]] > sub foo { > my $dbh = shift; > > my $sql = ... > > my $sth = $dbh->prepare($sql); > $sth->execute; > $sth->finish; > } > === > Do I always need to call $sth->finish? Wouldn't it be > automaticly called when > sub foo ends (when my variable $sth get destroyed)? You do *NOT* need to call $sth->finish - never, never, never. [OK. not quite true: you need to call $sth->finish when you end a select statement before reading the last data in the cursor and want to reexecute the select statement. So the answer is: NEVER!!!] If you worry about the statement handle still being defined I would reccomend using C instead. That will certainly release all resources owned by the statement. $sth->finish is just for very special cases - and this is not one of them. -- Henrik Tougaard, [EMAIL PROTECTED]
Re: Question about $sth->finish;
On Tue, 15 Aug 2000, Vladislav Safronov wrote: > Hi, > > Could you have a look at the lines and answer the question .. > --- > sub foo { > my $dbh = shift; > > my $sql = ... > > my $sth = $dbh->prepare($sql); > $sth->execute; > $sth->finish; > } > === > Do I always need to call $sth->finish? Wouldn't it be automaticly called > when > sub foo ends (when my variable $sth get destroyed)? $sth doesn't always get destroyed when foo ends (due to a bug in all perls). But otherwise, yes. -- Fastnet Software Ltd. High Performance Web Specialists Providing mod_perl, XML, Sybase and Oracle solutions Email for training and consultancy availability. http://sergeant.org | AxKit: http://axkit.org
RE: Question about $sth->finish;
as written in the manpage, this is rarely used, it will be called for you when the handle is going out of scope, but if something is still left in the buffer some warnings will be generated. -Original Message- From: Vladislav Safronov To: [EMAIL PROTECTED] Sent: 8/15/00 7:26 PM Subject: Question about $sth->finish; Hi, Could you have a look at the lines and answer the question .. --- sub foo { my $dbh = shift; my $sql = ... my $sth = $dbh->prepare($sql); $sth->execute; $sth->finish; } === Do I always need to call $sth->finish? Wouldn't it be automaticly called when sub foo ends (when my variable $sth get destroyed)? Vlad.