0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-12-28 16:34:13 +01:00

Remove burst_modes_TS5() and burst_TS5().

This commit is contained in:
William Pitcock 2008-06-08 01:11:57 -05:00
parent 63996bf026
commit 7bb8c655ec

View file

@ -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));