| version 1.6, 2005/11/17 00:40:06 | version 1.8, 2005/11/17 20:20:59 | 
|  |  | 
| #!/usr/bin/perl | #!/usr/bin/perl | 
| # $RedRiver: update_trango.pl,v 1.5 2005/11/16 21:39:51 andrew Exp $ | # $RedRiver: update_trango.pl,v 1.7 2005/11/17 20:09:45 andrew Exp $ | 
| ######################################################################## | ######################################################################## | 
| # update_trango.pl *** Updates trango foxes with a new firmware | # update_trango.pl *** Updates trango foxes with a new firmware | 
| # | # | 
|  |  | 
| use Net::TFTP; | use Net::TFTP; | 
| use Fcntl ':flock'; # import LOCK_* constants | use Fcntl ':flock'; # import LOCK_* constants | 
| #use YAML; | #use YAML; | 
|  | use constant LOG_SAVE => 1; | 
|  |  | 
|  |  | 
| my $config_file = shift || 'update_trango.conf'; | my $config_file = shift || 'update_trango.conf'; | 
| my $conf = read_conf($config_file); |  | 
|  |  | 
| my $max_tries = 1; | my $max_tries = 1; | 
|  |  | 
| my $log_file =  GetLogName('UT'); |  | 
| use constant LOG_SAVE => 1; |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | my $log_file =  GetLogName('UT'); | 
| my $MYLOG;  # file handle for logging so we don't have to close and open it all the time | my $MYLOG;  # file handle for logging so we don't have to close and open it all the time | 
| END { | END { | 
| if ($MYLOG) { | if ($MYLOG) { | 
|  |  | 
| } | } | 
|  |  | 
|  |  | 
|  | mylog("Reading config file '$config_file'", LOG_SAVE); | 
|  | my $conf = read_conf($config_file); | 
|  |  | 
|  | mylog("  Hardware Type: $conf->{'type'}", LOG_SAVE); | 
|  | mylog("  File Name:     $conf->{'file_name'}", LOG_SAVE); | 
|  | mylog("  File Size:     $conf->{'file_size'}", LOG_SAVE); | 
|  | mylog("  File Checksum: $conf->{'file_cksum'}", LOG_SAVE); | 
|  | mylog("  FW Version:    $conf->{'ver'}", LOG_SAVE); | 
|  | mylog("  FW Checksum:   $conf->{'cksum'}", LOG_SAVE); | 
|  | mylog("", LOG_SAVE); | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
| foreach my $fox (@{ $conf->{'ips'} }) { | foreach my $fox (@{ $conf->{'ips'} }) { | 
| mylog("Updating: $fox", LOG_SAVE); | mylog("Updating: $fox", LOG_SAVE); | 
|  |  | 
|  |  | 
| next if /^#/; | next if /^#/; | 
| next if /^$/; | next if /^$/; | 
| if ($in_ip_list) { | if ($in_ip_list) { | 
| push @{ $conf{'ips'} }, $_; | if (/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.)(\d{1,3})-(\d{1,3})/) { | 
|  | push @{ $conf{'ips'} }, $1 . $_ for ($2..$3); | 
|  | } else { | 
|  | push @{ $conf{'ips'} }, $_; | 
|  | } | 
| } else { | } else { | 
| my ($key, $val) = split /\s+/, $_, 2; | my ($key, $val) = split /\s+/, $_, 2; | 
|  |  | 
|  |  | 
| if (not exists $conf{$_}); | if (not exists $conf{$_}); | 
| } | } | 
|  |  | 
|  | #print Dump \%conf; | 
|  | #exit; | 
| return \%conf; | return \%conf; | 
| } | } | 
|  |  |