Fix extended-join for remote and fakequit users

This commit is contained in:
Sam Dodrill 2014-04-22 11:38:07 -07:00
parent ae6e4d3352
commit 02b334ff8f
2 changed files with 21 additions and 5 deletions

View File

@ -245,9 +245,13 @@ ms_join(struct Client *client_p, struct Client *source_p, int parc, const char *
chptr->join_delta = rb_current_time();
}
chptr->join_count++;
sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s JOIN :%s",
source_p->name, source_p->username,
source_p->host, chptr->chname);
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_server(client_p, chptr, CAP_TS6, NOCAPS,

View File

@ -1572,8 +1572,20 @@ change_nick_user_host(struct Client *target_p, const char *nick, const char *use
*mptr = '\0';
sendto_channel_local_butone(target_p, ALL_MEMBERS, chptr, ":%s!%s@%s JOIN :%s",
nick, user, host, chptr->chname);
struct Client *source_p;
source_p = find_named_client(nick);
sendto_channel_local_with_capability(ALL_MEMBERS, NOCAPS,
CLICAP_EXTENDED_JOIN, chptr, ":%s!%s@%s JOIN %s",
source_p->name, source_p->username, 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);
if(*mode)
sendto_channel_local_butone(target_p, ALL_MEMBERS, chptr,
":%s MODE %s +%s %s",