From 903f49810d9528ec8d589dd245f10c2131987e22 Mon Sep 17 00:00:00 2001 From: Heikki Hannikainen Date: Mon, 4 Jun 2012 14:41:51 +0000 Subject: [PATCH] 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 --- tests/libperl/Ham/APRS/IS_Fake.pm | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/libperl/Ham/APRS/IS_Fake.pm b/tests/libperl/Ham/APRS/IS_Fake.pm index 7d26e78..4b259ed 100644 --- a/tests/libperl/Ham/APRS/IS_Fake.pm +++ b/tests/libperl/Ham/APRS/IS_Fake.pm @@ -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;