X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fcluster.pl;h=d7dd9a0c4fb2469fdd95241c70749e3429491fe5;hb=84f339800c18bbc7c156d72c790d76a84cd657b8;hp=37ace021654a4858cab156ab4196e66c083e61e5;hpb=b9dffeff7239952814342dad19db3a51def6fab7;p=spider.git diff --git a/perl/cluster.pl b/perl/cluster.pl index 37ace021..d7dd9a0c 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -114,10 +114,11 @@ use Local; package main; use strict; -use vars qw(@inqueue $systime $version $starttime $lockfn @outstanding_connects +use vars qw(@inqueue $systime $starttime $lockfn @outstanding_connects $zombies $root @listeners $lang $myalias @debug $userfn $clusteraddr $clusterport $mycall $decease $is_win $routeroot $me $reqreg $bumpexisting - $allowdxby $dbh $dsn $dbuser $dbpass $do_xml + $allowdxby $dbh $dsn $dbuser $dbpass $do_xml $systime_days $systime_daystart + $can_encode ); @inqueue = (); # the main input queue, an array of hashes @@ -323,6 +324,8 @@ sub AGWrestart ############################################################# $starttime = $systime = time; +$systime_days = int ($systime / 86400); +$systime_daystart = $systime_days * 86400; $lang = 'en' unless $lang; unless ($DB::VERSION) { @@ -342,6 +345,19 @@ if (DXSql::init($dsn)) { $dbh = $dbh->connect($dsn, $dbuser, $dbpass) if $dbh; } +# try to load Encode +{ + no warnings; + my $w = $SIG{__DIE__}; + $SIG{__DIE__} = 'IGNORE'; + eval { require Encode; }; + unless ($@) { + import Encode; + $can_encode = 1; + } + $SIG{__DIE__} = $w; +} + # try to load XML::Simple DXXml::init(); @@ -450,6 +466,8 @@ DXProt->init(); # put in a DXCluster node for us here so we can add users and take them away $routeroot = Route::Node->new($mycall, $version*100+5300, Route::here($main::me->here)|Route::conf($main::me->conf)); +$routeroot->do_pc9x(1); +$routeroot->via_pc92(1); # make sure that there is a routing OUTPUT node default file #unless (Filter::read_in('route', 'node_default', 0)) { @@ -498,7 +516,13 @@ for (;;) { # do timed stuff, ongoing processing happens one a second if ($timenow != $systime) { reap() if $zombies; - IsoTime::update($systime = $timenow); + $systime = $timenow; + my $days = int ($systime / 86400); + if ($systime_days != $days) { + $systime_days = $days; + $systime_daystart = $days * 86400; + } + IsoTime::update($systime); DXCron::process(); # do cron jobs DXCommandmode::process(); # process ongoing command mode stuff DXXml::process();