$scriptbase = "$main::root/scripts"; # the place where all users start scripts go
$maxerrors = 20; # the maximum number of concurrent errors allowed before disconnection
+use vars qw($VERSION $BRANCH);
+$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
+$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ ) || 0;
+$main::build += $VERSION;
+$main::branch += $BRANCH;
+
#
# obtain a new connection this is derived from dxchannel
#
$self->{lang} = $user->lang || $main::lang || 'en';
$self->{pagelth} = $user->pagelth || 20;
$self->{priv} = 0 if $line =~ /^(ax|te)/; # set the connection priv to 0 - can be upgraded later
+ ($self->{width}) = $line =~ /width=(\d+)/;
+ $self->{width} = 80 unless $self->{width} && $self->{width} > 80;
$self->{consort} = $line; # save the connection type
# set some necessary flags on the user if they are connecting
$self->tell_login('loginu');
+ # do we need to send a forward/opernam?
+ my $lastoper = $user->lastoper || 0;
+ my $homenode = $user->homenode || "";
+ if ($homenode eq $main::mycall && $lastoper + $DXUser::lastoperinterval < $main::systime) {
+ run_cmd($DXProt::me, "forward/opernam $call");
+ $user->lastoper($main::systime);
+ }
}
#
{
my $self = shift;
my $call = $self->call;
+
+ return if $self->{disconnecting}++;
+
delete $self->{senddbg};
- my @rout = $main::routeroot->del_user($call);
- dbg("B/C PC17 on $main::mycall for: $call") if isdbg('route');
+ my $uref = Route::User::get($call);
+ my @rout;
+ if ($uref) {
+ @rout = $main::routeroot->del_user($uref);
+ dbg("B/C PC17 on $main::mycall for: $call") if isdbg('route');
+ } else {
+ confess "trying to disconnect a non existant user $call";
+ }
# issue a pc17 to everybody interested
DXProt::route_pc17($DXProt::me, $main::routeroot, @rout) if @rout;
{
my ($self, $from, $to, $via, $line) = @_;
$line =~ s/\\5E/\^/g;
- $self->send_later('T', "$to de $from: $line") if $self->{talk};
+ $self->local_send('T', "$to de $from: $line") if $self->{talk};
Log('talk', $to, $from, $main::mycall, $line);
# send a 'not here' message if required
unless ($self->{here} && $from ne $to) {