92 |
if (accept_remote) |
if (accept_remote) |
93 |
{ |
{ |
94 |
int topic_differs = strncmp(chptr->topic, topic, sizeof(chptr->topic) - 1); |
int topic_differs = strncmp(chptr->topic, topic, sizeof(chptr->topic) - 1); |
95 |
|
int hidden_server = (ConfigServerHide.hide_servers || IsHidden(source_p)); |
96 |
|
|
97 |
set_channel_topic(chptr, topic, setby, remote_topic_ts); |
set_channel_topic(chptr, topic, setby, remote_topic_ts); |
98 |
|
|
99 |
|
sendto_server(source_p, CAP_TBURST|CAP_TS6, NOCAPS, |
100 |
|
":%s TBURST %s %s %s %s :%s", |
101 |
|
ID(source_p), parv[1], parv[2], parv[3], setby, topic); |
102 |
|
sendto_server(source_p, CAP_TBURST, CAP_TS6, |
103 |
|
":%s TBURST %s %s %s %s :%s", |
104 |
|
source_p->name, parv[1], parv[2], parv[3], setby, topic); |
105 |
|
|
106 |
if (topic_differs) |
if (topic_differs) |
107 |
sendto_channel_local(ALL_MEMBERS, 0, chptr, ":%s TOPIC %s :%s", |
sendto_channel_local(ALL_MEMBERS, 0, chptr, ":%s TOPIC %s :%s", |
108 |
ConfigServerHide.hide_servers ? me.name : source_p->name, |
hidden_server ? me.name : source_p->name, |
109 |
chptr->chname, chptr->topic); |
chptr->chname, chptr->topic); |
110 |
} |
} |
|
|
|
|
/* |
|
|
* 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); |
|
111 |
} |
} |
112 |
|
|
113 |
static struct Message tburst_msgtab = { |
static struct Message tburst_msgtab = { |