--- mdap-server.pl 2007/04/23 23:36:57 26 +++ mdap-server.pl 2007/04/24 09:52:05 27 @@ -140,6 +140,13 @@ return 1; } +sub forget_ant { + my $ant = shift || die "no ant?"; + delete $ant_unknown_password->{$ant}; + delete $ant_passwd->{$ant}; + delete $ant_ok_password->{$ant}; +} + my $once; sub once { @@ -189,9 +196,10 @@ } elsif ($type eq 'REPLY-INFO') { if ( $seq_nr < 0 ) { - if ( $ant_ok_password ) { - $ant_ok_password->{$ant} = 0; - } elsif ( ant_another_passwd( $ant ) ) { +# if ( $ant_ok_password ) { +# $ant_ok_password->{$ant} = 0; +# } elsif ( ant_another_passwd( $ant ) ) { + if ( ant_another_passwd( $ant ) ) { ($user_id,$user_pwd) = ant_credentials( $ant ); mdap_send("INFO MDAP/$mdap_ver\r\nSEQ-NR:1\r\nTO-ANT:$ant\r\nUSER-ID:$user_id\r\nUSER-PWD:$user_pwd\r\n"); } @@ -220,9 +228,7 @@ } elsif ( $type eq 'REPLY-EXEC-CLI' && $h->{'SEQ-NR'} == 1 ) { print "+ $ant bootp mode re-flash started\n"; 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"); - $ant_unknown_password->{$ant} = 0; - $ant_passwd->{$ant} = 0; - $ant_ok_password->{$ant} = 0; + forget_ant( $ant ); } else { print "!! reply ignored ", dump( $h ), $/; }