my $long = $user->long;
if (defined $lat && defined $long) {
$user->qra(DXBearing::lltoqra($lat, $long));
- $user->put;
+ $user->put unless $self->{_nospawn};
}
}
}
}
$user->lastoper($main::systime);
- $user->put;
+ $user->put unless $self->{_nospawn};
}
}
}
$user->homenode($parent->call) if !$user->homenode;
$user->node($parent->call);
$user->lastin($main::systime) unless DXChannel::get($call);
- $user->put;
+ $user->put unless $self->{_nospawn};
# send info to all logged in thingies
$self->tell_login('loginu', "$ncall: $call") if $user->is_local_node;
$self->{build} = 0 + $build;
$self->user->build(0 + $build);
$parent->build(0 + $build);
- dbg("DXSpider version $version build $build");
+ dbg("$self->{call} = DXSpider version $version build $build");
unless ($self->is_spider) {
dbg("Change U " . $self->user->sort . " C $self->{sort} -> S");
$self->user->sort('S');
- $self->user->put;
+ $self->user->put unless $self->{_nospawn};
$self->sort('S');
}
# $self->{handle_xml}++ if DXXml::available() && $pc->[1] =~ /\bxml/;
} else {
- dbg("Unknown software");
+ dbg("$self->{call} = Unknown software ($pc->[1] $pc->[2])");
$self->version(50.0);
$self->version($pc->[2] / 100) if $pc->[2] && $pc->[2] =~ /^\d+$/;
$self->user->version($self->version);
if ($pc->[1] =~ /\bpc9x/) {
if ($self->{isolate}) {
- dbg("pc9x recognised, but $self->{call} is isolated, using old protocol");
+ dbg("$self->{call} pc9x recognised, but node is isolated, using old protocol");
} elsif (!$self->user->wantpc9x) {
- dbg("pc9x explicitly switched off on $self->{call}, using old protocol");
+ dbg("$self->{call} pc9x explicitly switched off, using old protocol");
} else {
$self->{do_pc9x} = 1;
- dbg("Do px9x set on $self->{call}");
+ dbg("$self->{call} Set do PC9x");
}
}
my $call = shift;
# add this station to the user database, if required (don't remove SSID from nodes)
- my $user = DXUser::get_current($call);
+ my $chan = DXChannel::get($call);
+ my $user;
+ $user = $chan->user if $chan;
+ $user ||= DXUser::get($call);
unless ($user) {
$user = DXUser->new($call);
$user->priv(1); # I have relented and defaulted nodes
$user->node($call);
$user->sort('A');
$user->lastin($main::systime); # this make it last longer than just this invocation
- $user->put; # just to make sure it gets written away!!!
+ $user->put unless $chan && $chan->{_nospawn}; # just to make sure it gets written away!!!
}
return $user;
}
$mref->stop_msg($call) if $mref;
$user->lastin($main::systime) unless DXChannel::get($call);
- $user->put;
+ $user->put unless $self->{_nospawn};
}
# we are not automatically sending out PC19s, we send out a composite PC21,PC19 instead
}
}
$user->lastoper($main::systime); # to cut down on excessive for/opers being generated
- $user->put;
+ $user->put unless $self->{_nospawn};
unless ($self->{isolate}) {
DXChannel::broadcast_nodes($line, $self); # send it to everyone but me