From 57caa0b53f53927c72811ffffda8bb527975860f Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 27 Jun 2010 02:41:48 -0400 Subject: Made Anope track its own clients internally as if they were real users --- src/protocol/bahamut.cpp | 4 ++-- src/protocol/inspircd11.cpp | 4 ++-- src/protocol/inspircd12.cpp | 40 ++++++++++++++++++++-------------------- src/protocol/inspircd20.cpp | 38 +++++++++++++++++++------------------- src/protocol/ratbox.cpp | 40 ++++++++++++++++++++-------------------- src/protocol/unreal32.cpp | 4 ++-- 6 files changed, 65 insertions(+), 65 deletions(-) (limited to 'src/protocol') diff --git a/src/protocol/bahamut.cpp b/src/protocol/bahamut.cpp index d9f575846..dc2790ac5 100644 --- a/src/protocol/bahamut.cpp +++ b/src/protocol/bahamut.cpp @@ -337,8 +337,8 @@ int anope_event_sjoin(const char *source, int ac, const char **av) /* Rejoin the bot to fix the TS */ if (c->ci->bi) { - ircdproto->SendPart(c->ci->bi, c, "TS reop"); - bot_join(c->ci); + c->ci->bi->Part(c, "TS reop"); + c->ci->bi->Join(c); } /* Reset mlock */ check_modes(c); diff --git a/src/protocol/inspircd11.cpp b/src/protocol/inspircd11.cpp index a06e0f22c..0512b02ff 100644 --- a/src/protocol/inspircd11.cpp +++ b/src/protocol/inspircd11.cpp @@ -451,8 +451,8 @@ int anope_event_fjoin(const char *source, int ac, const char **av) /* Rejoin the bot to fix the TS */ if (c->ci->bi) { - ircdproto->SendPart(c->ci->bi, c, "TS reop"); - bot_join(c->ci); + c->ci->bi->Part(c, "TS reop"); + c->ci->bi->Join(c); } /* Reset mlock */ check_modes(c); diff --git a/src/protocol/inspircd12.cpp b/src/protocol/inspircd12.cpp index 9b742e64e..1746bdc57 100644 --- a/src/protocol/inspircd12.cpp +++ b/src/protocol/inspircd12.cpp @@ -99,7 +99,7 @@ void inspircd_cmd_chghost(const char *nick, const char *vhost) } BotInfo *bi = OperServ; - send_cmd(bi->uid, "CHGHOST %s %s", nick, vhost); + send_cmd(bi->GetUID(), "CHGHOST %s %s", nick, vhost); } int anope_event_idle(const char *source, int ac, const char **av) @@ -108,7 +108,7 @@ int anope_event_idle(const char *source, int ac, const char **av) if (!bi) return MOD_CONT; - send_cmd(bi->uid, "IDLE %s %ld %ld", source, static_cast(start_time), static_cast(time(NULL) - bi->lastmsg)); + send_cmd(bi->GetUID(), "IDLE %s %ld %ld", source, static_cast(start_time), static_cast(time(NULL) - bi->lastmsg)); return MOD_CONT; } @@ -126,12 +126,12 @@ class InspIRCdProto : public IRCDProto void SendAkillDel(XLine *x) { BotInfo *bi = OperServ; - send_cmd(bi->uid, "GLINE %s", x->Mask.c_str()); + send_cmd(bi->GetUID(), "GLINE %s", x->Mask.c_str()); } void SendTopic(BotInfo *whosets, Channel *c, const char *whosetit, const char *topic) { - send_cmd(whosets->uid, "FTOPIC %s %lu %s :%s", c->name.c_str(), static_cast(c->topic_time), whosetit, topic); + send_cmd(whosets->GetUID(), "FTOPIC %s %lu %s :%s", c->name.c_str(), static_cast(c->topic_time), whosetit, topic); } void SendVhostDel(User *u) @@ -154,12 +154,12 @@ class InspIRCdProto : public IRCDProto if (timeleft > 172800 || !x->Expires) timeleft = 172800; BotInfo *bi = OperServ; - send_cmd(bi->uid, "ADDLINE G %s@%s %s %ld %ld :%s", x->GetUser().c_str(), x->GetHost().c_str(), x->By.c_str(), static_cast(time(NULL)), static_cast(timeleft), x->Reason.c_str()); + send_cmd(bi->GetUID(), "ADDLINE G %s@%s %s %ld %ld :%s", x->GetUser().c_str(), x->GetHost().c_str(), x->By.c_str(), static_cast(time(NULL)), static_cast(timeleft), x->Reason.c_str()); } void SendSVSKillInternal(BotInfo *source, User *user, const char *buf) { - send_cmd(source ? source->uid : TS6SID, "KILL %s :%s", user->GetUID().c_str(), buf); + send_cmd(source ? source->GetUID() : TS6SID, "KILL %s :%s", user->GetUID().c_str(), buf); } void SendSVSMode(User *u, int ac, const char **av) @@ -179,13 +179,13 @@ class InspIRCdProto : public IRCDProto void SendModeInternal(BotInfo *source, Channel *dest, const char *buf) { - send_cmd(source ? source->uid : TS6SID, "FMODE %s %u %s", dest->name.c_str(), static_cast(dest->creation_time), buf); + send_cmd(source ? source->GetUID() : TS6SID, "FMODE %s %u %s", dest->name.c_str(), static_cast(dest->creation_time), buf); } void SendModeInternal(BotInfo *bi, User *u, const char *buf) { if (!buf) return; - send_cmd(bi ? bi->uid : TS6SID, "MODE %s %s", u->GetUID().c_str(), buf); + send_cmd(bi ? bi->GetUID() : TS6SID, "MODE %s %s", u->GetUID().c_str(), buf); } void SendClientIntroduction(const std::string &nick, const std::string &user, const std::string &host, const std::string &real, const char *modes, const std::string &uid) @@ -196,9 +196,9 @@ class InspIRCdProto : public IRCDProto void SendKickInternal(BotInfo *source, Channel *chan, User *user, const char *buf) { if (buf) - send_cmd(source->uid, "KICK %s %s :%s", chan->name.c_str(), user->GetUID().c_str(), buf); + send_cmd(source->GetUID(), "KICK %s %s :%s", chan->name.c_str(), user->GetUID().c_str(), buf); else - send_cmd(source->uid, "KICK %s %s :%s", chan->name.c_str(), user->GetUID().c_str(), user->nick.c_str()); + send_cmd(source->GetUID(), "KICK %s %s :%s", chan->name.c_str(), user->GetUID().c_str(), user->nick.c_str()); } void SendNoticeChanopsInternal(BotInfo *source, Channel *dest, const char *buf) @@ -215,7 +215,7 @@ class InspIRCdProto : public IRCDProto /* JOIN */ void SendJoin(BotInfo *user, const char *channel, time_t chantime) { - send_cmd(TS6SID, "FJOIN %s %ld + :,%s", channel, static_cast(chantime), user->uid.c_str()); + send_cmd(TS6SID, "FJOIN %s %ld + :,%s", channel, static_cast(chantime), user->GetUID().c_str()); } /* UNSQLINE */ @@ -265,7 +265,7 @@ class InspIRCdProto : public IRCDProto else { BotInfo *bi = OperServ; - send_cmd(bi->uid, "CHGIDENT %s %s", nick, vIdent); + send_cmd(bi->GetUID(), "CHGIDENT %s %s", nick, vIdent); } } @@ -273,14 +273,14 @@ class InspIRCdProto : public IRCDProto void SendSVSHold(const char *nick) { BotInfo *bi = OperServ; - send_cmd(bi->uid, "SVSHOLD %s %u :%s", nick, static_cast(Config.NSReleaseTimeout), "Being held for registered user"); + send_cmd(bi->GetUID(), "SVSHOLD %s %u :%s", nick, static_cast(Config.NSReleaseTimeout), "Being held for registered user"); } /* SVSHOLD - release */ void SendSVSHoldDel(const char *nick) { BotInfo *bi = OperServ; - send_cmd(bi->uid, "SVSHOLD %s", nick); + send_cmd(bi->GetUID(), "SVSHOLD %s", nick); } /* UNSZLINE */ @@ -305,14 +305,14 @@ class InspIRCdProto : public IRCDProto { User *u = finduser(nick); BotInfo *bi = findbot(source); - send_cmd(bi->uid, "SVSJOIN %s %s", u->GetUID().c_str(), chan); + send_cmd(bi->GetUID(), "SVSJOIN %s %s", u->GetUID().c_str(), chan); } void SendSVSPart(const char *source, const char *nick, const char *chan) { User *u = finduser(nick); BotInfo *bi = findbot(source); - send_cmd(bi->uid, "SVSPART %s %s", u->GetUID().c_str(), chan); + send_cmd(bi->GetUID(), "SVSPART %s %s", u->GetUID().c_str(), chan); } void SendSWhois(const char *source, const char *who, const char *mask) @@ -330,9 +330,9 @@ class InspIRCdProto : public IRCDProto void SendGlobopsInternal(BotInfo *source, const char *buf) { if (has_globopsmod) - send_cmd(source ? source->uid : TS6SID, "SNONOTICE g :%s", buf); + send_cmd(source ? source->GetUID() : TS6SID, "SNONOTICE g :%s", buf); else - send_cmd(source ? source->uid : TS6SID, "SNONOTICE A :%s", buf); + send_cmd(source ? source->GetUID() : TS6SID, "SNONOTICE A :%s", buf); } void SendAccountLogin(User *u, NickCore *account) @@ -505,8 +505,8 @@ int anope_event_fjoin(const char *source, int ac, const char **av) /* Rejoin the bot to fix the TS */ if (c->ci->bi) { - ircdproto->SendPart(c->ci->bi, c, "TS reop"); - bot_join(c->ci); + c->ci->bi->Part(c, "TS reop"); + c->ci->bi->Join(c); } /* Reset mlock */ check_modes(c); diff --git a/src/protocol/inspircd20.cpp b/src/protocol/inspircd20.cpp index 885607a5f..262eab645 100644 --- a/src/protocol/inspircd20.cpp +++ b/src/protocol/inspircd20.cpp @@ -93,7 +93,7 @@ void inspircd_cmd_chghost(const char *nick, const char *vhost) } BotInfo *bi = OperServ; - send_cmd(bi->uid, "CHGHOST %s %s", nick, vhost); + send_cmd(bi->GetUID(), "CHGHOST %s %s", nick, vhost); } int anope_event_idle(const char *source, int ac, const char **av) @@ -102,7 +102,7 @@ int anope_event_idle(const char *source, int ac, const char **av) if (!bi) return MOD_CONT; - send_cmd(bi->uid, "IDLE %s %ld %ld", source, static_cast(start_time), static_cast(time(NULL) - bi->lastmsg)); + send_cmd(bi->GetUID(), "IDLE %s %ld %ld", source, static_cast(start_time), static_cast(time(NULL) - bi->lastmsg)); return MOD_CONT; } @@ -120,12 +120,12 @@ class InspIRCdProto : public IRCDProto void SendAkillDel(XLine *x) { BotInfo *bi = OperServ; - send_cmd(bi->uid, "GLINE %s", x->Mask.c_str()); + send_cmd(bi->GetUID(), "GLINE %s", x->Mask.c_str()); } void SendTopic(BotInfo *whosets, Channel *c, const char *whosetit, const char *topic) { - send_cmd(whosets->uid, "FTOPIC %s %lu %s :%s", c->name.c_str(), static_cast(c->topic_time), whosetit, topic); + send_cmd(whosets->GetUID(), "FTOPIC %s %lu %s :%s", c->name.c_str(), static_cast(c->topic_time), whosetit, topic); } void SendVhostDel(User *u) @@ -148,12 +148,12 @@ class InspIRCdProto : public IRCDProto if (timeleft > 172800 || !x->Expires) timeleft = 172800; BotInfo *bi = OperServ; - send_cmd(bi->uid, "ADDLINE G %s@%s %s %ld %ld :%s", x->GetUser().c_str(), x->GetHost().c_str(), x->By.c_str(), static_cast(time(NULL)), static_cast(timeleft), x->Reason.c_str()); + send_cmd(bi->GetUID(), "ADDLINE G %s@%s %s %ld %ld :%s", x->GetUser().c_str(), x->GetHost().c_str(), x->By.c_str(), static_cast(time(NULL)), static_cast(timeleft), x->Reason.c_str()); } void SendSVSKillInternal(BotInfo *source, User *user, const char *buf) { - send_cmd(source ? source->uid : TS6SID, "KILL %s :%s", user->GetUID().c_str(), buf); + send_cmd(source ? source->GetUID() : TS6SID, "KILL %s :%s", user->GetUID().c_str(), buf); } void SendSVSMode(User *u, int ac, const char **av) @@ -173,13 +173,13 @@ class InspIRCdProto : public IRCDProto void SendModeInternal(BotInfo *source, Channel *dest, const char *buf) { - send_cmd(source ? source->uid : TS6SID, "FMODE %s %u %s", dest->name.c_str(), static_cast(dest->creation_time), buf); + send_cmd(source ? source->GetUID() : TS6SID, "FMODE %s %u %s", dest->name.c_str(), static_cast(dest->creation_time), buf); } void SendModeInternal(BotInfo *bi, User *u, const char *buf) { if (!buf) return; - send_cmd(bi ? bi->uid : TS6SID, "MODE %s %s", u->GetUID().c_str(), buf); + send_cmd(bi ? bi->GetUID() : TS6SID, "MODE %s %s", u->GetUID().c_str(), buf); } void SendClientIntroduction(const std::string &nick, const std::string &user, const std::string &host, const std::string &real, const char *modes, const std::string &uid) @@ -190,9 +190,9 @@ class InspIRCdProto : public IRCDProto void SendKickInternal(BotInfo *source, Channel *chan, User *user, const char *buf) { if (buf) - send_cmd(source->uid, "KICK %s %s :%s", chan->name.c_str(), user->GetUID().c_str(), buf); + send_cmd(source->GetUID(), "KICK %s %s :%s", chan->name.c_str(), user->GetUID().c_str(), buf); else - send_cmd(source->uid, "KICK %s %s :%s", chan->name.c_str(), user->GetUID().c_str(), user->nick.c_str()); + send_cmd(source->GetUID(), "KICK %s %s :%s", chan->name.c_str(), user->GetUID().c_str(), user->nick.c_str()); } void SendNoticeChanopsInternal(BotInfo *source, Channel *dest, const char *buf) @@ -209,7 +209,7 @@ class InspIRCdProto : public IRCDProto /* JOIN */ void SendJoin(BotInfo *user, const char *channel, time_t chantime) { - send_cmd(TS6SID, "FJOIN %s %ld + :,%s", channel, static_cast(chantime), user->uid.c_str()); + send_cmd(TS6SID, "FJOIN %s %ld + :,%s", channel, static_cast(chantime), user->GetUID().c_str()); } /* UNSQLINE */ @@ -262,7 +262,7 @@ class InspIRCdProto : public IRCDProto else { BotInfo *bi = OperServ; - send_cmd(bi->uid, "CHGIDENT %s %s", nick, vIdent); + send_cmd(bi->GetUID(), "CHGIDENT %s %s", nick, vIdent); } } @@ -270,14 +270,14 @@ class InspIRCdProto : public IRCDProto void SendSVSHold(const char *nick) { BotInfo *bi = OperServ; - send_cmd(bi->uid, "SVSHOLD %s %u :%s", nick, static_cast(Config.NSReleaseTimeout), "Being held for registered user"); + send_cmd(bi->GetUID(), "SVSHOLD %s %u :%s", nick, static_cast(Config.NSReleaseTimeout), "Being held for registered user"); } /* SVSHOLD - release */ void SendSVSHoldDel(const char *nick) { BotInfo *bi = OperServ; - send_cmd(bi->uid, "SVSHOLD %s", nick); + send_cmd(bi->GetUID(), "SVSHOLD %s", nick); } /* UNSZLINE */ @@ -302,14 +302,14 @@ class InspIRCdProto : public IRCDProto { User *u = finduser(nick); BotInfo *bi = findbot(source); - send_cmd(bi->uid, "SVSJOIN %s %s", u->GetUID().c_str(), chan); + send_cmd(bi->GetUID(), "SVSJOIN %s %s", u->GetUID().c_str(), chan); } void SendSVSPart(const char *source, const char *nick, const char *chan) { User *u = finduser(nick); BotInfo *bi = findbot(source); - send_cmd(bi->uid, "SVSPART %s %s", u->GetUID().c_str(), chan); + send_cmd(bi->GetUID(), "SVSPART %s %s", u->GetUID().c_str(), chan); } void SendSWhois(const char *source, const char *who, const char *mask) @@ -326,7 +326,7 @@ class InspIRCdProto : public IRCDProto void SendGlobopsInternal(BotInfo *source, const char *buf) { - send_cmd(source ? source->uid : TS6SID, "SNONOTICE g :%s", buf); + send_cmd(source ? source->GetUID() : TS6SID, "SNONOTICE g :%s", buf); } void SendAccountLogin(User *u, NickCore *account) @@ -499,8 +499,8 @@ int anope_event_fjoin(const char *source, int ac, const char **av) /* Rejoin the bot to fix the TS */ if (c->ci->bi) { - ircdproto->SendPart(c->ci->bi, c, "TS reop"); - bot_join(c->ci); + c->ci->bi->Part(c, "TS reop"); + c->ci->bi->Join(c); } /* Reset mlock */ check_modes(c); diff --git a/src/protocol/ratbox.cpp b/src/protocol/ratbox.cpp index 6ffb91164..9285411c8 100644 --- a/src/protocol/ratbox.cpp +++ b/src/protocol/ratbox.cpp @@ -131,7 +131,7 @@ class RatboxProto : public IRCDTS6Proto void SendGlobopsInternal(BotInfo *source, const char *buf) { if (source) - send_cmd(source->uid, "OPERWALL :%s", buf); + send_cmd(source->GetUID(), "OPERWALL :%s", buf); else send_cmd(TS6SID, "OPERWALL :%s", buf); } @@ -144,19 +144,19 @@ class RatboxProto : public IRCDTS6Proto void SendSGLineDel(XLine *x) { BotInfo *bi = OperServ; - send_cmd(bi ? bi->uid : Config.s_OperServ, "UNXLINE * %s", x->Mask.c_str()); + send_cmd(bi ? bi->GetUID() : Config.s_OperServ, "UNXLINE * %s", x->Mask.c_str()); } void SendSGLine(XLine *x) { BotInfo *bi = OperServ; - send_cmd(bi ? bi->uid : Config.s_OperServ, "XLINE * %s 0 :%s", x->Mask.c_str(), x->Reason.c_str()); + send_cmd(bi ? bi->GetUID() : Config.s_OperServ, "XLINE * %s 0 :%s", x->Mask.c_str(), x->Reason.c_str()); } void SendAkillDel(XLine *x) { BotInfo *bi = OperServ; - send_cmd(bi ? bi->uid : Config.s_OperServ, "UNKLINE * %s %s", x->GetUser().c_str(), x->GetHost().c_str()); + send_cmd(bi ? bi->GetUID() : Config.s_OperServ, "UNKLINE * %s %s", x->GetUser().c_str(), x->GetHost().c_str()); } void SendSQLineDel(XLine *x) @@ -166,18 +166,18 @@ class RatboxProto : public IRCDTS6Proto void SendJoin(BotInfo *user, const char *channel, time_t chantime) { - send_cmd(NULL, "SJOIN %ld %s + :%s", static_cast(chantime), channel, user->uid.c_str()); + send_cmd(NULL, "SJOIN %ld %s + :%s", static_cast(chantime), channel, user->GetUID().c_str()); } void SendAkill(XLine *x) { BotInfo *bi = OperServ; - send_cmd(bi ? bi->uid : Config.s_OperServ, "KLINE * %ld %s %s :%s", static_cast(x->Expires - time(NULL)), x->GetUser().c_str(), x->GetHost().c_str(), x->Reason.c_str()); + send_cmd(bi ? bi->GetUID() : Config.s_OperServ, "KLINE * %ld %s %s :%s", static_cast(x->Expires - time(NULL)), x->GetUser().c_str(), x->GetHost().c_str(), x->Reason.c_str()); } void SendSVSKillInternal(BotInfo *source, User *user, const char *buf) { - send_cmd(source ? source->uid : TS6SID, "KILL %s :%s", user->GetUID().c_str(), buf); + send_cmd(source ? source->GetUID() : TS6SID, "KILL %s :%s", user->GetUID().c_str(), buf); } void SendSVSMode(User *u, int ac, const char **av) @@ -210,9 +210,9 @@ class RatboxProto : public IRCDTS6Proto void SendPartInternal(BotInfo *bi, const char *chan, const char *buf) { if (buf) - send_cmd(bi->uid, "PART %s :%s", chan, buf); + send_cmd(bi->GetUID(), "PART %s :%s", chan, buf); else - send_cmd(bi->uid, "PART %s", chan); + send_cmd(bi->GetUID(), "PART %s", chan); } void SendNumericInternal(const char *source, int numeric, const char *dest, const char *buf) @@ -225,7 +225,7 @@ class RatboxProto : public IRCDTS6Proto { if (bi) { - send_cmd(bi->uid, "MODE %s %s", dest->name.c_str(), buf); + send_cmd(bi->GetUID(), "MODE %s %s", dest->name.c_str(), buf); } else send_cmd(TS6SID, "MODE %s %s", dest->name.c_str(), buf); } @@ -233,13 +233,13 @@ class RatboxProto : public IRCDTS6Proto void SendModeInternal(BotInfo *bi, User *u, const char *buf) { if (!buf) return; - send_cmd(bi ? bi->uid : TS6SID, "SVSMODE %s %s", u->nick.c_str(), buf); + send_cmd(bi ? bi->GetUID() : TS6SID, "SVSMODE %s %s", u->nick.c_str(), buf); } void SendKickInternal(BotInfo *bi, Channel *chan, User *user, const char *buf) { - if (buf) send_cmd(bi->uid, "KICK %s %s :%s", chan->name.c_str(), user->GetUID().c_str(), buf); - else send_cmd(bi->uid, "KICK %s %s", chan->name.c_str(), user->GetUID().c_str()); + if (buf) send_cmd(bi->GetUID(), "KICK %s %s :%s", chan->name.c_str(), user->GetUID().c_str(), buf); + else send_cmd(bi->GetUID(), "KICK %s %s", chan->name.c_str(), user->GetUID().c_str()); } void SendNoticeChanopsInternal(BotInfo *source, Channel *dest, const char *buf) @@ -250,15 +250,15 @@ class RatboxProto : public IRCDTS6Proto /* QUIT */ void SendQuitInternal(BotInfo *bi, const char *buf) { - if (buf) send_cmd(bi->uid, "QUIT :%s", buf); - else send_cmd(bi->uid, "QUIT"); + if (buf) send_cmd(bi->GetUID(), "QUIT :%s", buf); + else send_cmd(bi->GetUID(), "QUIT"); } /* INVITE */ void SendInvite(BotInfo *source, const char *chan, const char *nick) { User *u = finduser(nick); - send_cmd(source->uid, "INVITE %s %s", u ? u->GetUID().c_str(): nick, chan); + send_cmd(source->GetUID(), "INVITE %s %s", u ? u->GetUID().c_str(): nick, chan); } void SendAccountLogin(User *u, NickCore *account) @@ -280,7 +280,7 @@ class RatboxProto : public IRCDTS6Proto void SendTopic(BotInfo *bi, Channel *c, const char *whosetit, const char *topic) { - send_cmd(bi->uid, "TOPIC %s :%s", c->name.c_str(), topic); + send_cmd(bi->GetUID(), "TOPIC %s :%s", c->name.c_str(), topic); } void SetAutoIdentificationToken(User *u) @@ -334,8 +334,8 @@ int anope_event_sjoin(const char *source, int ac, const char **av) /* Rejoin the bot to fix the TS */ if (c->ci->bi) { - ircdproto->SendPart(c->ci->bi, c, "TS reop"); - bot_join(c->ci); + c->ci->bi->Part(c, "TS reop"); + c->ci->bi->Join(c); } /* Reset mlock */ check_modes(c); @@ -669,7 +669,7 @@ int anope_event_whois(const char *source, int ac, const char **av) if (source && ac >= 1) { bi = findbot(av[0]); - m_whois(source, bi->uid.c_str()); + m_whois(source, bi->GetUID().c_str()); } return MOD_CONT; } diff --git a/src/protocol/unreal32.cpp b/src/protocol/unreal32.cpp index 2a8cc6b39..dff0421d2 100644 --- a/src/protocol/unreal32.cpp +++ b/src/protocol/unreal32.cpp @@ -1051,8 +1051,8 @@ int anope_event_sjoin(const char *source, int ac, const char **av) /* Rejoin the bot to fix the TS */ if (c->ci->bi) { - ircdproto->SendPart(c->ci->bi, c, "TS reop"); - bot_join(c->ci); + c->ci->bi->Part(c, "TS reop"); + c->ci->bi->Join(c); } /* Reset mlock */ check_modes(c); -- cgit