X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fm_part.c;h=bc34ce93572eb3433536ef5fcecb1a61f9a09ae3;hb=refs%2Fheads%2Fupstream-ssl;hp=492469202f0e9a0e0987a95c58447e3c5827abb6;hpb=5ba09703da9f8f21f3278dc0222cd6fe077cfe31;p=ircu2.10.12-pk.git diff --git a/ircd/m_part.c b/ircd/m_part.c index 4924692..bc34ce9 100644 --- a/ircd/m_part.c +++ b/ircd/m_part.c @@ -85,13 +85,14 @@ #include "client.h" #include "hash.h" #include "ircd.h" +#include "ircd_log.h" #include "ircd_reply.h" #include "ircd_string.h" #include "numeric.h" #include "numnicks.h" #include "send.h" -#include +/* #include -- Now using assert in ircd_log.h */ #include /* @@ -139,13 +140,16 @@ int m_part(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) assert(!IsZombie(member)); /* Local users should never zombie */ - if (!member_can_send_to_channel(member)) + if (!member_can_send_to_channel(member, 0)) { flags |= CHFL_BANNED; /* Remote clients don't want to see a comment either. */ parts.jb_comment = 0; } + if (IsDelayedJoin(member)) + flags |= CHFL_DELAYED; + joinbuf_join(&parts, chptr, flags); /* part client from channel */ } @@ -194,13 +198,8 @@ int ms_part(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (IsZombie(member)) /* figure out special flags... */ flags |= CHFL_ZOMBIE; - /* - * XXX BUG: If a client /part's with a part notice, on channels where - * he's banned, local clients will not see the part notice, but remote - * clients will. - */ - if (!member_can_send_to_channel(member)) - flags |= CHFL_BANNED; + if (IsDelayedJoin(member)) + flags |= CHFL_DELAYED; /* part user from channel */ joinbuf_join(&parts, chptr, flags);