[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Basic Mod_Perl 1 and Apache 1.3 Issue: Unable to get the requested page.


Thanks Perrin. Our production environment is running mod_perl 1 and
apache 1.3 that comes with Oracle 9iAS. Based on the deadlines, the
plans to upgrade have been moved to a future date. 

I have narrowed down the problem. Below is the Perl script/module that
should invoke a servlet for every request it recieves using Perl
Sockets. What I am seeing is that the perl module is invoking the
servlet for some requests and for some it does not (i.e. does NOT write
GET / HTTP 1.0 on the socket stream). This is very random. It does
invoke it for 4-5 times and then stops and invokes again. Sometimes the
first request itself fails. I am not really sure what I can do to debug
it further. I would appreciate any pointers. The data from the Apache
log is also present at the bottom. 


package Apache::Proxy;

use strict;
use Apache::Constants qw(OK DONE REDIRECT DECLINED);
use Apache::Log();
use Socket;
use CGI;
use CGI::Cookie;

$Apache::Proxy::VERSION = "1.00";

sub handler {
      my $r = shift;
      my ( $log ) = $r->log;
      $log->error("1. Inside Handler.");

      my $uri = $r->uri;

      $log->error("2. Requested URI ==> $uri");
      
      my %cookies = CGI::Cookie->fetch($r);
      my $token = $cookies{'ums_token'}->value;
      chomp($token);
      $log->error("3. SSO TOKEN ==> $token");
      
      
      	my $redirectHost = $r->dir_config('redirectHost');
      	my $redirectPort = $r->dir_config('redirectPort');
	
      
     
     	#Invoke the servlet URL
      	my
$url='http://38.118.10.23:8247/SecurityServices/SSOProxyServlet?ssotoken
=3243-sfsdf-88dsff-fds324-sfsdf2';
      	$url=~m/http\:\/\/([^\:^\/]*)(?:\:(\d+))?\/(.*)/;
      	my $host = $1;
      	my $port = $2;
      	#$port = 80 unless($port);
      	my $file = '/'.$3;
      	
      	my $proto = getprotobyname('tcp');
      	socket(SOCK, PF_INET, SOCK_STREAM, $proto);
      	
      	my $sin = sockaddr_in($port, inet_aton($host));
      	
      	connect(SOCK, $sin) || die "Connect failed: $!\n";
      	
      	my $old_fh = select(SOCK);
      	$|=1;
      	select($old_fh);
      	
      	
      	#print SOCK "GET $file HTTP/1.0\n";
      	print SOCK "GET
/SecurityServices/SSOProxyServlet?ssotoken=3243-sfsdf-88dsff-fds324-sfsd
f2 HTTP/1.0\n";
      	print SOCK "Accept: */*\n";
      	print SOCK "User-Agent: hcat/1.0\n\n";
      	
      	
      	my $header = <SOCK>;
      	
      	
      	$log->error("3. Proxy URL ==> $url");
      	
      	my $content; 
      	my $out;
      	
      	
      	while($content = <SOCK>)
      	{
      	      $out .= $content;   
      	      last if ($content =~ /^\015?\012?$/);
      	}
      	$log->error("3aa. The response header line ==>$out");
      	
      	my $nosignal = 1;
      	my $result='';
      	my $out1;
      	# Back to line by line mode.
      	while (defined($out1 = <SOCK>) and $nosignal) {
      	  $result = $result . $out1;
      	}
      	
      	chomp($result);
      	
      	
      	close(SOCK);
      	
      	
      	$log->error("3cc. The response body ==>$result");
      	
      	#my $result = $body;
      	
      	$log->error("3. SSO RESULT ==> $username");
      	
      	my $redirectSignal = 0;
      	if($result =~ /INVALID/i){
      		$redirectSignal = 1;
      	}if($username eq ''){
      		$redirectSignal=1;
      	}
      	else {
      		$redirectSignal = 0;
      	}
      	
      	#Check the status	
      	if ($redirectSignal > 0){	
      	
      		my $url1 =
'http://'.$redirectHost.':'.$redirectPort.'/JSP/reLogin.jsp?USERNAME=TMI
LLS&SSOTokenID='.$token;
      		$r->content_type('text/html');
      		$r->headers_out->set('Location' => $url1);
      		$r->status(Apache::Constants::REDIRECT);
      		
      		return Apache::Constants::REDIRECT;
         }
	
      
  
      return DECLINED;
}

1; # modules must return true


LOG Data... My comments are enclosed in <<>>.

[Wed Nov 15 16:03:43 2006] [error] [client 38.118.10.237] 1. Inside
Handler.
[Wed Nov 15 16:03:43 2006] [error] [client 38.118.10.237] 2. Requested
URI ==> /snflwr_doc_html/asut0002.htm
[Wed Nov 15 16:03:43 2006] [error] [client 38.118.10.237] 3. SSO TOKEN
==> 3243-sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:03:44 2006] [error] [client 38.118.10.237] 3. Proxy URL
==>
http://38.118.10.23:8247/SecurityServices/SSOProxyServlet?ssotoken=3243-
sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:03:44 2006] [error] [client 38.118.10.237] 3a. out1 ==>
TMILLS
[Wed Nov 15 16:03:44 2006] [error] [client 38.118.10.237] 3b. out2 ==>
[Wed Nov 15 16:03:44 2006] [error] [client 38.118.10.237] 3c. out3 ==>
[Wed Nov 15 16:03:44 2006] [error] [client 38.118.10.237] 3. SSO RESULT
==> TMILLS


