#!/opt/bin/perl

use common::sense;
use AnyEvent::MP;

initialise_node;

my %clients;

sub msg {
   print "relaying: $_[0]\n";
   snd $_, $_[0]
      for values %clients;
}

sub client_connect {
   my ($client, $name) = @_;

   mon $client;
   mon $client, sub {
      delete $clients{$client};
      msg "$name (quits, @_)";
   };

   $clients{$client} = $client;

   msg "$name (joins)";

   rcv $SELF, sub { msg "$name: $_[0]" };
}

warn "server ready.\n";

AE::cv->recv;
