unsigned int CAP_CHW;
unsigned int CAP_IE;
unsigned int CAP_KLN;
-unsigned int CAP_ZIP;
unsigned int CAP_KNOCK;
unsigned int CAP_TB;
unsigned int CAP_UNKLN;
CAP_IE = capability_put(serv_capindex, "IE", NULL);
CAP_KLN = capability_put(serv_capindex, "KLN", NULL);
CAP_KNOCK = capability_put(serv_capindex, "KNOCK", NULL);
- CAP_ZIP = capability_put(serv_capindex, "ZIP", NULL);
CAP_TB = capability_put(serv_capindex, "TB", NULL);
CAP_UNKLN = capability_put(serv_capindex, "UNKLN", NULL);
CAP_CLUSTER = capability_put(serv_capindex, "CLUSTER", NULL);
}
attach_server_conf(client_p, server_p);
- /* clear ZIP/TB if they support but we dont want them */
-#ifdef HAVE_LIBZ
- if(!ServerConfCompressed(server_p))
-#endif
- ClearCap(client_p, CAP_ZIP);
-
+ /* clear TB if they support but we dont want it */
if(!ServerConfTb(server_p))
ClearCap(client_p, CAP_TB);
static void
burst_ban(struct Client *client_p)
{
- rb_dlink_node *ptr;
struct ConfItem *aconf;
- const char *type, *oper;
- /* +5 for !,@,{,} and null */
- char operbuf[NICKLEN + USERLEN + HOSTLEN + HOSTLEN + 5];
- char *p;
- size_t melen;
-
- melen = strlen(me.name);
- RB_DLINK_FOREACH(ptr, prop_bans.head)
- {
- aconf = ptr->data;
+ const char *type;
+ rb_dictionary_iter state;
+ RB_DICTIONARY_FOREACH(aconf, &state, prop_bans_dict)
+ {
/* Skip expired stuff. */
if(aconf->lifetime < rb_current_time())
continue;
default:
continue;
}
- oper = aconf->info.oper;
- if(aconf->flags & CONF_FLAGS_MYOPER)
- {
- /* Our operator{} names may not be meaningful
- * to other servers, so rewrite to our server
- * name.
- */
- rb_strlcpy(operbuf, aconf->info.oper, sizeof operbuf);
- p = strrchr(operbuf, '{');
- if (p != NULL &&
- operbuf + sizeof operbuf - p > (ptrdiff_t)(melen + 2))
- {
- memcpy(p + 1, me.name, melen);
- p[melen + 1] = '}';
- p[melen + 2] = '\0';
- oper = operbuf;
- }
- }
sendto_one(client_p, ":%s BAN %s %s %s %lu %d %d %s :%s%s%s",
me.id,
type,
(unsigned long)aconf->created,
(int)(aconf->hold - aconf->created),
(int)(aconf->lifetime - aconf->created),
- oper,
+ aconf->info.oper,
aconf->passwd,
aconf->spasswd ? "|" : "",
aconf->spasswd ? aconf->spasswd : "");
{
rb_dlink_node *ptr;
struct Ban *banptr;
- char *t;
- int tlen;
- int mlen;
- int cur_len;
- cur_len = mlen = sprintf(buf, ":%s BMASK %ld %s %c :",
- me.id, (long) chptr->channelts, chptr->chname, flag);
- t = buf + mlen;
+ send_multiline_init(client_p, " ", ":%s BMASK %ld %s %c :",
+ me.id,
+ (long)chptr->channelts,
+ chptr->chname,
+ flag);
RB_DLINK_FOREACH_PREV(ptr, list->tail)
{
banptr = ptr->data;
- tlen = strlen(banptr->banstr) + (banptr->forward ? strlen(banptr->forward) + 1 : 0) + 1;
-
- /* uh oh */
- if(cur_len + tlen > BUFSIZE - 3)
- {
- /* the one we're trying to send doesnt fit at all! */
- if(cur_len == mlen)
- {
- s_assert(0);
- continue;
- }
-
- /* chop off trailing space and send.. */
- *(t-1) = '\0';
- sendto_one(client_p, "%s", buf);
- cur_len = mlen;
- t = buf + mlen;
- }
-
if (banptr->forward)
- sprintf(t, "%s$%s ", banptr->banstr, banptr->forward);
+ send_multiline_item(client_p, "%s$%s",
+ banptr->banstr,
+ banptr->forward);
else
- sprintf(t, "%s ", banptr->banstr);
- t += tlen;
- cur_len += tlen;
+ send_multiline_item(client_p, "%s", banptr->banstr);
}
- /* cant ever exit the loop above without having modified buf,
- * chop off trailing space and send.
- */
- *(t-1) = '\0';
- sendto_one(client_p, "%s", buf);
+ send_multiline_fini(client_p, NULL);
}
/*
use_id(target_p),
target_p->user->away);
- if(IsOper(target_p) && target_p->user && target_p->user->opername && target_p->user->privset)
- sendto_one(client_p, ":%s OPER %s %s",
- use_id(target_p),
- target_p->user->opername,
- target_p->user->privset->name);
+ if (IsOper(target_p) && target_p->user && target_p->user->opername)
+ {
+ if (target_p->user->privset)
+ sendto_one(client_p, ":%s OPER %s %s",
+ use_id(target_p),
+ target_p->user->opername,
+ target_p->user->privset->name);
+ else
+ sendto_one(client_p, ":%s OPER %s",
+ use_id(target_p),
+ target_p->user->opername);
+ }
hclientinfo.target = target_p;
call_hook(h_burst_client, &hclientinfo);
/* pass info to new server */
send_capabilities(client_p, default_server_capabs | CAP_MASK
- | (ServerConfCompressed(server_p) ? CAP_ZIP_SUPPORTED : 0)
| (ServerConfTb(server_p) ? CAP_TB : 0));
sendto_one(client_p, "SERVER %s 1 :%s%s",
if(!rb_set_buffers(client_p->localClient->F, READBUF_SIZE))
ilog_error("rb_set_buffers failed for server");
- /* Enable compression now */
- if(IsCapable(client_p, CAP_ZIP))
- {
- start_zlib_session(client_p);
- }
-
client_p->servptr = &me;
if(IsAnyDead(client_p))
/* pass my info to the new server */
send_capabilities(client_p, default_server_capabs | CAP_MASK
- | (ServerConfCompressed(server_p) ? CAP_ZIP_SUPPORTED : 0)
| (ServerConfTb(server_p) ? CAP_TB : 0));
sendto_one(client_p, "SERVER %s 1 :%s%s",