[Wed Nov 15 16:03:47 2006] [error] [client 38.118.10.237] 1. Inside
Handler.
[Wed Nov 15 16:03:47 2006] [error] [client 38.118.10.237] 2. Requested
URI ==> /snflwr_doc_html/excess.htm
[Wed Nov 15 16:03:47 2006] [error] [client 38.118.10.237] 3. SSO TOKEN
==> 3243-sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:03:47 2006] [error] [client 38.118.10.237] 3. Proxy URL
==>
http://38.118.10.23:8247/SecurityServices/SSOProxyServlet?ssotoken=3243-
sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:03:47 2006] [error] [client 38.118.10.237] 3a. out1 ==>
TMILLS
[Wed Nov 15 16:03:47 2006] [error] [client 38.118.10.237] 3b. out2 ==>
[Wed Nov 15 16:03:47 2006] [error] [client 38.118.10.237] 3c. out3 ==>
[Wed Nov 15 16:03:47 2006] [error] [client 38.118.10.237] 3. SSO RESULT
==> TMILLS


[Wed Nov 15 16:03:49 2006] [error] [client 38.118.10.237] 1. Inside
Handler.
[Wed Nov 15 16:03:49 2006] [error] [client 38.118.10.237] 2. Requested
URI ==> /snflwr_doc_html/asex2010.htm
[Wed Nov 15 16:03:49 2006] [error] [client 38.118.10.237] 3. SSO TOKEN
==> 3243-sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:03:49 2006] [error] [client 38.118.10.237] 3. Proxy URL
==>
http://38.118.10.23:8247/SecurityServices/SSOProxyServlet?ssotoken=3243-
sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:03:49 2006] [error] [client 38.118.10.237] 3a. out1 ==>
[Wed Nov 15 16:03:49 2006] [error] [client 38.118.10.237] 3b. out2 ==>
[Wed Nov 15 16:03:49 2006] [error] [client 38.118.10.237] 3c. out3 ==>
[Wed Nov 15 16:03:49 2006] [error] [client 38.118.10.237] 3. SSO RESULT
==>

 
<<Did not invoke here>>
 
 
[Wed Nov 15 16:03:55 2006] [error] [client 38.118.10.237] 1. Inside
Handler.
[Wed Nov 15 16:03:55 2006] [error] [client 38.118.10.237] 2. Requested
URI ==> /snflwr_doc_html/asut0002.htm
[Wed Nov 15 16:03:55 2006] [error] [client 38.118.10.237] 3. SSO TOKEN
==> 3243-sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:03:55 2006] [error] [client 38.118.10.237] 3. Proxy URL
==>
http://38.118.10.23:8247/SecurityServices/SSOProxyServlet?ssotoken=3243-
sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:03:55 2006] [error] [client 38.118.10.237] 3a. out1 ==>
TMILLS
[Wed Nov 15 16:03:55 2006] [error] [client 38.118.10.237] 3b. out2 ==>
[Wed Nov 15 16:03:55 2006] [error] [client 38.118.10.237] 3c. out3 ==>
[Wed Nov 15 16:03:55 2006] [error] [client 38.118.10.237] 3. SSO RESULT
==> TMILLS


[Wed Nov 15 16:03:58 2006] [error] [client 38.118.10.237] 1. Inside
Handler.
[Wed Nov 15 16:03:58 2006] [error] [client 38.118.10.237] 2. Requested
URI ==> /snflwr_doc_html/agree.htm
[Wed Nov 15 16:03:58 2006] [error] [client 38.118.10.237] 3. SSO TOKEN
==> 3243-sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:03:58 2006] [error] [client 38.118.10.237] 3. Proxy URL
==>
http://38.118.10.23:8247/SecurityServices/SSOProxyServlet?ssotoken=3243-
sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:03:58 2006] [error] [client 38.118.10.237] 3a. out1 ==>
[Wed Nov 15 16:03:58 2006] [error] [client 38.118.10.237] 3b. out2 ==>
[Wed Nov 15 16:03:58 2006] [error] [client 38.118.10.237] 3c. out3 ==>
[Wed Nov 15 16:03:58 2006] [error] [client 38.118.10.237] 3. SSO RESULT
==>

