diff options
author | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-10-25 04:12:54 +0000 |
---|---|---|
committer | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-10-25 04:12:54 +0000 |
commit | 6e3aa36876fe85caac9919420ece61d981f046a4 (patch) | |
tree | 1af4ea7e8625fb15ec7026d6b777c30652087e45 /src | |
parent | 7a429517af09a2240f938a5570f83e4c6b9f9f9f (diff) |
Fixed passing invalid channel pointer to OnPartChannel if the last user in a channel parted, now we use NULL and just give it the channel name
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2586 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r-- | src/channels.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/channels.c b/src/channels.c index 6bd4e5350..1013d7e9d 100644 --- a/src/channels.c +++ b/src/channels.c @@ -873,7 +873,7 @@ void do_join(const char *source, int ac, const char **av) channame = sstrdup(c->chan->name); FOREACH_MOD(I_OnPrePartChannel, OnPrePartChannel(user, c->chan)); chan_deluser(user, c->chan); - FOREACH_MOD(I_OnPartChannel, OnPartChannel(user, c->chan, "")); + FOREACH_MOD(I_OnPartChannel, OnPartChannel(user, findchan(channame), channame, "")); delete [] channame; delete c; c = nextc; @@ -1017,10 +1017,11 @@ void do_part(const char *source, int ac, const char **av) return; } FOREACH_MOD(I_OnPrePartChannel, OnPrePartChannel(user, c->chan)); + std::string ChannelName = c->chan->name; chan_deluser(user, c->chan); - FOREACH_MOD(I_OnPartChannel, OnPartChannel(user, c->chan, av[1] ? av[1] : "")); + FOREACH_MOD(I_OnPartChannel, OnPartChannel(user, findchan(ChannelName.c_str()), ChannelName, av[1] ? av[1] : "")); if (c->next) c->next->prev = c->prev; |