#include "hostmask.h"
#include "newconf.h"
#include "hash.h"
-#include "sprintf_irc.h"
#include "irc_dictionary.h"
rb_dlink_list shared_conf_list;
rb_patricia_tree_t *tgchange_tree;
-static BlockHeap *nd_heap = NULL;
+static rb_bh *nd_heap = NULL;
static void expire_temp_rxlines(void *unused);
static void expire_nd_entries(void *unused);
+struct ev_entry *expire_nd_entries_ev = NULL;
+struct ev_entry *expire_temp_rxlines_ev = NULL;
+
void
init_s_newconf(void)
{
- tgchange_tree = New_Patricia(PATRICIA_BITS);
- nd_heap = BlockHeapCreate(sizeof(struct nd_entry), ND_HEAP_SIZE);
- eventAddIsh("expire_nd_entries", expire_nd_entries, NULL, 30);
- eventAddIsh("expire_temp_rxlines", expire_temp_rxlines, NULL, 60);
+ tgchange_tree = rb_new_patricia(PATRICIA_BITS);
+ nd_heap = rb_bh_create(sizeof(struct nd_entry), ND_HEAP_SIZE, "nd_heap");
+ expire_nd_entries_ev = rb_event_addish("expire_nd_entries", expire_nd_entries, NULL, 30);
+ expire_temp_rxlines_ev = rb_event_addish("expire_temp_rxlines", expire_temp_rxlines, NULL, 60);
}
void
va_list args;
va_start(args, format);
- ircvsnprintf(buffer, sizeof(buffer), format, args);
+ rb_vsnprintf(buffer, sizeof(buffer), format, args);
va_end(args);
sendto_match_servs(source_p, target, cap, NOCAPS,
rb_dlink_node *ptr;
va_start(args, format);
- ircvsnprintf(buffer, sizeof(buffer), format, args);
+ rb_vsnprintf(buffer, sizeof(buffer), format, args);
va_end(args);
RB_DLINK_FOREACH(ptr, cluster_conf_list.head)
find_oper_conf(const char *username, const char *host, const char *locip, const char *name)
{
struct oper_conf *oper_p;
- struct irc_sockaddr_storage ip, cip;
+ struct rb_sockaddr_storage ip, cip;
char addr[HOSTLEN+1];
int bits, cbits;
rb_dlink_node *ptr;
if(irccmp(oper_p->name, name) || !match(oper_p->username, username))
continue;
- strlcpy(addr, oper_p->host, sizeof(addr));
+ rb_strlcpy(addr, oper_p->host, sizeof(addr));
if(parse_netmask(addr, (struct sockaddr *)&ip, &bits) != HM_HOST)
{
struct oper_flags
{
int flag;
- char has;
- char hasnt;
+ const char *name;
};
static struct oper_flags oper_flagtable[] =
{
- { OPER_GLINE, 'G', 'g' },
- { OPER_KLINE, 'K', 'k' },
- { OPER_XLINE, 'X', 'x' },
- { OPER_RESV, 'Q', 'q' },
- { OPER_GLOBKILL, 'O', 'o' },
- { OPER_LOCKILL, 'C', 'c' },
- { OPER_REMOTE, 'R', 'r' },
- { OPER_UNKLINE, 'U', 'u' },
- { OPER_REHASH, 'H', 'h' },
- { OPER_DIE, 'D', 'd' },
- { OPER_ADMIN, 'A', 'a' },
- { OPER_NICKS, 'N', 'n' },
- { OPER_OPERWALL, 'L', 'l' },
- { OPER_SPY, 'S', 's' },
- { OPER_INVIS, 'P', 'p' },
- { OPER_REMOTEBAN, 'B', 'b' },
- { OPER_MASSNOTICE, 'M', 'm' },
- { 0, '\0', '\0' }
+ { OPER_KLINE, "kline" },
+ { OPER_XLINE, "xline" },
+ { OPER_RESV, "resv" },
+ { OPER_GLOBKILL, "global_kill" },
+ { OPER_LOCKILL, "local_kill" },
+ { OPER_REMOTE, "remote" },
+ { OPER_UNKLINE, "unkline" },
+ { OPER_REHASH, "rehash" },
+ { OPER_DIE, "die" },
+ { OPER_ADMIN, "admin" },
+ { OPER_HADMIN, "hidden_admin" },
+ { OPER_NICKS, "nick_changes" },
+ { OPER_OPERWALL, "operwall" },
+ { OPER_SPY, "spy" },
+ { OPER_INVIS, "hidden_oper" },
+ { OPER_REMOTEBAN, "remoteban" },
+ { OPER_MASSNOTICE, "mass_notice" },
+ { 0, NULL }
};
const char *
get_oper_privs(int flags)
{
- static char buf[20];
+ static char buf[BUFSIZE];
char *p;
int i;
p = buf;
+ *p = '\0';
for(i = 0; oper_flagtable[i].flag; i++)
- {
- if(flags & oper_flagtable[i].flag)
- *p++ = oper_flagtable[i].has;
- else
- *p++ = oper_flagtable[i].hasnt;
- }
+ if (flags & oper_flagtable[i].flag)
+ {
+ if(*buf != '\0')
+ rb_strlcat(buf, ", ", sizeof(buf));
- *p = '\0';
+ rb_strlcat(buf, oper_flagtable[i].name, sizeof(buf));
+ }
return buf;
}
{
if(EmptyString(server_p->class_name))
{
- DupString(server_p->class_name, "default");
+ server_p->class_name = rb_strdup("default");
server_p->class = default_class;
return;
}
server_p->name);
rb_free(server_p->class_name);
- DupString(server_p->class_name, "default");
+ server_p->class_name = rb_strdup("default");
}
if(strchr(server_p->host, '*') || strchr(server_p->host, '?'))
}
void
-set_server_conf_autoconn(struct Client *source_p, char *name, int newval)
+set_server_conf_autoconn(struct Client *source_p, const char *name, int newval)
{
struct server_conf *server_p;
{
aconf = ptr->data;
- if(aconf->hold && aconf->hold <= CurrentTime)
+ if(aconf->hold && aconf->hold <= rb_current_time())
{
if(ConfigFileEntry.tkline_expire_notices)
sendto_realops_snomask(SNO_GENERAL, L_ALL,
{
aconf = ptr->data;
- if(aconf->hold && aconf->hold <= CurrentTime)
+ if(aconf->hold && aconf->hold <= rb_current_time())
{
if(ConfigFileEntry.tkline_expire_notices)
sendto_realops_snomask(SNO_GENERAL, L_ALL,
{
aconf = ptr->data;
- if(aconf->hold && aconf->hold <= CurrentTime)
+ if(aconf->hold && aconf->hold <= rb_current_time())
{
if(ConfigFileEntry.tkline_expire_notices)
sendto_realops_snomask(SNO_GENERAL, L_ALL,
if(irc_dictionary_find(nd_dict, name) != NULL)
return;
- nd = BlockHeapAlloc(nd_heap);
+ nd = rb_bh_alloc(nd_heap);
- strlcpy(nd->name, name, sizeof(nd->name));
- nd->expire = CurrentTime + ConfigFileEntry.nick_delay;
+ rb_strlcpy(nd->name, name, sizeof(nd->name));
+ nd->expire = rb_current_time() + ConfigFileEntry.nick_delay;
/* this list is ordered */
rb_dlinkAddTail(nd, &nd->lnode, &nd_list);
irc_dictionary_delete(nd_dict, nd->name);
rb_dlinkDelete(&nd->lnode, &nd_list);
- BlockHeapFree(nd_heap, nd);
+ rb_bh_free(nd_heap, nd);
}
void
/* this list is ordered - we can stop when we hit the first
* entry that doesnt expire..
*/
- if(nd->expire > CurrentTime)
+ if(nd->expire > rb_current_time())
return;
free_nd_entry(nd);
add_tgchange(const char *host)
{
tgchange *target;
- patricia_node_t *pnode;
+ rb_patricia_node_t *pnode;
if(find_tgchange(host))
return;
pnode->data = target;
target->pnode = pnode;
- DupString(target->ip, host);
- target->expiry = CurrentTime + (60*60*12);
+ target->ip = rb_strdup(host);
+ target->expiry = rb_current_time() + (60*60*12);
rb_dlinkAdd(target, &target->node, &tgchange_list);
}
tgchange *
find_tgchange(const char *host)
{
- patricia_node_t *pnode;
+ rb_patricia_node_t *pnode;
- if((pnode = match_exact_string(tgchange_tree, host)))
+ if((pnode = rb_match_exact_string(tgchange_tree, host)))
return pnode->data;
return NULL;