#!/usr/bin/perl
#
# this script is called by heartbeat when it wants to acquire a vip  
# all this script does is notify the local lvsd that it should set up
# the routing tables. 
#
use strict;
use Socket;
use Digest::SHA1 qw(sha1);
use Dgrm_msg;

my $sock = '/var/run/plvsd/sock';

socket(SOCK, PF_UNIX, SOCK_DGRAM, 0) || die "socket: $!\n";
connect(SOCK, sockaddr_un($sock));

my $string = shift;
my $arg = shift;
my ($ip, $vip_port, $key);

if($string =~ /([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)_([0-9]+)_/) {
  $ip = $1;
  $vip_port = $2;
  $string =~ s/$ip\_$vip_port\_//;
}

$key = $string;

my $m;
if($arg eq 'start') {
  $m = new Dgrm_msg::activate_vip_message(sha1($key), $ip, $vip_port);
} else {
  $m = new Dgrm_msg::deactivate_vip_message(sha1($key), $ip, $vip_port);
}  
$m->write_to(\*SOCK, $key);
