Remove burst_modes_TS5() and burst_TS5().
This commit is contained in:
parent
a10b07578b
commit
77bf1a0402
191
src/s_serv.c
191
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);
|
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()
|
/* burst_modes_TS6()
|
||||||
*
|
*
|
||||||
* input - client to burst to, channel name, list to burst, mode flag
|
* 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);
|
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
|
* burst_TS6
|
||||||
*
|
*
|
||||||
|
@ -1084,10 +896,7 @@ server_estab(struct Client *client_p)
|
||||||
target_p->serv->fullcaps);
|
target_p->serv->fullcaps);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(has_id(client_p))
|
|
||||||
burst_TS6(client_p);
|
burst_TS6(client_p);
|
||||||
else
|
|
||||||
burst_TS5(client_p);
|
|
||||||
|
|
||||||
/* Always send a PING after connect burst is done */
|
/* Always send a PING after connect burst is done */
|
||||||
sendto_one(client_p, "PING :%s", get_id(&me, client_p));
|
sendto_one(client_p, "PING :%s", get_id(&me, client_p));
|
||||||
|
|
Loading…
Reference in New Issue