#!/usr/bin/perl
# Multicast client
# Copyright (c) 2007 Artica Soluciones Tecnologicas S.L.

use strict;
use warnings;
use POSIX qw(strftime);
use IO::Socket::Multicast;

if ($#ARGV != 3) {
	print "Usage: $0 <group> <port> <agent_name> <alert_name>\n";
	exit 1;
}

my $group = $ARGV[0];
my $port = $ARGV[1];
my $agent_name = $ARGV[2];
my $alert_name = $ARGV[3];

my $status_report = "<status_report>\n";

$status_report .= "<element id='$agent_name' name='$alert_name' status='ALRM' timestamp='" . strftime ("%Y/%m/%d %H:%M:%S", localtime()) . "'></element>\n";

$status_report .= "</status_report>\n";

my $socket = IO::Socket::Multicast->new(Proto => 'udp',
                                            PeerAddr => $group . ':' . $port);
return unless defined ($socket);
$socket->send($status_report);

# print $status_report;