[slbackup-commit] CVS update: slbackup/src slbackup-cron
werner-guest@alioth.debian.org
werner-guest@alioth.debian.org
Wed, 03 Nov 2004 10:32:00 -0700
User: werner-guest
Date: 04/11/03 10:32:00
Modified: src slbackup-cron
Log:
also adding a check for client address
Revision Changes Path
1.8 +19 -2 slbackup/src/slbackup-cron
Index: slbackup-cron
===================================================================
RCS file: /cvsroot/slbackup/slbackup/src/slbackup-cron,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- slbackup-cron 3 Nov 2004 17:28:55 -0000 1.7
+++ slbackup-cron 3 Nov 2004 17:31:59 -0000 1.8
@@ -117,12 +117,29 @@
$config->{client}->{$key}->{type} ne "local") {
# check that address is provided
- #FIXME - check that the address is valid
if (!exists ($config->{client}->{$key}->{address})) {
logger ("Address for client $key is not present in " .
"configuration... please fix!");
logger ("Backup of client $key failed.");
next;
+ }
+
+ # check if the client's address is valid:
+ if (!$config->{client}->{$key}->{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])$')
+ {
+ # 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->{client}->{$key}->{address});
+
+ if (!$query)
+ {
+ logger ("Couldn't resolve host " .
+ "\'$config->{client}->{$key}->{address}\' ");
+ logger ("Backup of client $key failed.");
+ next;
+ }
}
# check that username is provided