X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fchannel.c;h=e1ab4aec5f4f89c6a1bd0d1623b36a0769498f3d;hb=13837844606bedfc6e95387e9e003053d5fcf9b4;hp=4927d078b0ed926dd5fcab1cb57e8a419ad724d5;hpb=d803c2491ff5851a5cfc560682ea05605d0457c3;p=ircu2.10.12-pk.git diff --git a/ircd/channel.c b/ircd/channel.c index 4927d07..e1ab4ae 100644 --- a/ircd/channel.c +++ b/ircd/channel.c @@ -3905,9 +3905,8 @@ joinbuf_join(struct JoinBuf *jbuf, struct Channel *chan, unsigned int flags) sendcmdto_one(jbuf->jb_source, CMD_PART, jbuf->jb_source, (flags & CHFL_BANNED || !jbuf->jb_comment) ? ":%H" : "%H :%s", chan, jbuf->jb_comment); + /* XXX: Shouldn't we send a PART here anyway? */ - /* Remove user from channel */ - remove_user_from_channel(jbuf->jb_source, chan); } else { /* Add user to channel */ add_user_to_channel(chan, jbuf->jb_source, flags); @@ -3957,6 +3956,9 @@ joinbuf_flush(struct JoinBuf *jbuf) build_string(chanlist, &chanlist_i, jbuf->jb_channels[i] ? jbuf->jb_channels[i]->chname : "0", 0, i == 0 ? '\0' : ','); + if (JOINBUF_TYPE_PART == jbuf->jb_type) + /* Remove user from channel */ + remove_user_from_channel(jbuf->jb_source, jbuf->jb_channels[i]); jbuf->jb_channels[i] = 0; /* mark slot empty */ }