IS_Fake: support for a real login procedure and validation of the client

git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@384 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
This commit is contained in:
Heikki Hannikainen 2012-06-04 14:41:51 +00:00
parent 04b99655a9
commit 903f49810d
1 changed files with 32 additions and 0 deletions

View File

@ -100,4 +100,36 @@ sub send_login_ok($$)
return $is->sendline("# logresp CALLSIGN unverified, server " . $self->{'mycall'} );
}
sub process_login($$)
{
my($self, $is) = @_;
my $r;
$r = $is->sendline("# IS_Fake 1.00");
if (!$r) {
return 'failed to transmit server software string';
}
my $login = $is->getline_noncomment(1);
if ($login !~ /^user\s+([^\s]+)\s+pass\s+(\d+)/) {
return 'login command not understood: ' . $login;
}
$is->{'client_user'} = $1;
my $pass_given = $2;
my $passcode = Ham::APRS::IS::aprspass($1);
my $verified = ($pass_given eq $passcode) ? 'verified' : 'unverified';
$r = $is->sendline("# logresp " . $is->{'client_user'} . " $verified, server " . $self->{'mycall'} );
if (!$r) {
return 'failed to transmit logresp';
}
return 'ok';
}
1;