Ircname => $param{'ircName'},
);
$args{'LocalAddr'} = $param{'ircHost'} if ($param{'ircHost'});
+ $args{'Password'} = $param{'ircPasswd'} if ($param{'ircPasswd'});
$conn = $irc->newconn(%args);
if (!defined $conn) {
- &ERROR("irc: conn was not created!defined!!!");
+ &ERROR("internal: perl IRC connection object does not exist.");
return 1;
}
$conn->add_global_handler(473, \&on_inviteonly);
$conn->add_global_handler(474, \&on_banned);
$conn->add_global_handler(475, \&on_badchankey);
+ $conn->add_global_handler(443, \&on_useronchan);
# end of handler stuff.
&status("joining $b_blue$chan$ob");
if (!$conn->join($chan)) {
&DEBUG("joinchan: join failed. trying connect!");
+ &clearIRCVars();
$conn->connect();
}
}
my $rate = sprintf("%.1f", $delta / @c);
delete $cache{joinTime};
- &DEBUG("time taken to join all chans: $timestr; rate: $rate sec/join");
+ &status("time taken to join all chans: $timestr; rate: $rate sec/join");
}
# chanserv check: global channels, in case we missed one.
# Usage: &validChan($chan);
sub validChan {
+ # todo: use $c instead?
my ($chan) = @_;
+ if (!defined $chan or $chan =~ /^\s*$/) {
+ return 0;
+ }
+
if (lc $chan ne $chan) {
&WARN("validChan: lc chan != chan. ($chan); fixing.");
$chan =~ tr/A-Z/a-z/;
}
- if (exists $channels{$chan}) {
+ # it's possible that this check creates the hash if empty.
+ if (defined $channels{$chan} or exists $channels{$chan}) {
+ if ($chan eq "_default") {
+# &WARN("validC: chan cannot be _default! returning 0!");
+ return 0;
+ }
+
return 1;
} else {
return 0;
}
sub clearIRCVars {
-# &DEBUG("clearIRCVars() called!");
+ &DEBUG("clearIRCVars() called!");
undef %channels;
undef %floodjoin;