X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fcluster.pl;h=78f2f594b02706bcf7e44b1ffeaa4fbb9ad0c672;hb=ea783c61e83adb1b7f4ca0314b3ddf4171896bf1;hp=4205241aa591538a97e0e62442f0e7867c6e6ee1;hpb=b77ffff21f9f6b8096de8abf032a904dfabba1f5;p=spider.git diff --git a/perl/cluster.pl b/perl/cluster.pl index 4205241a..78f2f594 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -89,6 +89,10 @@ use SysVar; use strict; +# order here is important - DXDebug snarfs Carp et al so that Mojo errors go into the debug log +use DXDebug; + +use Mojolicious 7.26; use Mojo::IOLoop; use Msg; @@ -98,7 +102,6 @@ use Listeners; use ExtMsg; use AGWConnect; use AGWMsg; -use DXDebug; use DXLog; use DXLogPrint; use DXUtil; @@ -144,6 +147,8 @@ use DXSql; use IsoTime; use BPQMsg; + + use Data::Dumper; use IO::File; use Fcntl ':flock'; @@ -210,17 +215,15 @@ sub new_channel $user->wantbeep(0); $user->name('web'); $user->qth('on the web'); - $user->homenode($main::call); + $user->homenode($main::mycall); $user->lat($main::mylatitude); $user->long($main::mylongitude); $user->qra($main::mylocator); - $user->put; } + $conn->conns($call); $dxchan = Web->new($call, $conn, $user); - $dxchan->sort('W'); $dxchan->enhanced(1); $dxchan->ve7cc(1); - $conn->conns($call); $msg =~ s/^A#WEB|/A$call|/; $conn->send_now("C$call"); } else { @@ -241,7 +244,7 @@ sub new_channel return; } if ($bumpexisting) { - my $ip = $conn->peerhost || 'unknown'; + my $ip = $dxchan->hostname; $dxchan->send_now('D', DXM::msg($lang, 'conbump', $call, $ip)); LogDbg('DXCommand', "$call bumped off by $ip, disconnected"); $dxchan->disconnect; @@ -274,7 +277,7 @@ sub new_channel my $lock = $user->lockout if $user; if ($baseuser && $baseuser->lockout || $lock) { if (!$user || !defined $lock || $lock) { - my $host = $conn->peerhost || "unknown"; + my $host = $conn->peerhost; LogDbg('DXCommand', "$call on $host is locked out, disconnected"); $conn->disconnect; return; @@ -292,8 +295,6 @@ sub new_channel $dxchan = DXProt->new($call, $conn, $user); } elsif ($user->is_user) { $dxchan = DXCommandmode->new($call, $conn, $user); - # } elsif ($user->is_bbs) { # there is no support so - # $dxchan = BBS->new($call, $conn, $user); # don't allow it!!! } else { die "Invalid sort of user on $call = $sort"; } @@ -307,6 +308,10 @@ sub new_channel $conn->set_error(sub {my $err = shift; LogDbg('DXCommand', "Comms error '$err' received for call $dxchan->{call}"); $dxchan->disconnect(1);}); $conn->set_on_eof(sub {$dxchan->disconnect}); $conn->set_rproc(sub {my ($conn,$msg) = @_; $dxchan->rec($msg);}); + if ($sort eq 'W') { + $dxchan->enhanced(1); + $dxchan->sort('W'); + } $dxchan->rec($msg); } @@ -632,6 +637,8 @@ our $io_disconnected; sub idle_loop { BPQMsg::process(); +# DXCommandmode::process(); # process ongoing command mode stuff +# DXProt::process(); # process ongoing ak1a pcxx stuff if (defined &Local::process) { eval { @@ -676,10 +683,10 @@ sub per_sec $systime_daystart = $days * 86400; } IsoTime::update($systime); - DXCron::process(); # do cron jobs DXCommandmode::process(); # process ongoing command mode stuff - DXXml::process(); DXProt::process(); # process ongoing ak1a pcxx stuff + DXCron::process(); # do cron jobs + DXXml::process(); DXConnect::process(); DXMsg::process(); DXDb::process(); @@ -687,7 +694,6 @@ sub per_sec DXDupe::process(); DXCron::process(); # do cron jobs IsoTime::update($systime); - DXProt::process(); # process ongoing ak1a pcxx stuff DXConnect::process(); DXUser::process(); AGWMsg::process();