1 /* 2 * hash2.h: function header file for hash.c 3 * 4 * Written by Scott H Kilau 5 * 6 * CopyRight(c) 1997 7 * 8 * See the COPYRIGHT file, or do a HELP IRCII COPYRIGHT 9 * 10 * @(#)$Id: hash2.h 52 2008-06-14 06:45:05Z keaston $ 11 */ 12 13 #ifndef _HASH2_H_ 14 #define _HASH2_H_ 15 16 #include "struct.h" 17 #include "whowas.h" 18 #include "hash.h" 19 20 /* Generic List type hash list */ 21 void BX_add_name_to_genericlist (char *, HashEntry *, unsigned int); 22 List *BX_find_name_in_genericlist (char *, HashEntry *, unsigned int, int); 23 List *BX_next_namelist(HashEntry *, List *, unsigned int); 24 25 void BX_add_nicklist_to_channellist(NickList *, ChannelList *); 26 27 void BX_add_whowas_userhost_channel (WhowasList *, WhowasWrapList *); 28 29 WhowasList *BX_find_userhost_channel (char *, char *, int, WhowasWrapList *); 30 31 int BX_remove_oldest_whowas_hashlist (WhowasWrapList *, time_t, int); 32 33 WhowasList *BX_next_userhost(WhowasWrapList *, WhowasList *); 34 35 NickList *BX_find_nicklist_in_channellist(char *, ChannelList *, int); 36 NickList *BX_next_nicklist(ChannelList *, NickList *); 37 38 void clear_nicklist_hashtable(ChannelList *); 39 void show_nicklist_hashtable(ChannelList *); 40 41 void show_whowas_hashtable(WhowasWrapList *cptr, char *); 42 int show_wholeft_hashtable(WhowasWrapList *cptr, time_t ltime, int *total, int *hook, char *); 43 44 /* Determines if the Nick matches the nick!user@host mask given. */ 45 int nick_match(NickList *nick, char *mask); 46 47 /* Added to sort a hash'd nicklist and them remove the sorted list */ 48 NickList *BX_sorted_nicklist(ChannelList *, int); 49 void BX_clear_sorted_nicklist(NickList **); 50 51 /* Warning: These numeric values can be taken directly from scripts via 52 * the $channel() function - so BEWARE if you change them! */ 53 #define NICKSORT_NORMAL 0 54 #define NICKSORT_NONE 1 55 #define NICKSORT_NICK 2 56 #define NICKSORT_HOST 3 57 #define NICKSORT_TIME 4 58 #define NICKSORT_IP 5 59 #define NICKSORT_STAT 6 60 61 Flooding *BX_find_name_in_floodlist(char *, char *, HashEntry *, unsigned int, int); 62 Flooding *BX_add_name_to_floodlist(char *, char *, char *, HashEntry *, unsigned int); 63 64 unsigned long hash_nickname(char *, unsigned int); 65 66 67 #endif 68