From 176becbfcee0578f6ac925aaa38c58a07b34a305 Mon Sep 17 00:00:00 2001 From: Martin Kamerbeek Date: Wed, 13 Oct 2010 17:59:35 +0200 Subject: [PATCH] Set env ip to that of sender. --- sbin/newsletter-transport.pl | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/sbin/newsletter-transport.pl b/sbin/newsletter-transport.pl index 8ec705b..d26eaf8 100755 --- a/sbin/newsletter-transport.pl +++ b/sbin/newsletter-transport.pl @@ -25,17 +25,23 @@ my $webguiRoot = '/data/WebGUI'; #--------------------------------------------------------------- # Startup { - my ( $configFile, $command, $id ) = getCredentials(); + my ( $configFile, $command, $id, $sender, $senderIp ) = getCredentials(); if ( WebGUI::MailCommand::isValidCommand( $command ) ) { my $session = openSession( $webguiRoot, $configFile ); - - WebGUI::MailCommand::processCommand( $session, $command, $id ); - + no warnings 'once'; + *{ WebGUI::Session::Env::getIp } = sub { + return $senderIp; + }; + + $session->log->warn( "IP is : [$senderIp][" .$session->env->getIp ."]"); + + WebGUI::MailCommand::processCommand( $session, $command, $id, $sender ); + closeSession( $session ); } else { - # TODO: log something + die "Not a valid command [$command]."; } exit(0); @@ -43,14 +49,18 @@ my $webguiRoot = '/data/WebGUI'; #----------------------------------------------------------------------------- sub getCredentials { - my ( $domain, $user ); + my ( $domain, $user, $sender, $senderIp ); GetOptions( 'domain=s' => \$domain, 'user=s' => \$user, + 'sender=s' => \$sender, + 'senderIp=s'=> \$senderIp, ); die "--domain parameter is required" unless $domain; - die "--user paramere is required" unless $user; + die "--user parameter is required" unless $user; + die "--sender parameter is required" unless $sender; + die "--senderIp parameter is required" unless $senderIp; my $dispatch = WebGUI::Config->new( $webguiRoot, 'mailing_dispatch.config' ) || die "Cannot open $webguiRoot/etc/mailing_dispatch.config"; @@ -64,7 +74,8 @@ sub getCredentials { die "Received mail addressed to [$user\@$domain] which contains no id" unless $id; die "Received mail addressed to [$user\@$domain] which contains no command" unless $command; - return ( $configFile, $command, $id ); + + return ( $configFile, $command, $id, $sender, $senderIp ); } #-----------------------------------------------------------------------------