}
if (defined $limit and scalar keys %{ $channels{$chan}{''} } > $limit) {
- &FIXME("LIMIT: set too low!!! FIXME");
+ &FIXME("LIMIT: set too low!!!");
### run NAMES again and flush it.
}
my $iconf = scalar( @x );
my $inow = scalar( keys %channels );
if ($iconf > 2 and $inow * 2 <= $iconf) {
- &FIXME("ircCheck: current channels * 2 <= config channels. FIXME.");
- &FIXME("ircCheck: iconf = $iconf");
- &FIXME("ircCheck: inow = $inow");
+ &FIXME("ircCheck: current channels ($inow) * 2 <= config channels ($iconf).");
# @joinchan = @x;
&joinNextChan();
}
- # debug. needed for testing
- open(OUT, ">>irccheck.log");
- my $t = scalar(localtime);
- printf OUT "%s: conn->connected = %s\n", $t, $conn->connected();
- printf OUT "%s: time()-msgtime = %d\n", $t, time() - $msgtime;
- close OUT;
+ # todo: fix on_disconnect()
- if (!$conn->connected or time() - $msgtime > 3600) {
+ if (time() - $msgtime > 3600) {
# todo: shouldn't we use cache{connect} somewhere?
if (exists $cache{connect}) {
&WARN("ircCheck: no msg for 3600 and disco'd! reconnecting!");
my ($shmid, $size) = ($2,$5);
next unless ($shmid != $shm and $size == 2000);
my $z = &shmRead($shmid);
- if ($z =~ /^(\d+): /) {
- my $time = $1;
+ if ($z =~ /^(\S+):(\d+):(\d+): /) {
+ my $n = $1;
+ my $pid = $2;
+ my $time = $3;
next if (time() - $time < 60*60);
-
+ # FIXME remove not-pid shm if parent process dead
+ next if ($pid == $bot_pid);
+ # don't touch other bots, if they're running.
+ next unless ($param{ircNick} =~ /^\Q$n\E$/);
} else {
-# &DEBUG("shm: $shmid is not ours or old blootbot => ($z)");
-# next;
+ &DEBUG("shm: $shmid is not ours or old blootbot => ($z)");
+ next;
}
&status("SHM: nuking shmid $shmid");