--- mdap-server.pl 2007/04/24 10:01:22 28 +++ mdap-server.pl 2007/04/24 15:44:20 31 @@ -11,6 +11,7 @@ my $debug = 0; my $quiet = 1; my $verbose = 0; +my $credentials = 0; my $resend_search_delay = 3; my $tftp_path = '/srv/tftp/'; @@ -23,6 +24,7 @@ "verbose!" => \$verbose, "search=i" => \$resend_search_delay, "tftp=s" => \$tftp_path, + "credentials" => \$credentials, ); $quiet = 0 if $verbose; @@ -38,7 +40,7 @@ while(<$fh>) { chomp; next if /^#/ || /^$/ || /^\s+$/; - if (/^\S+\t\S+$/) { + if (/^\S+\s\S+$/) { push @try_accounts, $_; } else { warn "invalid $passwd_path entry: $_\n"; @@ -156,6 +158,16 @@ print $m if ($once->{$m} == 1); } +my $status = ''; + +sub status { + my $m = join('', @_); + if ($m ne $status) { + print $m; + $status = $m; + } +} + local $SIG{ALRM} = sub { mdap_send("ANT-SEARCH MDAP/1.1\r\n"); alarm( $resend_search_delay ); @@ -207,6 +219,7 @@ next; } else { $ant_ok_password->{$ant}++; + print "$ant credentials $user_id $user_pwd\n" if ($credentials && $ant_ok_password->{$ant} == 1); } my $board = $h->{'_BOARD_NAME'} || die "no _BOARD_NAME?"; @@ -224,16 +237,23 @@ "\n"; $ant_flashing->{$ant} = 0; my $waiting = 0; + my $count = 0; map { $waiting++ if ($ant_flashing->{$_}); + $count++; } keys %$ant_flashing; - print "**** ALL ANTS FLASHED ****\n" if ($ant_flashing && $waiting == 0); + if ($waiting == 0) { + status "ALL $count ANTS FLASHED to $build\n"; + $ant_flashing = undef; + } else { + status "$waiting of $count ants still flasing upto $build\n"; + } } } else { once "!! NO FIRMWARE for $board in $tftp_path for ant $ant, skipping update\n"; } } elsif ( $type eq 'REPLY-EXEC-CLI' && $h->{'SEQ-NR'} == 1 ) { - print "+ $ant bootp mode re-flash started\n"; + print "+ $ant bootp mode re-flash started\n" if ($verbose); mdap_send("EXEC-CLI MDAP/$mdap_ver\r\nSEQ-NR:2\r\nTO-ANT:$ant\r\nUSER-ID:$user_id\r\nUSER-PWD:$user_pwd\r\n"); forget_ant( $ant ); $ant_flashing->{$ant}++;