#include "balloc.h"
#include "event.h"
#include "sprintf_irc.h"
+#include "irc_dictionary.h"
dlink_list shared_conf_list;
dlink_list cluster_conf_list;
{ 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' },
return NULL;
}
+struct ConfItem *
+find_xline_mask(const char *gecos)
+{
+ struct ConfItem *aconf;
+ dlink_node *ptr;
+
+ DLINK_FOREACH(ptr, xline_conf_list.head)
+ {
+ aconf = ptr->data;
+
+ if(!irccmp(aconf->name, gecos))
+ return aconf;
+ }
+
+ return NULL;
+}
+
struct ConfItem *
find_nick_resv(const char *name)
{
return NULL;
}
+struct ConfItem *
+find_nick_resv_mask(const char *name)
+{
+ struct ConfItem *aconf;
+ dlink_node *ptr;
+
+ DLINK_FOREACH(ptr, resv_conf_list.head)
+ {
+ aconf = ptr->data;
+
+ if(!irccmp(aconf->name, name))
+ return aconf;
+ }
+
+ return NULL;
+}
+
/* clean_resv_nick()
*
* inputs - nick
return(dlink_list_length(&nd_list));
}
-
void
add_nd_entry(const char *name)
{
struct nd_entry *nd;
- if(hash_find_nd(name) != NULL)
+ if(irc_dictionary_find(nd_dict, name) != NULL)
return;
nd = BlockHeapAlloc(nd_heap);
/* this list is ordered */
dlinkAddTail(nd, &nd->lnode, &nd_list);
- add_to_nd_hash(name, nd);
+
+ irc_dictionary_add(nd_dict, nd->name, nd);
}
void
free_nd_entry(struct nd_entry *nd)
{
+ irc_dictionary_delete(nd_dict, nd->name);
+
dlinkDelete(&nd->lnode, &nd_list);
- dlinkDelete(&nd->hnode, &ndTable[nd->hashv]);
BlockHeapFree(nd_heap, nd);
}