/* * Copyright Colten Edwards 1997. * various miscellaneous routines needed for irc functions */ #ifndef _misc_h #define _misc_h #define KICKLIST 0x01 #define LEAVELIST 0x02 #define JOINLIST 0x03 #define CHANNELSIGNOFFLIST 0x04 #define PUBLICLIST 0x05 #define PUBLICOTHERLIST 0x06 #define PUBLICNOTICELIST 0x07 #define NOTICELIST 0x08 #define TOPICLIST 0x09 #define MODEOPLIST 0x0a #define MODEDEOPLIST 0x0b #define MODEBANLIST 0x0c #define MODEUNBANLIST 0x0d #define NICKLIST 0x0e #define MODEHOPLIST 0x0f #define MODEDEHOPLIST 0x10 #define MODEEBANLIST 0x11 #define MODEUNEBANLIST 0x12 enum color_attributes { BLACK = 0, BLUE, GREEN, CYAN, RED, MAGENTA, YELLOW, WHITE, BLACKB, BLUEB, GREENB, CYANB, REDB, MAGENTAB, YELLOWB, WHITEB,NO_COLOR, BACK_BLACK, BACK_RED, BACK_GREEN, BACK_YELLOW, BACK_BLUE, BACK_MAGENTA, BACK_CYAN, BACK_WHITE, BACK_BBLACK, BACK_BRED, BACK_BGREEN, BACK_BYELLOW, BACK_BBLUE, BACK_BMAGENTA, BACK_BCYAN, BACK_BWHITE, REVERSE_COLOR, BOLD_COLOR, BLINK_COLOR, UNDERLINE_COLOR }; #define DONT_CARE 3 #define NEED_OP 1 #define NO_OP 0 extern char *color_str[]; extern int split_watch; void clear_link (irc_server **); extern irc_server *tmplink, *server_last; #ifndef BITCHX_LITE #define MAX_LAST_MSG 10 #else #define MAX_LAST_MSG 2 #endif extern LastMsg last_msg[MAX_LAST_MSG+1]; extern LastMsg last_dcc[MAX_LAST_MSG+1]; extern LastMsg last_sent_dcc[MAX_LAST_MSG+1]; extern LastMsg last_notice[MAX_LAST_MSG+1]; extern LastMsg last_servermsg[MAX_LAST_MSG+1]; extern LastMsg last_sent_msg[MAX_LAST_MSG+1]; extern LastMsg last_sent_notice[MAX_LAST_MSG+1]; extern LastMsg last_sent_topic[2]; extern LastMsg last_sent_wall[2]; extern LastMsg last_topic[2]; extern LastMsg last_wall[MAX_LAST_MSG+1]; extern LastMsg last_invite_channel[2]; extern LastMsg last_ctcp[2]; extern LastMsg last_sent_ctcp[2]; void update_stats (int, char *, NickList *, ChannelList *, int); int check_split (char *, char *, char *); void BX_userage (char *, char *); void stats_k_grep_end (void); char *stripansicodes (const unsigned char *); char *stripansi (unsigned char *); NickTab *BX_gettabkey (int, int, char *); void BX_addtabkey (char *, char *, int); void clear_array (NickTab **, char *); char *BX_random_str (int, int); int check_serverlag (void); void auto_away (unsigned long); ChannelList * BX_prepare_command (int *, char *, int); int rename_file (char *, char **); void putlog (int, ...); void add_mode_buffer ( char *, int); void flush_mode (ChannelList *); void flush_mode_all (ChannelList *); void add_mode (ChannelList *, char *, int, char *, char *, int); int delay_flush_all (void *, char *); char *clear_server_flags (char *); char *ban_it (char *, char *, char *, char *); void log_toggle (int, ChannelList *); char *cluster (char *); int caps_fucknut (register unsigned char *); void do_reconnect (char *); int are_you_opped (char *); void error_not_opped (char *); char *get_reason (char *, char *); char *get_realname(char *); char *get_signoffreason (char *); int isme (char *); char *BX_convert_output_format (const char *, const char *, ...); char *convert_output_format2 (const char *); void add_last_type (LastMsg *, int, char *, char *, char *, char *); int check_last_type (LastMsg *, int, char *, char *); int matchmcommand (char *, int); char *convert_time (time_t); char *BX_make_channel(char *); int timer_unban (void *, char *); void check_server_connect (int); char *country(char *); int do_newuser (char *, char *, char *); int char_fucknut (register unsigned char *, char, int); BanList *ban_is_on_channel(register char *, register ChannelList *); BanList *eban_is_on_channel(register char *, register ChannelList *); void check_orig_nick(char *); char *do_nslookup (char *, char *, char *, char *, int, void (*func)(), char *); void set_nslookupfd(fd_set *); long print_nslookup(fd_set *); void ns_init(void); void auto_nslookup(); int freadln(FILE *, char *); void BX_close_socketread(int); int BX_add_socketread(int, int, unsigned long, char *, void (*func_read)(int), void (*func_write)(int)); int BX_check_socket(int); void set_socket_read (fd_set *, fd_set *); void scan_sockets (fd_set *, fd_set *); void read_clonelist(int); void read_clonenotify(int); void read_netfinger(int); int BX_write_sockets(int, unsigned char *, int, int); int BX_read_sockets(int, unsigned char *, int); unsigned long BX_set_socketflags(int, unsigned long); void *BX_get_socketinfo(int); void BX_set_socketinfo(int, void *); unsigned long BX_get_socketflags(int); char *get_socketserver(int); SocketList *BX_get_socket(int); void BX_add_sockettimeout(int, time_t, void *); int BX_get_max_fd(void); int BX_set_socketwrite(int); #ifdef GUI void scan_gui(fd_set *); #endif #ifdef WANT_NSLOOKUP /* * alib.h (C)opyright 1992 Darren Reed. */ #define ARES_INITLIST 1 #define ARES_CALLINIT 2 #define ARES_INITSOCK 4 #define ARES_INITDEBG 8 #define ARES_INITCACH 16 #define MAXPACKET 1024 #define MAXALIASES 35 #define MAXADDRS 35 #define RES_CHECKPTR 0x0400 struct hent { char *h_name; /* official name of host */ char *h_aliases[MAXALIASES]; /* alias list */ int h_addrtype; /* host address type */ int h_length; /* length of address */ /* list of addresses from name server */ struct in_addr h_addr_list[MAXADDRS]; #define h_addr h_addr_list[0] /* address, for backward compatiblity */ }; struct resinfo { char *ri_ptr; int ri_size; }; struct reslist { int re_id; char re_type; char re_retries; char re_resend; /* send flag. 0 == dont resend */ char re_sends; char re_srch; int re_sent; u_long re_sentat; u_long re_timeout; struct in_addr re_addr; struct resinfo re_rinfo; struct hent re_he; struct reslist *re_next, *re_prev; char re_name[65]; char *nick; char *host; char *user; char *channel; char *command; int server; void (*func)(); }; struct hostent *ar_answer(char *, int, void (*func)(struct reslist *) ); void ar_close(void); int ar_delete(char *, int); int ar_gethostbyname(char *, char *, int, char *, char *, char *, char *, int, void (*func)(), char *); int ar_gethostbyaddr(char *, char *, int, char *, char *, char *, char *, int, void (*func)(), char *); int ar_init(int); int ar_open(void); long ar_timeout(time_t, char *, int, void (*func)(struct reslist *) ); void ar_rename_nick(char *, char *, int); #endif #ifndef MIN #define MIN(a,b) ((a) > (b) ? (b) : (a)) #endif #define getrandom(min, max) ((rand() % (int)(((max)+1) - (min))) + (min)) extern char *auto_str; #endif