#!/usr/bin/perl -w 
#
# Zymonic Business Process and Information Management System
# Copyright Zednax Limited 201q -
# For Authors and Changelog see the subversion history
use strict;

package main;

use Zymonic::Decryptor::Client;
use Zymonic::Config;
use Data::Dumper;
use Zymonic::Config;

BEGIN
{
    use Zymonic::Utils qw(death_handler);
    $main::SIG{__DIE__} = \&death_handler;
}

$Zymonic::system = $ARGV[0];
unless ($Zymonic::system)
{
    print "Usage: remove_dead_decryptors.pl [system]\n";
    exit(1);
}
$Zymonic::ZCONFIG{$Zymonic::system} =
  Zymonic::Config->new( system_name => $Zymonic::system, config_dir => "/etc/zymonic" );
my $zdc = Zymonic::Decryptor::Client->new(
    config => $Zymonic::ZCONFIG{$Zymonic::system},
    db     => $Zymonic::ZCONFIG{$Zymonic::system}->{DB}
);

my $response = $zdc->call_decryptor( { messagetype => 'CleanUp', remove_dead => 'true' } );
my @dead_decryptors = @{ $response->{dead_servers} };
if (@dead_decryptors)
{
    map { print "Removed dead decryptor listening at $_->{hostname}:$_->{port} - $_->{d_posix_process_id}\n" }
      @dead_decryptors;
    print '' . ( scalar @dead_decryptors ) . " dead decryptor(s) removed.\n";
}
else
{
    print "No dead $system decryptors found.\n";
}
