X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/13a467bb98966810d26b6a2dd28b01820d609c27..6a52011244bb7ebfc2d9d5087f6bdcc22350048f:/modules/core/m_kick.c diff --git a/modules/core/m_kick.c b/modules/core/m_kick.c index 4eb2cfa..7efabbb 100644 --- a/modules/core/m_kick.c +++ b/modules/core/m_kick.c @@ -86,6 +86,13 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p return 0; } + user = parv[2]; /* strtoken(&p2, parv[2], ","); */ + + if(!(who = find_chasing(source_p, user, &chasing))) + { + return 0; + } + if(!IsServer(source_p)) { msptr = find_channel_membership(chptr, source_p); @@ -97,7 +104,7 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p return 0; } - if(!is_chanop(msptr) && !IsOverride(source_p)) + if(!can_kick_deop(msptr, find_channel_membership(chptr, who)) && !IsOverride(source_p)) { if(MyConnect(source_p)) { @@ -140,13 +147,6 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p if((p = strchr(parv[2], ','))) *p = '\0'; - user = parv[2]; /* strtoken(&p2, parv[2], ","); */ - - if(!(who = find_chasing(source_p, user, &chasing))) - { - return 0; - } - msptr = find_channel_membership(chptr, who); if(msptr != NULL)