Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
BitchX
GitHub Repository: BitchX/BitchX1.3
Path: blob/master/include/misc.h
1069 views
1
/*
2
* Copyright Colten Edwards 1997.
3
* various miscellaneous routines needed for irc functions
4
*/
5
6
#ifndef _misc_h
7
#define _misc_h
8
9
#define KICKLIST 0x01
10
#define LEAVELIST 0x02
11
#define JOINLIST 0x03
12
#define CHANNELSIGNOFFLIST 0x04
13
#define PUBLICLIST 0x05
14
#define PUBLICOTHERLIST 0x06
15
#define PUBLICNOTICELIST 0x07
16
#define NOTICELIST 0x08
17
#define TOPICLIST 0x09
18
#define MODEOPLIST 0x0a
19
#define MODEDEOPLIST 0x0b
20
#define MODEBANLIST 0x0c
21
#define MODEUNBANLIST 0x0d
22
#define NICKLIST 0x0e
23
#define MODEHOPLIST 0x0f
24
#define MODEDEHOPLIST 0x10
25
#define MODEEBANLIST 0x11
26
#define MODEUNEBANLIST 0x12
27
28
enum color_attributes {
29
BLACK = 0, BLUE, GREEN, CYAN, RED, MAGENTA, YELLOW, WHITE,
30
BLACKB, BLUEB, GREENB, CYANB, REDB, MAGENTAB, YELLOWB, WHITEB,NO_COLOR,
31
BACK_BLACK, BACK_RED, BACK_GREEN, BACK_YELLOW,
32
BACK_BLUE, BACK_MAGENTA, BACK_CYAN, BACK_WHITE,
33
BACK_BBLACK, BACK_BRED, BACK_BGREEN, BACK_BYELLOW,
34
BACK_BBLUE, BACK_BMAGENTA, BACK_BCYAN, BACK_BWHITE,
35
REVERSE_COLOR, BOLD_COLOR, BLINK_COLOR, UNDERLINE_COLOR
36
};
37
38
/* prepare_command() flags */
39
#define PC_SILENT 3
40
#define PC_TOPIC 2
41
#define NEED_OP 1
42
#define NO_OP 0
43
44
extern char *color_str[];
45
extern int split_watch;
46
void clear_link (irc_server **);
47
extern irc_server *tmplink, *server_last;
48
49
#ifndef BITCHX_LITE
50
#define MAX_LAST_MSG 10
51
#else
52
#define MAX_LAST_MSG 2
53
#endif
54
55
extern LastMsg last_msg[MAX_LAST_MSG+1];
56
extern LastMsg last_dcc[MAX_LAST_MSG+1];
57
extern LastMsg last_sent_dcc[MAX_LAST_MSG+1];
58
extern LastMsg last_notice[MAX_LAST_MSG+1];
59
extern LastMsg last_servermsg[MAX_LAST_MSG+1];
60
extern LastMsg last_sent_msg[MAX_LAST_MSG+1];
61
extern LastMsg last_sent_notice[MAX_LAST_MSG+1];
62
extern LastMsg last_sent_topic[2];
63
extern LastMsg last_sent_wall[2];
64
extern LastMsg last_topic[2];
65
extern LastMsg last_wall[MAX_LAST_MSG+1];
66
extern LastMsg last_invite_channel[2];
67
extern LastMsg last_ctcp[2];
68
extern LastMsg last_ctcp_reply[2];
69
extern LastMsg last_sent_ctcp[2];
70
71
72
void put_user (const NickList *, const char *);
73
void update_stats (int, NickList *, ChannelList *, int);
74
int check_split (char *, char *);
75
void BX_userage (char *, char *);
76
void stats_k_grep_end (void);
77
char *stripansicodes (const char *);
78
char *stripansi (unsigned char *);
79
NickTab *BX_gettabkey (int, int, char *);
80
void BX_addtabkey (char *, char *, int);
81
void clear_array (NickTab **, char *);
82
char *BX_random_str (int, int);
83
int check_serverlag (void);
84
void check_auto_away (time_t);
85
ChannelList * BX_prepare_command (int *, char *, int);
86
int rename_file (char *, char **);
87
void putlog (int, ...);
88
89
void add_mode_buffer ( char *, int);
90
void flush_mode (ChannelList *);
91
void flush_mode_all (ChannelList *);
92
void add_mode (ChannelList *, char *, int, char *, char *, int);
93
int delay_flush_all (void *, char *);
94
char *clear_server_flags (char *);
95
char *ban_it (char *, char *, char *, char *);
96
97
void log_toggle (int, ChannelList *);
98
99
char *cluster (char *);
100
int caps_fucknut (register unsigned char *);
101
102
void do_reconnect (char *);
103
104
int are_you_opped (char *);
105
void error_not_opped (const char *);
106
107
char *get_reason (char *, char *);
108
char *get_realname(char *);
109
char *get_signoffreason (char *);
110
int isme (char *);
111
112
char *BX_convert_output_format (const char *, const char *, ...);
113
char *convert_output_format2 (const char *);
114
void add_last_type (LastMsg *, int, char *, char *, char *, char *);
115
int check_last_type (LastMsg *, int, char *, char *);
116
int matchmcommand (char *, int);
117
char *convert_time (time_t);
118
char *BX_make_channel(char *);
119
120
121
int timer_unban (void *, char *);
122
void check_server_connect (int);
123
const char *country(const char *);
124
int do_newuser (char *, char *, char *);
125
int char_fucknut (register unsigned char *, char, int);
126
BanList *ban_is_on_channel(register char *, register ChannelList *);
127
BanList *eban_is_on_channel(register char *, register ChannelList *);
128
void check_orig_nick(char *);
129
130
char *do_nslookup (char *, char *, char *, char *, int, void (*func)(), char *);
131
void set_nslookupfd(fd_set *);
132
long print_nslookup(fd_set *);
133
void auto_nslookup();
134
int freadln(FILE *, char *);
135
136
137
void BX_close_socketread(int);
138
int BX_add_socketread(int, int, unsigned long, char *, void (*func_read)(int), void (*func_write)(int));
139
int BX_check_socket(int);
140
void set_socket_read (fd_set *, fd_set *);
141
void scan_sockets (fd_set *, fd_set *);
142
void read_clonelist(int);
143
void read_clonenotify(int);
144
void read_netfinger(int);
145
int BX_write_sockets(int, unsigned char *, int, int);
146
int BX_read_sockets(int, unsigned char *, int);
147
unsigned long BX_set_socketflags(int, unsigned long);
148
void *BX_get_socketinfo(int);
149
void BX_set_socketinfo(int, void *);
150
unsigned long BX_get_socketflags(int);
151
char *get_socketserver(int);
152
SocketList *BX_get_socket(int);
153
void BX_add_sockettimeout(int, time_t, void *);
154
int BX_get_max_fd(void);
155
int BX_set_socketwrite(int);
156
157
#ifdef GUI
158
void scan_gui(fd_set *);
159
#endif
160
161
#ifdef WANT_NSLOOKUP
162
/*
163
* alib.h (C)opyright 1992 Darren Reed.
164
*/
165
#define ARES_INITLIST 1
166
#define ARES_CALLINIT 2
167
#define ARES_INITSOCK 4
168
#define ARES_INITDEBG 8
169
#define ARES_INITCACH 16
170
171
#define MAXPACKET 1024
172
#define MAXALIASES 35
173
#define MAXADDRS 35
174
175
#define RES_CHECKPTR 0x0400
176
177
struct hent {
178
char *h_name; /* official name of host */
179
char *h_aliases[MAXALIASES]; /* alias list */
180
int h_addrtype; /* host address type */
181
int h_length; /* length of address */
182
/* list of addresses from name server */
183
struct in_addr h_addr_list[MAXADDRS];
184
#define h_addr h_addr_list[0] /* address, for backward compatiblity */
185
};
186
187
struct resinfo {
188
char *ri_ptr;
189
int ri_size;
190
};
191
192
struct reslist {
193
int re_id;
194
char re_type;
195
char re_retries;
196
char re_resend; /* send flag. 0 == dont resend */
197
char re_sends;
198
char re_srch;
199
int re_sent;
200
u_long re_sentat;
201
u_long re_timeout;
202
struct in_addr re_addr;
203
struct resinfo re_rinfo;
204
struct hent re_he;
205
struct reslist *re_next, *re_prev;
206
char re_name[65];
207
char *nick;
208
char *host;
209
char *user;
210
char *channel;
211
char *command;
212
int server;
213
void (*func)();
214
};
215
216
struct hostent *ar_answer(char *, int, void (*func)(struct reslist *) );
217
void ar_close(void);
218
int ar_delete(char *, int);
219
int ar_gethostbyname(char *, char *, int, char *, char *, char *, char *, int, void (*func)(), char *);
220
int ar_gethostbyaddr(char *, char *, int, char *, char *, char *, char *, int, void (*func)(), char *);
221
int ar_init(int);
222
int ar_open(void);
223
long ar_timeout(time_t, char *, int, void (*func)(struct reslist *) );
224
void ar_rename_nick(char *, char *, int);
225
#endif
226
227
#ifndef MIN
228
#define MIN(a,b) ((a) > (b) ? (b) : (a))
229
#endif
230
231
#define getrandom(min, max) ((rand() % (int)(((max)+1) - (min))) + (min))
232
233
234
extern char *auto_str;
235
236
#endif
237
238