use strict;
use FS::Daemon ':all';
-use FS::Misc::Getopt;
use FS::UID qw(dbh adminsuidsetup);
use FS::Record qw( dbh qsearch qsearchs );
use FS::addr_status;
+use FS::Conf;
+use Getopt::Std;
use Net::Ping;
my @TARGETS = (
# could add others here
);
-my $interval = 300; # seconds
my $timeout = 5.0; # seconds
# useful opts: scan interval, timeout, verbose, max forks
# maybe useful opts: interface, protocol, packet size, no-fork
+my $interval;
+
our %opt;
-getopts('vxi:');
+getopts('vxi:', \%opt);
+my $user = shift or die usage();
if (!$opt{x}) {
daemonize1('freeside-pingd');
$interval = $opt{i};
}
-adminsuidsetup($opt{user});
+sub debug {
+ warn(@_, "\n") if $opt{v};
+}
+
+adminsuidsetup($user);
$FS::UID::AutoCommit = 1;
+if ( !$interval ) {
+ my $conf = FS::Conf->new;
+ $interval = $conf->config('pingd-interval');
+ if ( !$interval ) {
+ debug("no pingd-interval configured; exiting");
+ exit(0);
+ }
+}
+
while(1) {
daemon_reconnect();
my @addrs_to_scan;
}
}
+sub usage {
+ "Usage:
+ freeside-pingd [ -i INTERVAL ] [ -v ] [ -x ] <username>
+";
+}
+