# udpsender - send data to PicoWeb.
#
# no batching - just sends one datagram for each record from STDIN.
#

require 'subs.pl' ;

$cmd_port = $ENV{"CMDPORT"} || 99 ;
($addr) = $ARGV[0] ;

$AF_INET = 2 ;
$SOCK_STREAM = 1 ;
$SOCK_DGRAM = 2 ;
$INADDR_ANY = pack("N",0) ;
$SOCKADDR = "S n a4 x8" ;
($name,$aliases,$IPPROTO_UDP) = getprotobyname('udp') ;

$| = 1 ;

$listenaddr = pack($SOCKADDR,$AF_INET,$cmd_port,$INADDR_ANY) ;
#
# sockaddr representing the picoweb we're talking to.
#
$sendaddr = pack($SOCKADDR,$AF_INET,$cmd_port,&inet_addr($addr)) ;

socket(S,$AF_INET,$SOCK_DGRAM,$IPPROTO_UDP) || die "socket: $!" ;

while (<STDIN>)  {
    send(S,$_,0,$sendaddr) ;
}
