| 87 |
|
* The TS of the remote channel is equal to ours AND |
| 88 |
|
* the TS of the remote topic is newer than ours |
| 89 |
|
*/ |
| 90 |
< |
if (remote_channel_ts < chptr->channelts) |
| 90 |
> |
if (HasFlag(source_p, FLAGS_SERVICE)) |
| 91 |
> |
accept_remote = 1; |
| 92 |
> |
else if (remote_channel_ts < chptr->channelts) |
| 93 |
|
accept_remote = 1; |
| 94 |
|
else if (remote_channel_ts == chptr->channelts) |
| 95 |
|
if (remote_topic_ts > chptr->topic_time) |
| 97 |
|
|
| 98 |
|
if (accept_remote) |
| 99 |
|
{ |
| 98 |
– |
int topic_differs = strncmp(chptr->topic, topic, sizeof(chptr->topic) - 1); |
| 99 |
– |
|
| 100 |
|
set_channel_topic(chptr, topic, setby, remote_topic_ts); |
| 101 |
|
|
| 102 |
< |
if (topic_differs) |
| 102 |
> |
if (strncmp(chptr->topic, topic, sizeof(chptr->topic) - 1)) |
| 103 |
|
sendto_channel_local(ALL_MEMBERS, 0, chptr, ":%s TOPIC %s :%s", |
| 104 |
|
ConfigServerHide.hide_servers ? me.name : source_p->name, |
| 105 |
|
chptr->chname, chptr->topic); |