diff options
author | michael <michael@82007160-df01-0410-b94d-b575c5fd34c7> | 2012-10-29 18:20:49 +0000 |
---|---|---|
committer | michael <michael@82007160-df01-0410-b94d-b575c5fd34c7> | 2012-10-29 18:20:49 +0000 |
commit | eef62fc56ba6df5690830206d5341cbd5be91612 (patch) | |
tree | 401ba87fa59f905cd2bd77b4ca0efd870a73b368 | |
parent | 70f1558a2eca8295e30bb1e381d948056333634d (diff) |
- Fixed possible TBURST desynchronization with services
- Fixed TBURST sending server's name to clients if it's a hidden server
git-svn-id: svn://svn.ircd-hybrid.org/svnroot/ircd-hybrid/trunk@1615 82007160-df01-0410-b94d-b575c5fd34c7
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | modules/m_tburst.c | 21 |
2 files changed, 13 insertions, 12 deletions
@@ -1,4 +1,8 @@ -- ircd-hybrid-8.0.0 Release Notes +o) Fixed possible TBURST desynchronization with services +o) Fixed TBURST sending server's name to clients if it's a hidden server + +-- ircd-hybrid-8.0.0 Release Notes o) Fixed an off-by-one with spoofs. Spoofs are now also checked for invalid characters o) Removed general::use_whois_actually configuration directive. This is diff --git a/modules/m_tburst.c b/modules/m_tburst.c index f927c35..43caef3 100644 --- a/modules/m_tburst.c +++ b/modules/m_tburst.c @@ -92,25 +92,22 @@ ms_tburst(struct Client *client_p, struct Client *source_p, if (accept_remote) { int topic_differs = strncmp(chptr->topic, topic, sizeof(chptr->topic) - 1); + int hidden_server = (ConfigServerHide.hide_servers || IsHidden(source_p)); set_channel_topic(chptr, topic, setby, remote_topic_ts); + sendto_server(source_p, CAP_TBURST|CAP_TS6, NOCAPS, + ":%s TBURST %s %s %s %s :%s", + ID(source_p), parv[1], parv[2], parv[3], setby, topic); + sendto_server(source_p, CAP_TBURST, CAP_TS6, + ":%s TBURST %s %s %s %s :%s", + source_p->name, parv[1], parv[2], parv[3], setby, topic); + if (topic_differs) sendto_channel_local(ALL_MEMBERS, 0, chptr, ":%s TOPIC %s :%s", - ConfigServerHide.hide_servers ? me.name : source_p->name, + hidden_server ? me.name : source_p->name, chptr->chname, chptr->topic); } - - /* - * Always propagate what we have received, not only if we accept the topic. - * This will keep other servers in sync. - */ - sendto_server(source_p, CAP_TBURST|CAP_TS6, NOCAPS, - ":%s TBURST %s %s %s %s :%s", - ID(source_p), parv[1], parv[2], parv[3], setby, topic); - sendto_server(source_p, CAP_TBURST, CAP_TS6, - ":%s TBURST %s %s %s %s :%s", - source_p->name, parv[1], parv[2], parv[3], setby, topic); } static struct Message tburst_msgtab = { |