[slbackup-commit] CVS update: slbackup/src slbackup-cron
werner-guest@alioth.debian.org
werner-guest@alioth.debian.org
Wed, 03 Nov 2004 10:28:56 -0700
User: werner-guest
Date: 04/11/03 10:28:56
Modified: src slbackup-cron
Log:
added address check
Revision Changes Path
1.7 +20 -2 slbackup/src/slbackup-cron
Index: slbackup-cron
===================================================================
RCS file: /cvsroot/slbackup/slbackup/src/slbackup-cron,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- slbackup-cron 2 Jun 2004 07:29:24 -0000 1.6
+++ slbackup-cron 3 Nov 2004 17:28:55 -0000 1.7
@@ -9,6 +9,7 @@
use strict;
use Config::General;
use POSIX qw(strftime);
+use NET::DNS;
use SLBackup;
my $logfile = "/var/log/slbackup/slbackup.log";
@@ -35,12 +36,29 @@
$config->{server_type} ne "local") {
# check if server_address is present in configuration
- #FIXME - check that the address is valid
if (!exists ($config->{server_address})) {
logger ("Address for server is not present in configuration " .
"file... please fix!");
logger("Failed backing up clients.");
last;
+ }
+
+ # check if server_address is valid:
+ if (!$config->{server_address} =~ '^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$')
+ {
+ # server_address doesn't seem to be an IP...
+ # let's try to look up the host's addresses:
+
+ my $dns_res = Net::DNS::Resolver->new;
+ my $query = $dns_res->search($config->{server_address});
+
+ if (!$query)
+ {
+ logger ("Couldn't resolve host " .
+ "\'$config->{server_address}\' ");
+ logger ("Failed backing up clients.");
+ last;
+ }
}
# check if server_user is present in configuration