[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