chan->v.remove(client);
chan->member_count--;
if (!chan->member_count && !(chan->dmode & DMODE_PERSIST))
- channel_kill(chan);
-}
-void channel_kill(Channel *chan)
-{
- delete chan;
+ delete chan;
}
Channel::~Channel() {
channel_map.remove(this);
// Copyright (c) 2022 Sam Smith
-// Copyright (c) 2022-2025 Egor
+// Copyright (c) 2022-2026 Egor
// SPDX-License-Identifier: GPL-2.0-or-later
#ifndef IRC_H_
#define IRC_H_
void channel_sendnames(Client *client, Channel *chan);
void channel_join(Client *client, const char *channel, const char *chankey);
void channel_part(Client *client, Channel *chan, const char *reason, Client *kicker);
-void channel_kill(Channel *chan);
void channel_mode(Client *client, Channel *chan, char *args[]);
void channel_topic(Client *src, Channel *chan, const char *topic, const char *who, time_t when);
extern std::vector<char> databuf;
// Copyright (c) 2022 Sam Smith
-// Copyright (c) 2022-2025 Egor
+// Copyright (c) 2022-2026 Egor
// SPDX-License-Identifier: GPL-2.0-or-later
#ifndef IRCDATA_H_
#define IRCDATA_H_
};
extern clientmap client_map;
extern channelmap channel_map;
-extern stringset autojoin;
extern Client *clients;
extern Client *dyingclients;
#endif
-// Copyright (c) 2022-2025 Egor
+// Copyright (c) 2022-2026 Egor
// SPDX-License-Identifier: GPL-2.0-or-later
#include "common.hpp"
#include "ircfmt.hpp"
#endif
/* free any persistent channels */
for (auto chan : channel_map.pop_view())
- channel_kill(chan);
+ delete chan;
client_map.clear();
channel_map.clear();
if (fchanlog)
// Copyright (c) 2022 Sam Smith
-// Copyright (c) 2022-2025 Egor
+// Copyright (c) 2022-2026 Egor
// SPDX-License-Identifier: GPL-2.0-or-later
#include "common.hpp"
#include "util.hpp"
// Copyright (c) 2022 Sam Smith
-// Copyright (c) 2022-2025 Egor
+// Copyright (c) 2022-2026 Egor
// SPDX-License-Identifier: GPL-2.0-or-later
#ifndef UTIL_H_
#define UTIL_H_