From e73cb3e8f484d14c991a1122fe1a92761339e2bb Mon Sep 17 00:00:00 2001 From: stskeeps Date: Tue, 1 May 2007 08:27:56 +0000 Subject: [PATCH] - #0003060 reported by Robby22, patched by WolfSage, regarding remote rehashing -ssl / -garbage is not Global'd, and a bugfix to an earlier WolfSage patch --- Changes | 3 +++ src/modules/m_mode.c | 3 +++ src/s_serv.c | 11 ++++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Changes b/Changes index 918aa218f..6dc938600 100644 --- a/Changes +++ b/Changes @@ -1639,3 +1639,6 @@ MOTDs - Disallowing channels with : in them, it's not worth to risk breakage of 32* to 33*, services, and other things like odd-extbans and things we haven't thought about, all for allowing one silly character. +- #0003060 reported by Robby22, patched by WolfSage, regarding remote + rehashing -ssl / -garbage is not Global'd, and a bugfix to an earlier + WolfSage patch diff --git a/src/modules/m_mode.c b/src/modules/m_mode.c index a7df0c4a7..7a59ff374 100644 --- a/src/modules/m_mode.c +++ b/src/modules/m_mode.c @@ -1021,6 +1021,9 @@ int do_mode_char(aChannel *chptr, long modetype, char modechar, char *param, } else { + if (what == MODE_DEL && modetype == MODE_LIMIT && (chptr->mode.mode & MODE_LINK)) + chptr->mode.mode &= ~MODE_LINK; + retval = 0; if (!chptr->mode.limit) break; diff --git a/src/s_serv.c b/src/s_serv.c index 92115b9f5..eb4da063b 100644 --- a/src/s_serv.c +++ b/src/s_serv.c @@ -588,7 +588,7 @@ CMD_FUNC(m_rehash) if (parv[1] && (parv[1][0] == '-')) x = HUNTED_ISME; else - x = hunt_server_token(cptr, sptr, MSG_REHASH, TOK_REHASH, "%s %s", 1, parc, parv); + x = hunt_server_token(cptr, sptr, MSG_REHASH, TOK_REHASH, "%s", 1, parc, parv); } else { x = hunt_server_token(cptr, sptr, MSG_REHASH, TOK_REHASH, "%s %s", 1, parc, parv); } @@ -635,18 +635,27 @@ CMD_FUNC(m_rehash) { if (!strnicmp("-gar", parv[1], 4)) { + if (cptr != sptr) + sendto_serv_butone_token(&me, me.name, MSG_GLOBOPS, TOK_GLOBOPS, ":%s is remotely doing garbage collection", sptr->name); + loop.do_garbage_collect = 1; RunHook3(HOOKTYPE_REHASHFLAG, cptr, sptr, parv[1]); return 0; } if (!strnicmp("-dns", parv[1], 4)) { + if (cptr != sptr) + sendto_serv_butone_token(&me, me.name, MSG_GLOBOPS, TOK_GLOBOPS, ":%s is remotely reinitializing the resolver!", sptr->name); + reinit_resolver(sptr); return 0; } if (!_match("-ssl*", parv[1])) { #ifdef USE_SSL + if (cptr != sptr) + sendto_serv_butone_token(&me, me.name, MSG_GLOBOPS, TOK_GLOBOPS, ":%s is remotely rehashing SSL data", sptr->name); + extern void reinit_ssl(aClient *); reinit_ssl(sptr); #else