X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/a917e9baf322547871ac5e102d97005d95ec8eb5..b869e117f01851f05ff6d02b65b2719e829057a7:/src/send.c diff --git a/src/send.c b/src/send.c index f31041e..e5d71f2 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)) @@ -760,69 +757,6 @@ sendto_common_channels_local(struct Client *user, const char *pattern, ...) rb_linebuf_donebuf(&linebuf); } -/* - * sendto_common_channels_local() - * - * inputs - pointer to client - * - capability - * - pattern to send - * output - NONE - * side effects - Sends a message to all people on local server who are - * in same channel with user. - * used by m_nick.c and exit_one_client. - */ -void -sendto_common_channels_local_with_capability(struct Client *user, int capability, const char *pattern, ...) -{ - va_list args; - rb_dlink_node *ptr; - rb_dlink_node *next_ptr; - rb_dlink_node *uptr; - rb_dlink_node *next_uptr; - struct Channel *chptr; - struct Client *target_p; - struct membership *msptr; - struct membership *mscptr; - buf_head_t linebuf; - - rb_linebuf_newbuf(&linebuf); - va_start(args, pattern); - rb_linebuf_putmsg(&linebuf, pattern, &args, NULL); - va_end(args); - - ++current_serial; - - RB_DLINK_FOREACH_SAFE(ptr, next_ptr, user->user->channel.head) - { - mscptr = ptr->data; - chptr = mscptr->chptr; - - RB_DLINK_FOREACH_SAFE(uptr, next_uptr, chptr->locmembers.head) - { - msptr = uptr->data; - target_p = msptr->client_p; - - if(!IsCapable(target_p, capability)) - continue; - - if(IsIOError(target_p) || - target_p->serial == current_serial) - continue; - - target_p->serial = current_serial; - send_linebuf(target_p, &linebuf); - } - } - - /* this can happen when the user isnt in any channels, but we still - * need to send them the data, ie a nick change - */ - if(MyConnect(user) && (user->serial != current_serial)) - send_linebuf(user, &linebuf); - - rb_linebuf_donebuf(&linebuf); -} - /* * sendto_common_channels_local_butone() *