From 755b88c783b1011f256695ce2fe898a283782964 Mon Sep 17 00:00:00 2001 From: Sam Dodrill Date: Thu, 26 Dec 2013 15:04:19 -0800 Subject: [PATCH] Revert autojoin_opers patch It causes interesting desyncs of account names when run for more than 2 weeks Revert "channel: refactor fe3c1c828eea7aa67da00627750c8b4312d2ecd0 and fix surrounding indentation" This reverts commit 27b08207de7dc8b90c22c6d6aa37e93b39c57138. Revert "src/channel: Fix for autojoin_opers segfault" This reverts commit 8e1c8b75436d82a9e2a71d765c816fdbf9eb22fc. --- src/channel.c | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/src/channel.c b/src/channel.c index 49bca01..89e433b 100644 --- a/src/channel.c +++ b/src/channel.c @@ -2003,28 +2003,20 @@ void user_join(struct Client * client_p, struct Client * source_p, const char * /* we send the user their join here, because we could have to * send a mode out next. */ + + sendto_channel_local_with_capability(ALL_MEMBERS, NOCAPS, CLICAP_EXTENDED_JOIN, chptr, ":%s!%s@%s JOIN %s", + source_p->name, source_p->username, source_p->host, chptr->chname); + + sendto_channel_local_with_capability(ALL_MEMBERS, CLICAP_EXTENDED_JOIN, NOCAPS, chptr, ":%s!%s@%s JOIN %s %s %ld :%s", + source_p->name, source_p->username, source_p->host, chptr->chname, + EmptyString(source_p->user->suser) ? "*" : source_p->user->suser, + source_p->tsinfo, source_p->info); - sendto_channel_local_with_capability(ALL_MEMBERS, NOCAPS, CLICAP_EXTENDED_JOIN, chptr, ":%s!%s@%s JOIN %s", - source_p->name, source_p->username, source_p->host, chptr->chname); - - sendto_channel_local_with_capability(ALL_MEMBERS, CLICAP_EXTENDED_JOIN, NOCAPS, chptr, ":%s!%s@%s JOIN %s %s %ld :%s", - source_p->name, source_p->username, source_p->host, chptr->chname, - EmptyString(source_p->user->suser) ? "*" : source_p->user->suser, - source_p->tsinfo, source_p->info); - - /* Send away message to away-notify enabled clients. */ - - /* - * The following test fixes autojoin_opers in an auth block joining - * clients to channels from segfaulting the irc daemon. - * - Niichan - */ - if (client_p->user && client_p->user->away) - { - sendto_channel_local_with_capability_butone(client_p, ALL_MEMBERS, CLICAP_AWAY_NOTIFY, NOCAPS, chptr, - ":%s!%s@%s AWAY :%s", client_p->name, client_p->username, - client_p->host, client_p->user->away); - } + /* Send away message to away-notify enabled clients. */ + if (client_p->user->away) + sendto_channel_local_with_capability_butone(client_p, ALL_MEMBERS, CLICAP_AWAY_NOTIFY, NOCAPS, chptr, + ":%s!%s@%s AWAY :%s", client_p->name, client_p->username, + client_p->host, client_p->user->away); /* its a new channel, set +nt and burst. */ if(flags & CHFL_CHANOP)