worked if you replaced
$socket = new IO::Socket::INET(
PeerAddr => $host,
PeerPort => $port,
Proto => 'tcp')
or die "Cannot connect to $port at $host";
with
$socket = new IO::Socket::INET(
PeerAddr => 'gaia',
PeerPort => 4444,
Proto => 'tcp')
or die "Cannot connect to $port at $host";
Have you tried just extracting the code to a small test program, defining the environment variables on the command line and running it through the perl debugger?
dhfg wrote:
Hi David,
The $socket, $host, and $port are all defined locally, ie. my $host, $port,
$socket (I missed them out while writing the email). What platform are you
trying it out. I have the socket client running within the Apache server on
the Solaris and making the connection to the Socket server running on a
Window XP PC. Wonder if this may cause the problem.
Cheers,
Dean
-----Original Message-----
From: David Dick [mailto:[EMAIL PROTECTED]]
Sent: Thursday, 6 February 2003 7:17 PM
To: dhfg
Cc: [EMAIL PROTECTED]
Subject: Re: Environment variable in Apache/mod_perl/IO::Socket
G'day Dean,
I just tried it and it seemed to work fine. (i just tried connecting to
my db instead and printed the value of $socket to STDERR). The only
question I have is where are $socket, $host and $port defined? They do
not seem to be local to the routine, so is it possible that is where the
confusion is happening?
Uru
-Dave
dhfg wrote:
Hi,my
In my web application, I am using Apache server with mod_perl. In one of
Perl modules, I am creating a client socket using IO::Socket::INET which isin
accepting the hotsname and port values from the environment variables set
the Apache config file http.conf. For some reason, this didn't workcorrectly.
eventhough I have verified that the values were set and retrieved
Below is the extract of my codes:
In the config file http.conf:
PerlSetEnv AGENT_SOCKET_HOST 'gaia'
PerlSetEnv AGENT_SOCKET_PORT 4444
In my AgentSocket.pm:
use strict;
use IO::Socket::INET;
sub new
{
$host = $ENV{AGENT_SOCKET_HOST}; # I have checked these values are same
as
$port = $ENV{AGENT_SOCKET_PORT}; # those set in the http.conf
$socket = new IO::Socket::INET(
PeerAddr => $host,
PeerPort => $port,
Proto => 'tcp')
or die "Cannot connect to $port at $host";
:
return $socket;
}
The above socket did not get connect to the server but didn't die either.
But if I assigned
$host='gaia', $port='4444' within the AgentSocket.pm then it worked fine.
I have been tearing my hair out for days now and can't find the answer.
Perhaps you could help. Thanks in advance.
Regards,
Dean