1
0
mirror of https://github.com/anope/anope.git synced 2026-07-09 02:43:13 +02:00

Check that channels still exist before nulling their ci pointer in channelinfos destructor

Change the persist setting on a channel to mean only that it is being
enforced ircd-side
This commit is contained in:
Adam
2013-03-20 11:03:02 -05:00
parent 731912f01e
commit 6a0e4418f4
4 changed files with 11 additions and 23 deletions
+6 -11
View File
@@ -30,16 +30,12 @@ struct ChanUserContainer : public Extensible
ChanUserContainer(User *u, Channel *c) : user(u), chan(c) { }
};
enum ChannelFlag
{
/* ChanServ is currently holding the channel */
CH_INHABIT,
/* Channel still exists when emptied */
CH_PERSIST,
/* If set the channel is syncing users (channel was just created) and it should not be deleted */
CH_SYNCING
};
/* Possible flags:
*
* INHABIT - ChanServ is currently holding the channel
* PERSIST - Channel still exists when emptied (IRCd enforced)
* SYNCING - Channel is syncing users (channel was just created) and it should not be deleted
*/
class CoreExport Channel : public Base, public Extensible
{
public:
@@ -56,7 +52,6 @@ class CoreExport Channel : public Base, public Extensible
Serialize::Reference<ChannelInfo> ci;
/* When the channel was created */
time_t creation_time;
std::set<ChannelFlag> flags;
/* Users in the channel */
typedef std::list<ChanUserContainer *> ChanUserList;