[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