recieved; last_ctcp_reply is the last reply recieved (used by /RELCR etc.) All of the /WI* commands now do a /WII style full whois request. git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@88 13b04d17-f746-0410-82c6-800466cd88b0
236 lines
6.5 KiB
C
236 lines
6.5 KiB
C
/*
|
|
* 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_ctcp_reply[2];
|
|
extern LastMsg last_sent_ctcp[2];
|
|
|
|
|
|
|
|
void update_stats (int, NickList *, ChannelList *, int);
|
|
int check_split (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
|