Added hook on_disconnect.
This commit is contained in:
1 parent
12356984fc
commit
62551dc6c9
3 files changed
+19
No files matched your search
@@ -471,6 +471,7 @@ while (1) {
|
||||
err(2, "Lost connection to $sockid!", 0);
|
||||
$SELECT->remove($sock);
|
||||
delete $SOCKET{$sockid};
|
||||
API::Std::event_run('on_disconnect', $sockid);
|
||||
if (!keys %SOCKET) {
|
||||
# No more connections, stop the program.
|
||||
API::Std::event_run('on_shutdown');
|
||||
|
||||
@@ -3,6 +3,8 @@ Auto IRC Bot 3.0: Change Log
|
||||
|
||||
3.0 Indev
|
||||
===============================================================================
|
||||
* All data related to a network is now deleted on disconnect.
|
||||
* Added hook on_disconnect.
|
||||
* Added various options to bin/auto, including support for multiple config
|
||||
files. See bin/auto -h for details.
|
||||
* Changed on_nick, on_quit, on_part, and on_kick source hashrefs to include
|
||||
|
||||
@@ -188,6 +188,22 @@ sub clear_usercmd_timer
|
||||
return 1;
|
||||
}
|
||||
|
||||
# Server data deletion on disconnect.
|
||||
hook_add('on_disconnect', 'core.irc.deldata', sub {
|
||||
my ($svr) = @_;
|
||||
|
||||
# Delete all data related to the server.
|
||||
if (defined $Proto::IRC::got_001{$svr}) { delete $Proto::IRC::got_001{$svr} }
|
||||
if (defined $Proto::IRC::botinfo{$svr}) { delete $Proto::IRC::botinfo{$svr} }
|
||||
if (defined $Proto::IRC::botchans{$svr}) { delete $Proto::IRC::botchans{$svr} }
|
||||
if (defined $Proto::IRC::chanusers{$svr}) { delete $Proto::IRC::chanusers{$svr} }
|
||||
if (defined $Proto::IRC::csprefix{$svr}) { delete $Proto::IRC::csprefix{$svr} }
|
||||
if (defined $Proto::IRC::chanmodes{$svr}) { delete $Proto::IRC::chanmodes{$svr} }
|
||||
if (defined $Proto::IRC::cap{$svr}) { delete $Proto::IRC::cap{$svr} }
|
||||
|
||||
return 1;
|
||||
});
|
||||
|
||||
|
||||
1;
|
||||
# vim: set ai et sw=4 ts=4:
|
||||
Reference in new issue
Block a user