Nick => $main::sessions{$session}{'nickname'},
Ircname => $name,
Server => $server,
- Port => $port
+ Port => $port,
+ Raw => 1
);
if (!$irc) {
print_msg("Could not spawn POE session: $!", ERROR);
irc_ping => \&on_ping,
autoping => \&do_autoping,
irc_error => \&on_error,
+ irc_raw => \&on_irc_raw,
+ irc_raw_out => \&on_irc_raw_out,
},
heap => { irc => $irc },
);
}
+# on_irc_raw()
+#
+# set session activity (incoming traffic)
+#
+sub on_irc_raw {
+ my ($sender, $kernel, $heap, $raw) = @_[SENDER, KERNEL, HEAP, ARG0];
+
+ my $irc = $sender->get_heap();
+ my $session = find_irc_session($irc);
+
+ set_session_activity($session);
+}
+
+
+# on_irc_raw_out()
+#
+# set session activity (outgoing traffic)
+#
+sub on_irc_raw_out {
+ my ($sender, $kernel, $heap, $raw) = @_[SENDER, KERNEL, HEAP, ARG0];
+
+ my $irc = $sender->get_heap();
+ my $session = find_irc_session($irc);
+
+ set_session_activity($session);
+}
+
+
## http://poe.perl.org/?POE_Cookbook/IRC_Bot_Debugging
## http://poe.perl.org/?POE_Cookbook/IRC_Bot_Disconnecting
## http://poe.perl.org/?POE_Cookbook/IRC_Bot_Reconnecting
case('irc_topic') { $print_it = 0; }
case('irc_ctcp_action') { $print_it = 0; }
case('irc_ctcp') { $print_it = 0; }
- case('irc_raw') { $print_it = 0; }
- case('irc_raw_out') { $print_it = 0; }
case('irc_isupport') { $print_it = 0; }
case('irc_nick') { $print_it = 0; }
case('autoping') { $print_it = 0; }