#!/usr/local/bin/perl -w

use strict;
use POSIX "setsid";
use IO::Socket::INET;
use Data::Dumper;

sub dmesg {
	my $msg = shift;
	IO::Socket::INET
		->new(PeerPort=>17520,Proto=>'udp',PeerAddr=>'lglan.net')
		->send("ITSNO\nbiggernet\n$msg");
}


# setup server socket
my $udp = IO::Socket::INET->new(LocalPort => 1942, Proto => 'udp', MultiHomed => 1)
	or die "socket in use";

# daemonize
umask 0;
chdir "/" or die $!;
close STDIN;
close STDOUT;
close STDERR;
fork and exit;
setsid or die $!;
dmesg("*running, pid: $$*\n");

# network database
my %db = ();

#  loop forever
do {

	my $packet;	
	my $addr = $udp->recv($packet,576);
	my( $port, $ip ) = sockaddr_in($addr);
	my $host = gethostbyaddr($ip, AF_INET);

	if( not defined $db{$host} ) {
		$db{$host} = 1;
		dmesg("ward :: discovered $host");
	}

} while(1);

