#!/uns/bin/perl -w
# usage-counter -*- perl -*-
# By Greg J. Badros -- 7-August-1998
# Modified from simple example in
# Srinivasan's _Advanced_Perl_Programming_

use IO::Socket;
use strict;
use POSIX;

my $scwm_usage_port = 13671; # from log-usage.h

my $listener = new IO::Socket::INET( #LocalHost => 'uni',
				    LocalPort => $scwm_usage_port,
				    Proto => 'udp',
				    Listen => SOMAXCONN,
				    Reuse => 1,
				    Timeout => 60,
				   ) || 
  die "Could not create listener: $!";

$| = 1; # turn on autoflush
my $data = "";

while (recv($listener, $data, 1000, 0)) {
  my ($magic, $len) = unpack("C1n", substr($data,0,3));
  my $msg = substr($data,3,$len-4);
  my $date = POSIX::strftime("%d-%B-%Y %H:%M:%S",gmtime(time()));
  print "$date ($magic) -- $msg\n";
}

print "Exited: $!\n";

close ($listener);
