X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FQXProt.pm;h=b9cf952cb497a553d4fed6aa0069f09d7d20e2f5;hb=487b2a304268a9825e071fc76238749a821ea056;hp=8ab1f4c66ff091e67c8fa9d3a9d06eab317b74d4;hpb=70dbd742db4241e97496db69e89160ec573a5949;p=spider.git diff --git a/perl/QXProt.pm b/perl/QXProt.pm index 8ab1f4c6..b9cf952c 100644 --- a/perl/QXProt.pm +++ b/perl/QXProt.pm @@ -134,15 +134,6 @@ sub disconnect $self->DXProt::disconnect(@_); } -sub sendallnodes -{ -} - -sub sendallusers -{ - -} - my $msgid = 1; sub frame @@ -162,21 +153,26 @@ sub handleI { my $self = shift; - my @f = split /\^/, $_[2]; - my $inv = Verify->new($f[8]); - unless ($inv->verify($f[9], $main::me->user->passphrase, $main::mycall, $self->call)) { - $self->sendnow('D','Sorry...'); - $self->disconnect; + my @f = split /\^/, $_[3]; + if ($self->passphrase && $f[7] && $f[8]) { + my $inv = Verify->new($f[7]); + unless ($inv->verify($f[8], $main::me->user->passphrase, $main::mycall, $self->call)) { + $self->sendnow('D','Sorry...'); + $self->disconnect; + } + $self->{verified} = 1; + } else { + $self->{verified} = 0; } if ($self->{outbound}) { $self->send($self->genI); } - if ($self->{sort} ne 'S' && $f[5] eq 'DXSpider') { + if ($self->{sort} ne 'S' && $f[4] eq 'DXSpider') { $self->{user}->{sort} = $self->{sort} = 'S'; $self->{user}->{priv} = $self->{priv} = 1 unless $self->{priv}; } - $self->{version} = $f[6]; - $self->{build} = $f[7]; + $self->{version} = $f[5]; + $self->{build} = $f[6]; $self->state('init1'); $self->{lastping} = 0; } @@ -184,16 +180,20 @@ sub handleI sub genI { my $self = shift; - my $inp = Verify->new; - return frame('I', $self->call, 1, "DXSpider", ($main::version + 53) * 100, $main::build, $inp->challenge, $inp->response($self->user->passphrase, $self->call, $main::mycall)); + my @out = ('I', $self->call, "DXSpider", ($main::version + 53) * 100, $main::build); + if (my $pass = $self->user->passphrase) { + my $inp = Verify->new; + push @out, $inp->challenge, $inp->response($pass, $self->call, $main::mycall); + } + return frame(@out); } -sub handleB +sub handleR { } -sub genB +sub genR { }