#!/usr/local/bin/perl -w
use strict;
use lib qw( ../lib ); # for testing
use Net::SNPP::Server;
use Sys::Syslog qw(:DEFAULT setlogsock);
setlogsock('unix');
openlog( "snppd.pl", 'pid,cons,ndelay,nowait', 'daemon' )
or die "could not openlog(): $!";
my $server = Net::SNPP::Server->new(
Port => 11444,
Timeout => 60
);
sub write_log_syslog { syslog( shift, join(' ',@_) ); }
sub fake_MSTA {
return "960 1 20031002100000+6 Message Queued; Awaiting Delivery";
}
$server->callback( 'write_log', \&write_log_syslog );
# lie about MSTA requests and say they're all OK
$server->custom_command( 'MSTA', \&fake_MSTA );
my( $pipe, $pid ) = $server->forked_server();
while ( my $result = $pipe->getline() ) {
chomp( $result );
my( $pin, $pin_passwd, %page ) = split( /;/, $result );
# put your own data storage/forwarding logic here
print "got page for pin $pin with message '$page{mess}'\n";
}
$pipe->close();
closelog();
# reap the server process
waitpid( $pid, 1 );
exit 0;
syntax highlighted by Code2HTML, v. 0.9.1