diff --git a/src/s_serv.c b/src/s_serv.c index 9a652d0c..73932ac6 100644 --- a/src/s_serv.c +++ b/src/s_serv.c @@ -420,62 +420,6 @@ send_capabilities(struct Client *client_p, int cap_can_send) sendto_one(client_p, "CAPAB :%s", msgbuf); } -/* burst_modes_TS5() - * - * input - client to burst to, channel name, list to burst, mode flag - * output - - * side effects - client is sent a list of +b, or +e, or +I modes - */ -static void -burst_modes_TS5(struct Client *client_p, char *chname, rb_dlink_list *list, char flag) -{ - rb_dlink_node *ptr; - struct Ban *banptr; - char mbuf[MODEBUFLEN]; - char pbuf[BUFSIZE]; - int tlen; - int mlen; - int cur_len; - char *mp; - char *pp; - int count = 0; - - mlen = rb_sprintf(buf, ":%s MODE %s +", me.name, chname); - cur_len = mlen; - - mp = mbuf; - pp = pbuf; - - RB_DLINK_FOREACH(ptr, list->head) - { - banptr = ptr->data; - tlen = strlen(banptr->banstr) + 3; - - /* uh oh */ - if(tlen > MODEBUFLEN) - continue; - - if((count >= MAXMODEPARAMS) || ((cur_len + tlen + 2) > (BUFSIZE - 3))) - { - sendto_one(client_p, "%s%s %s", buf, mbuf, pbuf); - - mp = mbuf; - pp = pbuf; - cur_len = mlen; - count = 0; - } - - *mp++ = flag; - *mp = '\0'; - pp += rb_sprintf(pp, "%s ", banptr->banstr); - cur_len += tlen; - count++; - } - - if(count != 0) - sendto_one(client_p, "%s%s %s", buf, mbuf, pbuf); -} - /* burst_modes_TS6() * * input - client to burst to, channel name, list to burst, mode flag @@ -532,138 +476,6 @@ burst_modes_TS6(struct Client *client_p, struct Channel *chptr, sendto_one(client_p, "%s", buf); } -/* - * burst_TS5 - * - * inputs - client (server) to send nick towards - * - client to send nick for - * output - NONE - * side effects - NICK message is sent towards given client_p - */ -static void -burst_TS5(struct Client *client_p) -{ - static char ubuf[12]; - struct Client *target_p; - struct Channel *chptr; - struct membership *msptr; - hook_data_client hclientinfo; - hook_data_channel hchaninfo; - rb_dlink_node *ptr; - rb_dlink_node *uptr; - char *t; - int tlen, mlen; - int cur_len = 0; - - hclientinfo.client = hchaninfo.client = client_p; - - RB_DLINK_FOREACH(ptr, global_client_list.head) - { - target_p = ptr->data; - - if(!IsPerson(target_p)) - continue; - - send_umode(NULL, target_p, 0, 0, ubuf); - if(!*ubuf) - { - ubuf[0] = '+'; - ubuf[1] = '\0'; - } - - sendto_one(client_p, "NICK %s %d %ld %s %s %s %s :%s", - target_p->name, target_p->hopcount + 1, - (long) target_p->tsinfo, ubuf, - target_p->username, target_p->host, - target_p->servptr->name, target_p->info); - - if(IsDynSpoof(target_p)) - sendto_one(client_p, ":%s ENCAP * REALHOST %s", - target_p->name, target_p->orighost); - if(!EmptyString(target_p->user->suser)) - sendto_one(client_p, ":%s ENCAP * LOGIN %s", - target_p->name, target_p->user->suser); - - if(ConfigFileEntry.burst_away && !EmptyString(target_p->user->away)) - sendto_one(client_p, ":%s AWAY :%s", - target_p->name, target_p->user->away); - - hclientinfo.target = target_p; - call_hook(h_burst_client, &hclientinfo); - } - - RB_DLINK_FOREACH(ptr, global_channel_list.head) - { - chptr = ptr->data; - - if(*chptr->chname != '#') - continue; - - cur_len = mlen = rb_sprintf(buf, ":%s SJOIN %ld %s %s :", me.name, - (long) chptr->channelts, chptr->chname, - channel_modes(chptr, client_p)); - - t = buf + mlen; - - RB_DLINK_FOREACH(uptr, chptr->members.head) - { - msptr = uptr->data; - - tlen = strlen(msptr->client_p->name) + 1; - if(is_chanop(msptr)) - tlen++; - if(is_voiced(msptr)) - tlen++; - - if(cur_len + tlen >= BUFSIZE - 3) - { - t--; - *t = '\0'; - sendto_one(client_p, "%s", buf); - cur_len = mlen; - t = buf + mlen; - } - - rb_sprintf(t, "%s%s ", find_channel_status(msptr, 1), - msptr->client_p->name); - - cur_len += tlen; - t += tlen; - } - - if (rb_dlink_list_length(&chptr->members) > 0) - { - /* remove trailing space */ - t--; - *t = '\0'; - } - sendto_one(client_p, "%s", buf); - - burst_modes_TS5(client_p, chptr->chname, &chptr->banlist, 'b'); - - if(IsCapable(client_p, CAP_EX)) - burst_modes_TS5(client_p, chptr->chname, &chptr->exceptlist, 'e'); - - if(IsCapable(client_p, CAP_IE)) - burst_modes_TS5(client_p, chptr->chname, &chptr->invexlist, 'I'); - - burst_modes_TS5(client_p, chptr->chname, &chptr->quietlist, 'q'); - - if(IsCapable(client_p, CAP_TB) && chptr->topic != NULL) - sendto_one(client_p, ":%s TB %s %ld %s%s:%s", - me.name, chptr->chname, (long) chptr->topic_time, - ConfigChannel.burst_topicwho ? chptr->topic_info : "", - ConfigChannel.burst_topicwho ? " " : "", - chptr->topic); - - hchaninfo.chptr = chptr; - call_hook(h_burst_channel, &hchaninfo); - } - - hclientinfo.target = NULL; - call_hook(h_burst_finished, &hclientinfo); -} - /* * burst_TS6 * @@ -1084,10 +896,7 @@ server_estab(struct Client *client_p) target_p->serv->fullcaps); } - if(has_id(client_p)) - burst_TS6(client_p); - else - burst_TS5(client_p); + burst_TS6(client_p); /* Always send a PING after connect burst is done */ sendto_one(client_p, "PING :%s", get_id(&me, client_p));