FO,FO0FRA,TO8K;\r
Austral Is.: 32: 63: OC: -22.50: 152.00: 10.0: FO/a:\r
FO0AWI/A,FO0DEH,FO0FI,FO0KOJ,FO0MAC/A,FO0MIZ/A,FO0PAP/A,FO0SUC,FO0WEG,\r
- FO0XUU/A;\r
+ FO0XUU/A,TX5BTY;\r
Clipperton I.: 07: 10: NA: 10.30: 109.20: 7.0: FO/c:\r
FO0AAA,FO0CI;\r
Marquesas Is.: 31: 63: OC: -9.00: 139.50: 10.0: FO/m:\r
Kure I.: 31: 61: OC: 28.40: 178.40: 11.0: KH7K:\r
AH7K,KH7K,NH7K,WH7K;\r
American Samoa: 32: 62: OC: -14.30: 170.80: 11.0: KH8:\r
- AH8,KH8,KS6BK,KS6CQ,KS6DV,KS6EL,KS6FL,KS6FO,KS6FS,NH8,WH8;\r
+ AH8,KH8,KS6BK,KS6CQ,KS6DV,KS6EL,KS6FL,KS6FO,KS6FS,NH8,WH8,K8T,K8O;\r
Wake I.: 31: 65: OC: 19.30: -166.60: -12.0: KH9:\r
AH9,KH9,NH9,WH9;\r
Alaska: 01: 01: NA: 61.20: 150.00: 9.0: KL:\r
Svalbard: EU: 18: 40: JW: JW;
Jan Mayen: EU: 18: 40: JX: JX;
Jordan: AS: 39: 20: JY: JY;
-United States: NA: 08: 05: K: 4U1WB=A=AH2M=AH3C=AH3D=AL7H=K=KH6CP=KH6ND=KL7DN/1=KL7HIR=KL7HIR/3=KL7NA=KL7TF/4=KP4XS=N=NL7H/6=W=WL7WO=WL7Y=WN4KKN;
+United States: NA: 08: 05: K: 4U1WB=A=AH2M=AH3C=AH3D=AL7H=K=KL7DN/1=KL7HIR=KL7HIR/3=KL7NA=KL7TF/4=KP4XS=N=NL7H/6=W=WL7WO=WL7Y=WN4KKN;
Guantanamo Bay: NA: 11: 08: KG4: KG4=KG4AU;
Mariana Islands: OC: 64: 27: KH0: AH0=KG6RE=KG6RI=KG6SB=KG6SL=KH0=NH0=WH0;
Baker & Howland Islands: OC: 61: 31: KH1: KH1=AH1=NH1=WH1;
{
my $self = shift;
- $self->send($self->gen1);
+ $self->send($self->genI);
}
sub normal
DXProt::normal(@_);
return;
}
- my ($id, $fromnode, $msgid, $incs);
- return unless ($id, $fromnode, $msgid, $incs) = $_[1] =~ /^QX(\d\d)\^([-A-Z0-9]+)\^([0-9A-F]{1,4})\^.*\^([0-9A-F]{2})$/;
+ my ($sort, $tonode, $fromnode, $msgid, $incs);
+ return unless ($sort, $tonode, $fromnode, $msgid, $incs) = $_[1] =~ /^QX([A-Z])\^(\*|[-A-Z0-9]+)\^([-A-Z0-9]+)\^([0-9A-F]{1,4})\^.*\^([0-9A-F]{2})$/;
$msgid = hex $msgid;
my $noderef = Route::Node::get($fromnode);
return unless $noderef->newid($msgid);
- $_[0]->handle($id, $fromnode, $msgid, $_[1]);
+ $_[0]->handle($sort, $tonode, $fromnode, $msgid, $_[1]);
return;
}
{
no strict 'subs';
my $self = shift;
- my $id = 0 + shift;
- my $sub = "handle$id";
+ my $sort = shift;
+ my $sub = "handle$sort";
$self->$sub(@_) if $self->can($sub);
return;
}
{
no strict 'subs';
my $self = shift;
- my $id = 0 + shift;
- my $sub = "gen$id";
- $self->$sub(@_) if $self->can($sub);
+ my $sort = shift;
+ my $sub = "gen$sort";
+ $self->$sub(@_) if $self->can($sub);
return;
}
sub frame
{
- my $pcno = shift;
+ my $sort = shift;
+ my $to = shift || "*";
my $ht;
$ht = sprintf "%X", $msgid;
- my $line = join '^', sprintf("QX%02d", $pcno), $main::mycall, $ht, @_;
+ my $line = join '^', "QX$sort", $to, $main::mycall, $ht, @_;
my $cs = sprintf "%02X", unpack("%32C*", $line) & 255;
$msgid = 1 if ++$msgid > 0xffff;
return "$line^$cs";
}
-sub handle1
+sub handleI
{
my $self = shift;
$self->disconnect;
}
if ($self->{outbound}) {
- $self->send($self->gen1);
+ $self->send($self->genI);
}
if ($self->{sort} ne 'S' && $f[4] eq 'DXSpider') {
$self->{user}->{sort} = $self->{sort} = 'S';
}
$self->{version} = $f[5];
$self->{build} = $f[6];
- $self->state('normal');
+ $self->state('init1');
$self->{lastping} = 0;
}
-sub gen1
+sub genI
{
my $self = shift;
my $inp = Verify->new;
- return frame(1, 1, "DXSpider", ($main::version + 53) * 100, $main::build, $inp->challenge, $inp->response($self->user->passphrase, $self->call, $main::mycall));
+ return frame('I', $self->call, 1, "DXSpider", ($main::version + 53) * 100, $main::build, $inp->challenge, $inp->response($self->user->passphrase, $self->call, $main::mycall));
+}
+
+sub handleB
+{
+
+}
+
+sub genB
+{
+
+}
+
+sub handleP
+{
+
}
-sub handle2
+sub genP
{
}