# fix up the node's default country codes
unless (@main::my_cc) {
push @main::my_cc, (61..67) if $main::mycall =~ /^GB/;
- push @main::my_cc, qw(EA EA6 EA8 EA9) if $main::mycall =~ /^E(ABCD)/;
+ push @main::my_cc, qw(EA EA6 EA8 EA9) if $main::mycall =~ /^E[ABCD]/;
push @main::my_cc, qw(I IT IS) if $main::mycall =~ /^I/;
push @main::my_cc, qw(SV SV5 SV9) if $main::mycall =~ /^SV/;
}
# tie the main prefix database
- $db = tie(%pre, "DB_File", undef, O_RDWR|O_CREAT, 0664, $DB_BTREE) or confess "can't tie \%pre ($!)";
- my $out = $@ if $@;
- do "$main::data/prefix_data.pl" if !$out;
- $out = $@ if $@;
+ eval {$db = tie(%pre, "DB_File", undef, O_RDWR|O_CREAT, 0664, $DB_BTREE);};
+ my $out = "$@($!)" if !$db || $@ ;
+ eval {do "$main::data/prefix_data.pl" if !$out; };
+ $out .= $@ if $@;
$lru = LRU->newbase('Prefix', $lrusize);
return $out;
}
+sub loaded
+{
+ return $db;
+}
+
sub store
{
my ($k, $l);
return @out;
}
+# get the full country data (dxcc, itu, cq, state, city) as a list
+# from a callsign.
+sub cty_data
+{
+ my $call = shift;
+
+ my @dxcc = extract($call);
+ if (@dxcc) {
+ my $state = $dxcc[1]->state || '';
+ my $city = $dxcc[1]->city || '';
+ my $name = $dxcc[1]->name || '';
+
+ return ($dxcc[1]->dxcc, $dxcc[1]->itu, $dxcc[1]->cq, $state, $city, $name);
+ }
+ return (666,0,0,'','','Pirate-Country-QQ');
+}
+
my %valid = (
lat => '0,Latitude,slat',
long => '0,Longitude,slong',