use DXDb;
use AnnTalk;
use WCY;
+use DXDupe;
+use BadWords;
use Data::Dumper;
use Fcntl ':flock';
@inqueue = (); # the main input queue, an array of hashes
$systime = 0; # the time now (in seconds)
-$version = "1.44"; # the version no of the software
+$version = "1.45"; # the version no of the software
$starttime = 0; # the starting time of the cluster
$lockfn = "cluster.lock"; # lock file name
@outstanding_connects = (); # list of outstanding connects
Msg->event_loop(1, 0.05);
Msg->event_loop(1, 0.05);
DXUser::finish();
+ DXDupe::finish();
# close all databases
DXDb::closeall;
my ($sort, $call, $line) = DXChannel::decode_input($dxchan, $data);
return unless defined $sort;
- # translate any crappy characters into hex characters
- if ($line =~ /[\x00-\x06\x08\x0a-\x1f\x7f-\xff]/o) {
- $line =~ s/([\x00-\x1f\x7f-\xff])/uc sprintf("%%%02x",ord($1))/eg;
- }
-
# do the really sexy console interface bit! (Who is going to do the TK interface then?)
dbg('chan', "<- $sort $call $line\n") unless $sort eq 'D';
dbg('err', "starting listener ...");
Msg->new_server("$clusteraddr", $clusterport, \&login);
+# load bad words
+dbg('err', "load badwords: " . (BadWords::load or "Ok"));
+
# prime some signals
$SIG{INT} = \&cease;
$SIG{TERM} = \&cease;
# catch the rest with a hopeful message
for (keys %SIG) {
if (!$SIG{$_}) {
- dbg('chan', "Catching SIG $_");
+# dbg('chan', "Catching SIG $_");
$SIG{$_} = sub { my $sig = shift; DXDebug::confess("Caught signal $sig"); };
}
}
+# start dupe system
+DXDupe::init();
+
# read in system messages
DXM->init();
# put in a DXCluster node for us here so we can add users and take them away
-DXNode->new(0, $mycall, 0, 1, $DXProt::myprot_version);
+DXNode->new($DXProt::me, $mycall, 0, 1, $DXProt::myprot_version);
# read in any existing message headers and clean out old crap
dbg('err', "reading existing message headers ...");
DXMsg::process();
DXDb::process();
DXUser::process();
+ DXDupe::process();
+
eval {
Local::process(); # do any localised processing
};