diff options
author | jantje_85 <jantje_85@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-09-09 22:23:09 +0000 |
---|---|---|
committer | jantje_85 <jantje_85@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-09-09 22:23:09 +0000 |
commit | 0b82d74262490887c83733544db5c250ea757d05 (patch) | |
tree | b2cc28c65d7e6b2ea3af0b28cb1ecec639bbb1cc | |
parent | 5cb5dc197a6e6b63b6521f8c88354acd6318a552 (diff) |
Fixed a number of TS6 issues, mainly related to nicks instead of IDs being given to anope_cmd_mode() in combination with a status change (Bug #1096). Also Fixed a small bug in os_oline.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2495 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r-- | Changes | 1 | ||||
-rw-r--r-- | include/services.h | 4 | ||||
-rw-r--r-- | src/botserv.c | 4 | ||||
-rw-r--r-- | src/channels.c | 18 | ||||
-rw-r--r-- | src/chanserv.c | 48 | ||||
-rw-r--r-- | src/core/cs_clear.c | 22 | ||||
-rw-r--r-- | src/core/cs_modes.c | 22 | ||||
-rw-r--r-- | src/core/cs_register.c | 4 | ||||
-rw-r--r-- | src/core/cs_topic.c | 2 | ||||
-rw-r--r-- | src/core/os_clearmodes.c | 20 | ||||
-rw-r--r-- | src/core/os_oline.c | 1 | ||||
-rw-r--r-- | src/modules/cs_appendtopic.c | 2 | ||||
-rw-r--r-- | version.log | 3 |
13 files changed, 78 insertions, 73 deletions
@@ -15,6 +15,7 @@ Provided by Anope Dev. <team@anope.org> - 2009 08/27 F Fixed services sending no or wrong help to opers. [#1104] 08/29 F Fixed defcon failing to set and remove modes. [#1101] 08/30 F Fixed MLOCK superseding DEFCON mode lock. [ #00] +09/09 F Fixed number of TS6 compatibility issues. [#1096] Provided by Han` <Han@mefalcon.org> - 2009 07/28 F Updated german language file. [ #00] diff --git a/include/services.h b/include/services.h index 79ff66635..48e38d53c 100644 --- a/include/services.h +++ b/include/services.h @@ -265,6 +265,10 @@ typedef enum { false, true } boolean; /* Protocol tweaks */ +/* If the IRCd supports TS6 / p10 and it s being used, this selects the uid instead of the nick.. */ +#define GET_USER(u) ((ircd->p10 || (UseTS6 && ircd->ts6)) ? (u->uid ? u->uid : u->nick) : u->nick) +#define GET_BOT(bot) ((ircd->p10 || (UseTS6 && ircd->ts6)) ? (find_uid(bot) ? find_uid(bot)->uid : bot) : bot) + typedef struct ircdvars_ IRCDVar; typedef struct ircdcapab_ IRCDCAPAB; diff --git a/src/botserv.c b/src/botserv.c index 365c78dde..5de5a657d 100644 --- a/src/botserv.c +++ b/src/botserv.c @@ -1078,13 +1078,13 @@ void bot_raw_mode(User * requester, ChannelInfo * ci, char *mode, av[0] = ci->name; av[1] = buf; av[2] = mode; - av[3] = nick; + av[3] = GET_USER(u); ac = 4; anope_cmd_mode(ci->bi->nick, av[0], "%s %s", av[2], av[3]); } else { av[0] = ci->name; av[1] = mode; - av[2] = nick; + av[2] = GET_USER(u); ac = 3; anope_cmd_mode(ci->bi->nick, av[0], "%s %s", av[1], av[2]); } diff --git a/src/channels.c b/src/channels.c index 2dcb0d39a..d37c79e9a 100644 --- a/src/channels.c +++ b/src/channels.c @@ -1477,7 +1477,7 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes) strcat(modebuf, tmp); free(tmp); strcat(userbuf, " "); - strcat(userbuf, user->nick); + strcat(userbuf, GET_USER(user)); } else { add_modes &= ~CUS_OWNER; } @@ -1486,14 +1486,14 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes) strcat(modebuf, tmp); free(tmp); strcat(userbuf, " "); - strcat(userbuf, user->nick); + strcat(userbuf, GET_USER(user)); } else { add_modes &= ~CUS_PROTECT; } if ((add_modes & CUS_OP) && !(status & CUS_OP)) { strcat(modebuf, "o"); strcat(userbuf, " "); - strcat(userbuf, user->nick); + strcat(userbuf, GET_USER(user)); rem_modes |= CUS_DEOPPED; } else { add_modes &= ~CUS_OP; @@ -1501,14 +1501,14 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes) if ((add_modes & CUS_HALFOP) && !(status & CUS_HALFOP)) { strcat(modebuf, "h"); strcat(userbuf, " "); - strcat(userbuf, user->nick); + strcat(userbuf, GET_USER(user)); } else { add_modes &= ~CUS_HALFOP; } if ((add_modes & CUS_VOICE) && !(status & CUS_VOICE)) { strcat(modebuf, "v"); strcat(userbuf, " "); - strcat(userbuf, user->nick); + strcat(userbuf, GET_USER(user)); } else { add_modes &= ~CUS_VOICE; } @@ -1520,25 +1520,25 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes) strcat(modebuf, tmp); free(tmp); strcat(userbuf, " "); - strcat(userbuf, user->nick); + strcat(userbuf, GET_USER(user)); } if (rem_modes & CUS_PROTECT) { tmp = stripModePrefix(ircd->adminset); strcat(modebuf, tmp); free(tmp); strcat(userbuf, " "); - strcat(userbuf, user->nick); + strcat(userbuf, GET_USER(user)); } if (rem_modes & CUS_OP) { strcat(modebuf, "o"); strcat(userbuf, " "); - strcat(userbuf, user->nick); + strcat(userbuf, GET_USER(user)); add_modes |= CUS_DEOPPED; } if (rem_modes & CUS_HALFOP) { strcat(modebuf, "h"); strcat(userbuf, " "); - strcat(userbuf, user->nick); + strcat(userbuf, GET_USER(user)); } } diff --git a/src/chanserv.c b/src/chanserv.c index da9928aeb..dce22c06b 100644 --- a/src/chanserv.c +++ b/src/chanserv.c @@ -1268,13 +1268,13 @@ int check_valid_admin(User * user, Channel * chan, int servermode) if (servermode && !check_access(user, chan->ci, CA_AUTOPROTECT)) { notice_lang(s_ChanServ, user, CHAN_IS_REGISTERED, s_ChanServ); anope_cmd_mode(whosends(chan->ci), chan->name, "%s %s", - ircd->adminunset, user->nick); + ircd->adminunset, GET_USER(user)); return 0; } if (check_access(user, chan->ci, CA_AUTODEOP)) { anope_cmd_mode(whosends(chan->ci), chan->name, "%s %s", - ircd->adminunset, user->nick); + ircd->adminunset, GET_USER(user)); return 0; } @@ -1305,40 +1305,40 @@ int check_valid_op(User * user, Channel * chan, int servermode) tmp = stripModePrefix(ircd->ownerunset); anope_cmd_mode(whosends(chan->ci), chan->name, "%so%s %s %s %s", ircd->adminunset, - tmp, user->nick, - user->nick, user->nick); + tmp, GET_USER(user), + GET_USER(user), GET_USER(user)); free(tmp); } else { tmp = stripModePrefix(ircd->ownerunset); anope_cmd_mode(whosends(chan->ci), chan->name, "%sho%s %s %s %s %s", ircd->adminunset, tmp, - user->nick, user->nick, user->nick, - user->nick); + GET_USER(user), GET_USER(user), GET_USER(user), + GET_USER(user)); free(tmp); } } else if (!ircd->owner && ircd->protect) { if (check_access(user, chan->ci, CA_AUTOHALFOP)) { anope_cmd_mode(whosends(chan->ci), chan->name, "%so %s %s", ircd->adminunset, - user->nick, user->nick); + GET_USER(user), GET_USER(user)); } else { anope_cmd_mode(whosends(chan->ci), chan->name, "%soh %s %s %s", ircd->adminunset, - user->nick, user->nick, user->nick); + GET_USER(user), GET_USER(user), GET_USER(user)); } } else { if (check_access(user, chan->ci, CA_AUTOHALFOP)) { anope_cmd_mode(whosends(chan->ci), chan->name, "-o %s", - user->nick); + GET_USER(user)); } else { anope_cmd_mode(whosends(chan->ci), chan->name, - "-ho %s %s", user->nick, user->nick); + "-ho %s %s", GET_USER(user), GET_USER(user)); } } } else { anope_cmd_mode(whosends(chan->ci), chan->name, "-o %s", - user->nick); + GET_USER(user)); } return 0; } @@ -1349,16 +1349,16 @@ int check_valid_op(User * user, Channel * chan, int servermode) tmp = stripModePrefix(ircd->ownerunset); anope_cmd_mode(whosends(chan->ci), chan->name, "%sho%s %s %s %s %s", ircd->adminunset, - tmp, user->nick, user->nick, - user->nick, user->nick); + tmp, GET_USER(user), GET_USER(user), + GET_USER(user), GET_USER(user)); free(tmp); } else { anope_cmd_mode(whosends(chan->ci), chan->name, "-ho %s %s", - user->nick, user->nick); + GET_USER(user), GET_USER(user)); } } else { anope_cmd_mode(whosends(chan->ci), chan->name, "-o %s", - user->nick); + GET_USER(user)); } return 0; } @@ -1383,7 +1383,7 @@ int check_should_op(User * user, char *chan) return 0; if (check_access(user, ci, CA_AUTOOP)) { - anope_cmd_mode(whosends(ci), chan, "+o %s", user->nick); + anope_cmd_mode(whosends(ci), chan, "+o %s", GET_USER(user)); return 1; } @@ -1406,7 +1406,7 @@ int check_should_voice(User * user, char *chan) return 0; if (check_access(user, ci, CA_AUTOVOICE)) { - anope_cmd_mode(whosends(ci), chan, "+v %s", user->nick); + anope_cmd_mode(whosends(ci), chan, "+v %s", GET_USER(user)); return 1; } @@ -1423,7 +1423,7 @@ int check_should_halfop(User * user, char *chan) return 0; if (check_access(user, ci, CA_AUTOHALFOP)) { - anope_cmd_mode(whosends(ci), chan, "+h %s", user->nick); + anope_cmd_mode(whosends(ci), chan, "+h %s", GET_USER(user)); return 1; } @@ -1443,8 +1443,8 @@ int check_should_owner(User * user, char *chan) if (((ci->flags & CI_SECUREFOUNDER) && is_real_founder(user, ci)) || (!(ci->flags & CI_SECUREFOUNDER) && is_founder(user, ci))) { tmp = stripModePrefix(ircd->ownerset); - anope_cmd_mode(whosends(ci), chan, "+o%s %s %s", tmp, user->nick, - user->nick); + anope_cmd_mode(whosends(ci), chan, "+o%s %s %s", tmp, GET_USER(user), + GET_USER(user)); free(tmp); return 1; } @@ -1464,8 +1464,8 @@ int check_should_protect(User * user, char *chan) if (check_access(user, ci, CA_AUTOPROTECT)) { tmp = stripModePrefix(ircd->adminset); - anope_cmd_mode(whosends(ci), chan, "+o%s %s %s", tmp, user->nick, - user->nick); + anope_cmd_mode(whosends(ci), chan, "+o%s %s %s", tmp, GET_USER(user), + GET_USER(user)); free(tmp); return 1; } @@ -1701,7 +1701,7 @@ void restore_topic(char *chan) if (ircd->join2set) { if (whosends(ci) == s_ChanServ) { anope_cmd_join(s_ChanServ, chan, c->creation_time); - anope_cmd_mode(NULL, chan, "+o %s", s_ChanServ); + anope_cmd_mode(NULL, chan, "+o %s", GET_BOT(s_ChanServ)); } } anope_cmd_topic(whosends(ci), c->name, c->topic_setter, @@ -1763,7 +1763,7 @@ int check_topiclock(Channel * c, time_t topic_time) if (ircd->join2set) { if (whosends(ci) == s_ChanServ) { anope_cmd_join(s_ChanServ, c->name, c->creation_time); - anope_cmd_mode(NULL, c->name, "+o %s", s_ChanServ); + anope_cmd_mode(NULL, c->name, "+o %s", GET_BOT(s_ChanServ)); } } diff --git a/src/core/cs_clear.c b/src/core/cs_clear.c index 566286e4c..c3934d840 100644 --- a/src/core/cs_clear.c +++ b/src/core/cs_clear.c @@ -213,13 +213,13 @@ int do_clear(User * u) av[2] = tmp; /* We have to give as much nicks as modes.. - Viper */ for (i = 0; i < count; i++) - av[i+3] = cu->user->nick; + av[i+3] = GET_USER(cu->user); ac = 3 + i; } else { av[1] = tmp; /* We have to give as much nicks as modes.. - Viper */ for (i = 0; i < count; i++) - av[i+2] = cu->user->nick; + av[i+2] = GET_USER(cu->user); ac = 2 + i; } @@ -240,8 +240,8 @@ int do_clear(User * u) snprintf(tmp, BUFSIZE, "-%s%s%s", (isop ? "o" : ""), (isadmin ? ircd->adminunset+1 : ""), (isown ? ircd->ownerunset+1 : "")); /* We need to send the IRCd a nick for every mode.. - Viper */ - snprintf(tmp2, BUFSIZE, "%s %s %s", (isop ? cu->user->nick : ""), - (isadmin ? cu->user->nick : ""), (isown ? cu->user->nick : "")); + snprintf(tmp2, BUFSIZE, "%s %s %s", (isop ? GET_USER(cu->user) : ""), + (isadmin ? GET_USER(cu->user) : ""), (isown ? GET_USER(cu->user) : "")); if (ircdcap->tsmode) { snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL)); @@ -249,7 +249,7 @@ int do_clear(User * u) av[2] = tmp; /* We have to give as much nicks as modes.. - Viper */ for (i = 0; i < count; i++) - av[i+3] = cu->user->nick; + av[i+3] = GET_USER(cu->user); ac = 3 + i; anope_cmd_mode(whosends(ci), av[0], "%s %s", av[2], tmp2); @@ -257,7 +257,7 @@ int do_clear(User * u) av[1] = tmp; /* We have to give as much nicks as modes.. - Viper */ for (i = 0; i < count; i++) - av[i+2] = cu->user->nick; + av[i+2] = GET_USER(cu->user); ac = 2 + i; anope_cmd_mode(whosends(ci), av[0], "%s %s", av[1], tmp2); @@ -283,12 +283,12 @@ int do_clear(User * u) av[0] = sstrdup(chan); av[1] = buf; av[2] = sstrdup("-h"); - av[3] = sstrdup(cu->user->nick); + av[3] = sstrdup(GET_USER(cu->user)); ac = 4; } else { av[0] = sstrdup(chan); av[1] = sstrdup("-h"); - av[2] = sstrdup(cu->user->nick); + av[2] = sstrdup(GET_USER(cu->user)); ac = 3; } @@ -337,12 +337,12 @@ int do_clear(User * u) av[0] = sstrdup(chan); av[1] = buf; av[2] = sstrdup("-v"); - av[3] = sstrdup(cu->user->nick); + av[3] = sstrdup(GET_USER(cu->user)); ac = 4; } else { av[0] = sstrdup(chan); av[1] = sstrdup("-v"); - av[2] = sstrdup(cu->user->nick); + av[2] = sstrdup(GET_USER(cu->user)); ac = 3; } @@ -386,7 +386,7 @@ int do_clear(User * u) for (cu = c->users; cu; cu = next) { next = cu->next; av[0] = sstrdup(chan); - av[1] = sstrdup(cu->user->nick); + av[1] = sstrdup(GET_USER(cu->user)); av[2] = sstrdup(buf); anope_cmd_kick(whosends(ci), av[0], av[1], av[2]); do_kick(s_ChanServ, 3, av); diff --git a/src/core/cs_modes.c b/src/core/cs_modes.c index 22460291a..cca0a4d4b 100644 --- a/src/core/cs_modes.c +++ b/src/core/cs_modes.c @@ -220,7 +220,7 @@ int do_owner(User * u) if (!chan) { av[0] = sstrdup(ircd->ownerset); - av[1] = u->nick; + av[1] = GET_USER(u); /* Sets the mode to the user on every channels he is on. */ @@ -228,7 +228,7 @@ int do_owner(User * u) if ((ci = uc->chan->ci) && !(ci->flags & CI_VERBOTEN) && is_founder(u, ci)) { anope_cmd_mode(whosends(ci), uc->chan->name, "%s %s", - av[0], u->nick); + av[0], GET_USER(u)); chan_set_modes(s_ChanServ, uc->chan, 2, av, 1); } } @@ -249,10 +249,10 @@ int do_owner(User * u) notice_lang(s_ChanServ, u, ACCESS_DENIED); } else { anope_cmd_mode(whosends(ci), c->name, "%s %s", ircd->ownerset, - u->nick); + GET_USER(u)); av[0] = sstrdup(ircd->ownerset); - av[1] = u->nick; + av[1] = GET_USER(u); chan_set_modes(s_ChanServ, c, 2, av, 1); free(av[0]); } @@ -276,7 +276,7 @@ int do_deowner(User * u) if (!chan) { av[0] = sstrdup(ircd->ownerunset); - av[1] = u->nick; + av[1] = GET_USER(u); /* Sets the mode to the user on every channels he is on. */ @@ -284,7 +284,7 @@ int do_deowner(User * u) if ((ci = uc->chan->ci) && !(ci->flags & CI_VERBOTEN) && is_founder(u, ci)) { anope_cmd_mode(whosends(ci), uc->chan->name, "%s %s", - av[0], u->nick); + av[0], GET_USER(u)); chan_set_modes(s_ChanServ, uc->chan, 2, av, 1); } } @@ -305,10 +305,10 @@ int do_deowner(User * u) notice_lang(s_ChanServ, u, ACCESS_DENIED); } else { anope_cmd_mode(whosends(ci), c->name, "%s %s", ircd->ownerunset, - u->nick); + GET_USER(u)); av[0] = sstrdup(ircd->ownerunset); - av[1] = u->nick; + av[1] = GET_USER(u); chan_set_modes(s_ChanServ, c, 2, av, 1); free(av[0]); } @@ -341,7 +341,7 @@ int do_util(User * u, CSModeUtil * util) if ((ci = uc->chan->ci) && !(ci->flags & CI_VERBOTEN) && check_access(u, ci, util->levelself)) { anope_cmd_mode(whosends(ci), uc->chan->name, "%s %s", - util->mode, u->nick); + util->mode, GET_USER(u)); chan_set_modes(s_ChanServ, uc->chan, 2, av, 2); if (util->notice && ci->flags & util->notice) @@ -378,10 +378,10 @@ int do_util(User * u, CSModeUtil * util) notice_lang(s_ChanServ, u, PERMISSION_DENIED); } else { anope_cmd_mode(whosends(ci), c->name, "%s %s", util->mode, - u2->nick); + GET_USER(u2)); av[0] = util->mode; - av[1] = u2->nick; + av[1] = GET_USER(u2); chan_set_modes(s_ChanServ, c, 2, av, 3); if (util->notice && ci->flags & util->notice) diff --git a/src/core/cs_register.c b/src/core/cs_register.c index ec0a33102..de3df8926 100644 --- a/src/core/cs_register.c +++ b/src/core/cs_register.c @@ -180,11 +180,11 @@ int do_register(User * u) /* On most ircds you do not receive the admin/owner mode till its registered */ if (ircd->admin) { anope_cmd_mode(s_ChanServ, chan, "%s %s", ircd->adminset, - u->nick); + GET_USER(u)); } if (ircd->owner && ircd->ownerset) { anope_cmd_mode(s_ChanServ, chan, "%s %s", ircd->ownerset, - u->nick); + GET_USER(u)); } send_event(EVENT_CHAN_REGISTERED, 1, chan); } diff --git a/src/core/cs_topic.c b/src/core/cs_topic.c index a1538e1c6..003bd2c95 100644 --- a/src/core/cs_topic.c +++ b/src/core/cs_topic.c @@ -104,7 +104,7 @@ int do_cs_topic(User * u) if (ircd->join2set) { if (whosends(ci) == s_ChanServ) { anope_cmd_join(s_ChanServ, c->name, c->creation_time); - anope_cmd_mode(NULL, c->name, "+o %s", s_ChanServ); + anope_cmd_mode(NULL, c->name, "+o %s", GET_BOT(s_ChanServ)); } } anope_cmd_topic(whosends(ci), c->name, u->nick, topic ? topic : "", diff --git a/src/core/os_clearmodes.c b/src/core/os_clearmodes.c index e309ee901..742c8c7f1 100644 --- a/src/core/os_clearmodes.c +++ b/src/core/os_clearmodes.c @@ -112,7 +112,7 @@ int do_clearmodes(User * u) continue; } argv[0] = sstrdup("-o"); - argv[1] = cu->user->nick; + argv[1] = GET_USER(cu->user); chan_set_modes(s_OperServ, c, 2, argv, 0); free(argv[0]); } @@ -122,7 +122,7 @@ int do_clearmodes(User * u) if (!chan_has_user_status(c, cu->user, CUS_OP)) continue; argv[0] = sstrdup("-o"); - argv[1] = cu->user->nick; + argv[1] = GET_USER(cu->user); anope_cmd_mode(s_OperServ, c->name, "-o %s", cu->user->nick); chan_set_modes(s_OperServ, c, 2, argv, 0); @@ -138,7 +138,7 @@ int do_clearmodes(User * u) continue; } argv[0] = sstrdup("-v"); - argv[1] = cu->user->nick; + argv[1] = GET_USER(cu->user); chan_set_modes(s_OperServ, c, 2, argv, 0); free(argv[0]); } @@ -149,7 +149,7 @@ int do_clearmodes(User * u) if (!chan_has_user_status(c, cu->user, CUS_VOICE)) continue; argv[0] = sstrdup("-v"); - argv[1] = cu->user->nick; + argv[1] = GET_USER(cu->user); anope_cmd_mode(s_OperServ, c->name, "-v %s", cu->user->nick); chan_set_modes(s_OperServ, c, 2, argv, 0); @@ -166,7 +166,7 @@ int do_clearmodes(User * u) continue; } argv[0] = sstrdup("-h"); - argv[1] = cu->user->nick; + argv[1] = GET_USER(cu->user); chan_set_modes(s_OperServ, c, 2, argv, 0); free(argv[0]); } @@ -176,7 +176,7 @@ int do_clearmodes(User * u) if (!chan_has_user_status(c, cu->user, CUS_HALFOP)) continue; argv[0] = sstrdup("-h"); - argv[1] = cu->user->nick; + argv[1] = GET_USER(cu->user); anope_cmd_mode(s_OperServ, c->name, "-h %s", cu->user->nick); chan_set_modes(s_OperServ, c, 2, argv, 0); @@ -192,7 +192,7 @@ int do_clearmodes(User * u) continue; } argv[0] = sstrdup(ircd->ownerunset); - argv[1] = cu->user->nick; + argv[1] = GET_USER(cu->user); chan_set_modes(s_OperServ, c, 2, argv, 0); free(argv[0]); } @@ -202,7 +202,7 @@ int do_clearmodes(User * u) if (!chan_has_user_status(c, cu->user, CUS_OWNER)) continue; argv[0] = sstrdup(ircd->ownerunset); - argv[1] = cu->user->nick; + argv[1] = GET_USER(cu->user); anope_cmd_mode(s_OperServ, c->name, "%s %s", ircd->ownerunset, cu->user->nick); chan_set_modes(s_OperServ, c, 2, argv, 0); @@ -219,7 +219,7 @@ int do_clearmodes(User * u) continue; } argv[0] = sstrdup(ircd->adminunset); - argv[1] = cu->user->nick; + argv[1] = GET_USER(cu->user); chan_set_modes(s_OperServ, c, 2, argv, 0); free(argv[0]); } @@ -229,7 +229,7 @@ int do_clearmodes(User * u) if (!chan_has_user_status(c, cu->user, CUS_PROTECT)) continue; argv[0] = sstrdup(ircd->adminunset); - argv[1] = cu->user->nick; + argv[1] = GET_USER(cu->user); anope_cmd_mode(s_OperServ, c->name, "%s %s", ircd->adminunset, cu->user->nick); chan_set_modes(s_OperServ, c, 2, argv, 0); diff --git a/src/core/os_oline.c b/src/core/os_oline.c index 6512ccbb9..7ccc07a52 100644 --- a/src/core/os_oline.c +++ b/src/core/os_oline.c @@ -90,7 +90,6 @@ int do_operoline(User * u) notice_lang(s_OperServ, u, NICK_X_NOT_IN_USE, nick); } else if (u2 && flags[0] == '+') { anope_cmd_svso(s_OperServ, nick, flags); - anope_cmd_mode(s_OperServ, nick, "+o"); common_svsmode(u2, "+o", NULL); notice_lang(s_OperServ, u2, OPER_OLINE_IRCOP); notice_lang(s_OperServ, u, OPER_OLINE_SUCCESS, flags, nick); diff --git a/src/modules/cs_appendtopic.c b/src/modules/cs_appendtopic.c index c1e786933..1593953f5 100644 --- a/src/modules/cs_appendtopic.c +++ b/src/modules/cs_appendtopic.c @@ -148,7 +148,7 @@ int my_cs_appendtopic(User * u) if (ircd->join2set) { if (whosends(ci) == s_ChanServ) { anope_cmd_join(s_ChanServ, c->name, c->creation_time); - anope_cmd_mode(NULL, c->name, "+o %s", s_ChanServ); + anope_cmd_mode(NULL, c->name, "+o %s", GET_BOT(s_ChanServ)); } } anope_cmd_topic(whosends(ci), c->name, u->nick, topic, c->topic_time); diff --git a/version.log b/version.log index c093c6171..9749ec420 100644 --- a/version.log +++ b/version.log @@ -9,9 +9,10 @@ VERSION_MAJOR="1" VERSION_MINOR="8" VERSION_PATCH="2" VERSION_EXTRA="-svn" -VERSION_BUILD="2491" +VERSION_BUILD="2495" # $Log$ # Changes since 1.8.2 Release +#Revision 2495 - Fixed a number of TS6 issues, mainly related to nicks instead of IDs being given to anope_cmd_mode() in combination with a status change (Bug #1096). Also Fixed a small bug in os_oline. #Revision 2491 - Fixed typo in install.js so it will correctly detect MySQL 5.1 on Windows #Revision 2485 - Fixed MLOCK locked mode removal getting priority over DEFCON locked mode setting. #Revision 2480 - Fixed defcon not setting modes on newly created unregged channels and failing to force remove defcon-locked modes. |