Date: Mon, 25 Jan 1999 19:19:30 -0500 (EST) From: jwhite@cryogen.com To: root@swimsuit.internet.dk Cc: freebsd-isp@FreeBSD.ORG Subject: Re: dummy-pop3 server Message-ID: <199901252013.PAA16533@mcclane2.erols.com> In-Reply-To: <Pine.BSF.4.05.9901260031590.3837-100000@gina.neland.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
#!/usr/bin/perl -Tw
require 5.003;
use strict;
use Socket;
use Carp;
sub spawn; # forward declaration
my $port = 110;
my $proto = getprotobyname('tcp');
socket(Server, PF_INET, SOCK_STREAM, $proto) or die "socket: $!";
setsockopt(Server, SOL_SOCKET, SO_REUSEADDR, pack("l", 1))
or die "setsockopt: $!";
bind(Server, sockaddr_in($port, INADDR_ANY)) or die "bind: $!";
listen(Server,SOMAXCONN) or die "listen: $!";
my $waitedpid = 0;
my $paddr;
sub REAPER {
$SIG{CHLD} = \&REAPER; # if you don't have sigaction(2)
$waitedpid = wait;
}
$SIG{CHLD} = \&REAPER;
for ( ; $paddr = accept(Client,Server); close Client) {
my($port,$iaddr) = sockaddr_in($paddr);
my $name = gethostbyaddr($iaddr,AF_INET);
spawn sub {
print "Hey dummy, we have moved the pop3-server; don't
use this ip-adress, use the name: mail.our.domain instead.\n";
};
}
sub spawn {
my $coderef = shift;
unless (@_ == 0 && $coderef && ref($coderef) eq 'CODE') {
confess "usage: spawn CODEREF";
}
my $pid;
if (!defined($pid = fork)) {
return;
} elsif ($pid) {
return; # i'm the parent
}
# else i'm the child -- go spawn
open(STDIN, "<&Client") or die "can't dup client to stdin";
open(STDOUT, ">&Client") or die "can't dup client to stdout";
## open(STDERR, ">&STDOUT") or die "can't dup stdout to stderr";
exit &$coderef();
}
#So I was bored :)
On 26 Jan, Leif Neland wrote:
> I'm looking for a dummy pop3-server, which can authorize anybody, and just
> send a single message: 'Hey dummy, we have moved the pop3-server; don't
> use this ip-adress, use the name: "mail.our.domain" instead.'
>
> leif@neland.dk
>
>
>
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-isp" in the body of the message
>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-isp" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199901252013.PAA16533>
