&leakCheck(2); # mandatory
&ignoreCheck(1); # mandatory
&seenFlushOld(2);
- &ircCheck(2); # mandatory
+# &ircCheck(2); # mandatory
+ &ircCheck(1); # mandatory
&miscCheck(1); # mandatory
&miscCheck2(2); # mandatory
&shmFlush(1); # mandatory
my $time = time();
foreach (keys %seen) {
- my $delta_time = $time - &dbGet("seen", "time", "nick='$_'");
+ my $delta_time = $time - &dbGet("seen", "time", "nick", $_);
next unless ($delta_time > $max_time);
&DEBUG("seenFlushOld: ".&Time2String($delta_time) );
$i++;
}
- &status("NEWS (newsflush) {$chan}: deleted [$i/$total] news entries.");
+ &status("NEWS (newsflush) {$chan}: deleted [$i/$total] news entries.") if ($i);
$none{$chan} = 1 if ($total == $i);
}
return if ($_[0] eq "2");
}
+ my $str = join(' ', &ChanConfList("chanlimitcheck") );
+ &DEBUG("chanlimitCheck: str => $str");
+
foreach $chan ( &ChanConfList("chanlimitcheck") ) {
next unless (&validChan($chan));
+ if ($chan eq "_default") {
+ &WARN("chanlimit: we're doing $chan!! HELP ME!");
+ next;
+ }
+
my $limitplus = &getChanConfDefault("chanlimitcheckPlus", 5, $chan);
my $newlimit = scalar(keys %{ $channels{$chan}{''} }) + $limitplus;
my $limit = $channels{$chan}{'l'};
if (scalar keys %netsplitservers) {
if (defined $limit) {
- &DEBUG("chanlimit: removing it for $chan.");
+ &status("chanlimit: netsplit; removing it for $chan.");
&rawout("MODE $chan -l");
$cache{chanlimitChange}{$chan} = time();
}
### run NAMES again and flush it.
}
- next unless (!defined $limit);
if (defined $limit and $limit == $newlimit) {
$cache{chanlimitChange}{$chan} = time();
next;
delete $cache{warn}{chanlimit}{$chan};
if (!defined $limit) {
- &status("ChanLimit: setting for first time or from netsplit, for $chan");
+ &status("chanLimit: setting for first time or from netsplit, for $chan");
}
if (exists $cache{chanlimitChange}{$chan}) {
my $delta = time() - $cache{chanlimitChange}{$chan};
if ($delta < $interval*60) {
- &DEBUG("not going to change chanlimit! ($delta<$interval*60)");
+ &DEBUG("chanLimit: not going to change chanlimit! ($delta<$interval*60)");
return;
}
}
my ($s1,$s2);
if (@_) {
- &ScheduleThis(30, "netsplitCheck");
+ &ScheduleThis(15, "netsplitCheck");
return if ($_[0] eq "2");
}
&DEBUG("running netsplitCheck... $cache{netsplitCache}");
if (!scalar %netsplit and scalar %netsplitservers) {
- &DEBUG("nsc: FIRST!!! ok hash netsplit is NULL; purging hash netsplitservers");
+ &DEBUG("nsC: !hash netsplit but hash netsplitservers <- removing!");
undef %netsplitservers;
+ return;
}
+ # well... this shouldn't happen since %netsplit code does it anyway.
foreach $s1 (keys %netsplitservers) {
foreach $s2 (keys %{ $netsplitservers{$s1} }) {
my $delta = time() - $netsplitservers{$s1}{$s2};
- if ($delta > 3600) {
+ if ($delta > 60*30) {
&status("netsplit between $s1 and $s2 appears to be stale.");
delete $netsplitservers{$s1}{$s2};
&chanlimitCheck();
# %netsplit hash checker.
my $count = scalar keys %netsplit;
- my(@delete);
+ my $delete = 0;
foreach (keys %netsplit) {
- if (&IsNickInAnyChan($_)) {
- &DEBUG("netsplitC: $_ is in some chan; removing from netsplit list.");
+ if (&IsNickInAnyChan($_)) { # why would this happen?
+# &DEBUG("nsC: $_ is in some chan; removing from netsplit list.");
delete $netsplit{$_};
+ $delete++;
next;
}
- # todo: change time value?
- next unless (time() - $netsplit{$_} > 60*30);
- push(@delete, $_);
+ next unless (time() - $netsplit{$_} > 60*15);
+
+ $delete++;
delete $netsplit{$_};
}
- if (@delete) {
- my $str = scalar(@delete)."/".scalar(keys %netsplit);
- &DEBUG("removed from netsplit list ($str): @delete");
+ # yet another hack.
+ foreach (keys %channels) {
+ my $i = $cache{maxpeeps}{$chan} || 0;
+ my $j = scalar(keys %{ $channels{$chan} });
+ next unless ($i > 10 and 0.25*$i > $j);
+
+ &DEBUG("netsplit: 0.25*max($i) > current($j); possible netsplit?");
+ }
+
+ if ($delete) {
+ my $j = scalar(keys %netsplit);
+ &DEBUG("nsC: removed from netsplit list: (before: $count; after: $j)");
}
- &DEBUG("nsC: netsplitservers: ".scalar(keys %netsplitservers) );
- &DEBUG("nsC: netsplit: ".scalar(keys %netsplit) );
if (!scalar %netsplit and scalar %netsplitservers) {
- &DEBUG("nsc: ok hash netsplit is NULL; purging hash netsplitservers");
+ &DEBUG("nsC: ok hash netsplit is NULL; purging hash netsplitservers");
undef %netsplitservers;
}
### old code.
###
- my $exists = &dbGet("seen", "nick", "nick='$nick'");
+ my $exists = &dbGet("seen", "nick", "nick=".&dbQuote($nick) );
if (defined $exists and $exists) {
&dbUpdate("seen", "nick", $nick, (
sub ircCheck {
if (@_) {
- &ScheduleThis(60, "ircCheck");
+ &ScheduleThis(15, "ircCheck");
return if ($_[0] eq "2"); # defer.
}
my $fix = $_;
$fix =~ s/ #DEL#$//g;
my $agestr = &Time2String($time - $age);
- &DEBUG("safedel: Removing '$_' for good. [$agestr old]");
+ &status("safedel: Removing '$_' for good. [$agestr old]");
&delFactoid($_);
}
my $backup = 0;
if (! -f $file) {
- &WARN("mkB: file '$file' does not exist.");
+ &VERB("mkB: file '$file' does not exist.",2);
return;
}
+ my $age = "New";
if ( -e "$file~" ) {
- $backup++ if ((stat $file)[9] - (stat "$file~")[9] > $time);
+ $backup++ if ((stat $file)[9] - (stat "$file~")[9] > $time);
+ my $delta = time() - (stat "$file~")[9];
+ $age = &Time2String($delta);
} else {
$backup++;
}
- return unless ($backup);
- # should delta be time(file) - time(file~)?
- my $delta = time() - (stat "$file~")[9];
- my $age = &Time2String($delta);
+ return unless ($backup);
### TODO: do internal copying.
&status("Backup: $file ($age)");