<<Did not invoke here>>


[Wed Nov 15 16:04:02 2006] [error] [client 38.118.10.237] 1. Inside
Handler.
[Wed Nov 15 16:04:02 2006] [error] [client 38.118.10.237] 2. Requested
URI ==> /snflwr_doc_html/asut0002.htm
[Wed Nov 15 16:04:02 2006] [error] [client 38.118.10.237] 3. SSO TOKEN
==> 3243-sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:04:02 2006] [error] [client 38.118.10.237] 3. Proxy URL
==>
http://38.118.10.23:8247/SecurityServices/SSOProxyServlet?ssotoken=3243-
sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:04:02 2006] [error] [client 38.118.10.237] 3a. out1 ==>
TMILLS
[Wed Nov 15 16:04:02 2006] [error] [client 38.118.10.237] 3b. out2 ==>
[Wed Nov 15 16:04:02 2006] [error] [client 38.118.10.237] 3c. out3 ==>
[Wed Nov 15 16:04:02 2006] [error] [client 38.118.10.237] 3. SSO RESULT
==> TMILLS


[Wed Nov 15 16:04:04 2006] [error] [client 38.118.10.237] 1. Inside
Handler.
[Wed Nov 15 16:04:04 2006] [error] [client 38.118.10.237] 2. Requested
URI ==> /snflwr_doc_html/toolbar.htm
[Wed Nov 15 16:04:04 2006] [error] [client 38.118.10.237] 3. SSO TOKEN
==> 3243-sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:04:05 2006] [error] [client 38.118.10.237] 3. Proxy URL
==>
http://38.118.10.23:8247/SecurityServices/SSOProxyServlet?ssotoken=3243-
sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:04:05 2006] [error] [client 38.118.10.237] 3a. out1 ==>
[Wed Nov 15 16:04:05 2006] [error] [client 38.118.10.237] 3b. out2 ==>
[Wed Nov 15 16:04:05 2006] [error] [client 38.118.10.237] 3c. out3 ==>
[Wed Nov 15 16:04:05 2006] [error] [client 38.118.10.237] 3. SSO RESULT
==>
<<Did not invoke here>>

[Wed Nov 15 16:04:08 2006] [error] [client 38.118.10.237] 1. Inside
Handler.
[Wed Nov 15 16:04:08 2006] [error] [client 38.118.10.237] 2. Requested
URI ==> /snflwr_doc_html/asut0002.htm
[Wed Nov 15 16:04:08 2006] [error] [client 38.118.10.237] 3. SSO TOKEN
==> 3243-sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:04:09 2006] [error] [client 38.118.10.237] 3. Proxy URL
==>
http://38.118.10.23:8247/SecurityServices/SSOProxyServlet?ssotoken=3243-
sfsdf-88dsff-fds324-sfsdf2
[Wed Nov 15 16:04:09 2006] [error] [client 38.118.10.237] 3a. out1 ==>
TMILLS
[Wed Nov 15 16:04:09 2006] [error] [client 38.118.10.237] 3b. out2 ==>
[Wed Nov 15 16:04:09 2006] [error] [client 38.118.10.237] 3c. out3 ==>
[Wed Nov 15 16:04:09 2006] [error] [client 38.118.10.237] 3. SSO RESULT
==> TMILLS


Thanks
Sumit
  

> -----Original Message-----
> From: Perrin Harkins [mailto:suppressed 
> Sent: Wednesday, November 15, 2006 10:57 AM
> To: Sumit Shah
> Cc: suppressed
> Subject: Re: Basic Mod_Perl 1 and Apache 1.3 Issue: Unable to 
> get the requested page.
> 
> Sumit Shah wrote:
> > Thanks Perrin. I was able to figure out the problem. It had 
> to do with 
> > running Apache as a service versus standalone. If I run it as a 
> > service the code works as is and returns the requested 
> page. But if I 
> > run it as a service on Win2K it does not return the page.
> 
> Well, I'm confused, because the code you showed us will never 
> return a page of any kind.  If you got a page from that code, 
> something is wrong. 
>   That probably would mean it's not running your code at all.
> 
> And I have to repeat that you should not try to build 
> anything important on Windows with mod_perl 1.  Use mod_perl 
> 2 and apache 2.  They have good support for Windows.
> 
> - Perrin
> 


Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.