/[smeserver]/rpms/qpsmtpd/sme8/qpsmtpd-0.33-xinetd.patch
ViewVC logotype

Contents of /rpms/qpsmtpd/sme8/qpsmtpd-0.33-xinetd.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (show annotations) (download)
Fri Oct 16 22:45:25 2009 UTC (14 years, 7 months ago) by slords
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
FILE REMOVED
Update to 0.83

1 --- lib/Qpsmtpd/TcpServer.pm.xinetd Wed Oct 4 15:49:49 2006
2 +++ lib/Qpsmtpd/TcpServer.pm Sun Nov 5 16:20:44 2006
3 @@ -1,6 +1,7 @@
4 package Qpsmtpd::TcpServer;
5 use Qpsmtpd::SMTP;
6 use Qpsmtpd::Constants;
7 +use Socket;
8
9 @ISA = qw(Qpsmtpd::SMTP);
10 use strict;
11 @@ -12,12 +13,25 @@
12 sub start_connection {
13 my $self = shift;
14
15 - die "Qpsmtpd::TcpServer must be started by tcpserver\n"
16 - unless $ENV{TCPREMOTEIP};
17 + my ($remote_host, $remote_info, $remote_ip);
18
19 - my $remote_host = $ENV{TCPREMOTEHOST} || ( $ENV{TCPREMOTEIP} ? "[$ENV{TCPREMOTEIP}]" : "[noip!]");
20 - my $remote_info = $ENV{TCPREMOTEINFO} ? "$ENV{TCPREMOTEINFO}\@$remote_host" : $remote_host;
21 - my $remote_ip = $ENV{TCPREMOTEIP};
22 + if ($ENV{TCPREMOTEIP}) {
23 + # started from tcpserver (or some other superserver which
24 + # exports the TCPREMOTE* variables.
25 + $remote_ip = $ENV{TCPREMOTEIP};
26 + $remote_host = $ENV{TCPREMOTEHOST} || "[$remote_ip]";
27 + $remote_info = $ENV{TCPREMOTEINFO} ? "$ENV{TCPREMOTEINFO}\@$remote_host" : $remote_host;
28 + } else {
29 + # Started from inetd or similar.
30 + # get info on the remote host from the socket.
31 + # ignore ident/tap/...
32 + my $hersockaddr = getpeername(STDIN)
33 + or die "getpeername failed: $0 must be called from tcpserver, (x)inetd or a similar program which passes a socket to stdin";
34 + my ($port, $iaddr) = sockaddr_in($hersockaddr);
35 + $remote_ip = inet_ntoa($iaddr);
36 + $remote_host = gethostbyaddr($iaddr, AF_INET) || "[$remote_ip]";
37 + $remote_info = $remote_host;
38 + }
39 $self->log(LOGNOTICE, "Connection from $remote_info [$remote_ip]");
40
41 # if the local dns resolver doesn't filter it out we might get

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed