X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/c387fc41ae496de901a556928e0c65736d5ced4f..8e3b2b85c7221f2f9f1ca6d5e48880d521d2a1a3:/src/send.c diff --git a/src/send.c b/src/send.c index 4c04daf..db98c57 100644 --- a/src/send.c +++ b/src/send.c @@ -85,10 +85,7 @@ _send_linebuf(struct Client *to, buf_head_t *linebuf) get_sendq(to)); } - if(IsClient(to)) - to->flags |= FLAGS_SENDQEX; - - dead_link(to); + dead_link(to, 1); return -1; } else @@ -200,7 +197,7 @@ send_queued(struct Client *to) if(retlen == 0 || (retlen < 0 && !rb_ignore_errno(errno))) { - dead_link(to); + dead_link(to, 0); return; } } @@ -587,7 +584,7 @@ sendto_channel_opmod(struct Client *one, struct Client *source_p, if(IsIOError(target_p->from) || target_p->from == one) continue; - if((msptr->flags & CHFL_CHANOP) == 0) + if(!is_any_op(msptr)) continue; if(IsDeaf(target_p)) @@ -649,7 +646,12 @@ sendto_channel_local(int type, struct Channel *chptr, const char *pattern, ...) if(IsIOError(target_p)) continue; - if(type && ((msptr->flags & type) == 0)) + if(type == ONLY_OPERS) + { + if(!IsOper(target_p)) + continue; + } + else if(type && ((msptr->flags & type) == 0)) continue; _send_linebuf(target_p, &linebuf);