-#ifndef NO_PROTOCOL9
- /* Send message to all 2.9 servers */
- /* This is a hack, because it assumes that we know how `vl' is build up */
- source = va_arg(vl, char *);
- tp = va_arg(vl, char *); /* Channel */
- msg = va_arg(vl, char *);
- for (lp = chptr->members; lp; lp = lp->next)
- {
- acptr = lp->value.cptr;
- if (acptr->from == acptr || /* Skip local clients */
- Protocol(acptr->from) > 9 || /* Skip P10 servers */
- acptr->from == one || /* ...was the one I should skip */
- !(lp->flags & CHFL_CHANOP) || /* Skip non chanops */
- (lp->flags & CHFL_ZOMBIE) || IsDeaf(acptr))
- continue;
- if (sentalong[(i = acptr->from->fd)] != sentalong_marker)
- {
- sentalong[i] = sentalong_marker;
- /* Don't send channel messages to links that are
- still eating the net.burst: -- Run 2/1/1997 */
- if (!IsBurstOrBurstAck(acptr->from))
- {
- Link *lp2;
- aClient *acptr2;
- tp = target;
- *tp = 0;
- /* Find all chanops in this direction: */
- for (lp2 = chptr->members; lp2; lp2 = lp2->next)
- {
- acptr2 = lp2->value.cptr;
- if (acptr2->from == acptr->from && acptr2->from != one &&
- (lp2->flags & CHFL_CHANOP) && !(lp2->flags & CHFL_ZOMBIE) &&
- !IsDeaf(acptr2))
- {
- int len = strlen(acptr2->name);
- if (tp + len + 2 > target + sizeof(target))
- {
- sendto_prefix_one(acptr, from,
- ":%s NOTICE %s :%s", source, target, msg);
- tp = target;
- *tp = 0;
- }
- if (*target)
- strcpy(tp++, ",");
- strcpy(tp, acptr2->name);
- tp += len;
- }
- }
- sendto_prefix_one(acptr, from,
- ":%s NOTICE %s :%s", source, target, msg);
- }
- }
- }
-#endif