ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/hybrid-ircservices-1/extern.h
Revision: 1279
Committed: Tue Jan 31 13:12:55 2012 UTC (12 years, 1 month ago) by michael
Content type: text/x-chdr
File size: 9023 byte(s)
Log Message:
- Removed vsnprintf.c

File Contents

# Content
1 /* General prototypes and external variable declarations.
2 *
3 * IRC Services is copyright (c) 1996-2009 Andrew Church.
4 * E-mail: <achurch@achurch.org>
5 * Parts written by Andrew Kempe and others.
6 * This program is free but copyrighted software; see the file GPL.txt for
7 * details.
8 */
9
10 #ifndef EXTERN_H
11 #define EXTERN_H
12
13
14 #define E extern /* This is used in other files as well */
15
16
17 /**** actions.c ****/
18
19 extern int actions_init(int, char **);
20 extern void actions_cleanup(void);
21 extern int bad_password(const char *, User *, const char *);
22 extern void clear_channel(Channel *, int, const void *);
23 extern const char *set_clear_channel_sender(const char *);
24 extern void kill_user(const char *, const char *, const char *);
25 extern void set_topic(const char *, Channel *, const char *,
26 const char *, time_t);
27 extern void set_cmode(const char *, Channel *, ...);
28
29
30 /**** channels.c ****/
31
32 extern Channel *get_channel(const char *);
33 extern Channel *first_channel(void);
34 extern Channel *next_channel(void);
35
36 extern int channel_init(int, char **);
37 extern void channel_cleanup(void);
38 extern void get_channel_stats(long *, long *);
39
40 extern Channel *chan_adduser(User *, const char *, int32);
41 extern void chan_deluser(User *, Channel *);
42 extern int chan_has_ban(const char *, const char *);
43
44 extern void do_cmode(const char *, int, char **);
45 extern void do_topic(const char *, int, char **);
46
47
48 /**** compat.c ****/
49
50 #if !HAVE_HSTRERROR
51 # undef hstrerror
52 extern const char *hstrerror(int h_errnum);
53 #endif
54
55 #if !HAVE_STRTOK
56 # undef strtok
57 extern char *strtok(char *str, const char *delim);
58 #endif
59 #if !HAVE_STRICMP && !HAVE_STRCASECMP
60 # undef stricmp
61 # undef strnicmp
62 extern int stricmp(const char *s1, const char *s2);
63 extern int strnicmp(const char *s1, const char *s2, size_t len);
64 #endif
65 #if !HAVE_STRDUP && !MEMCHECKS
66 # undef strdup
67 extern char *strdup(const char *s);
68 #endif
69 #if !HAVE_STRSPN
70 # undef strspn
71 # undef strcspn
72 extern size_t strspn(const char *s, const char *accept);
73 extern size_t strcspn(const char *s, const char *reject);
74 #endif
75 #if !HAVE_STRERROR
76 # undef strerror
77 extern char *strerror(int errnum);
78 #endif
79 #if !HAVE_STRSIGNAL
80 # undef strsignal
81 extern char *strsignal(int signum);
82 #endif
83
84
85 /**** init.c ****/
86
87 extern char **LoadModules;
88 extern int LoadModules_count;
89 extern char **LoadLanguageText;
90 extern int LoadLanguageText_count;
91
92 extern char *RemoteServer;
93 extern int32 RemotePort;
94 extern char *RemotePassword;
95 extern char *LocalHost;
96 extern int32 LocalPort;
97
98 extern char *ServerName;
99 extern char *ServerDesc;
100 extern char *ServiceUser;
101 extern char *ServiceHost;
102
103 extern char *LogFilename;
104 extern char PIDFilename[PATH_MAX + 1];
105 extern char *MOTDFilename;
106 extern char *LockFilename;
107
108 extern int16 DefTimeZone;
109
110 extern int NoBouncyModes;
111 extern int NoSplitRecovery;
112 extern int StrictPasswords;
113 extern int NoAdminPasswordCheck;
114 extern int32 BadPassLimit;
115 extern time_t BadPassTimeout;
116 extern int32 BadPassWarning;
117 extern int32 IgnoreDecay;
118 extern double IgnoreThreshold;
119 extern time_t UpdateTimeout;
120 extern time_t WarningTimeout;
121 extern int32 ReadTimeout;
122 extern int32 TimeoutCheck;
123 extern time_t PingFrequency;
124 extern int32 MergeChannelModes;
125 extern int32 TotalNetBufferSize;
126 extern int32 NetBufferSize;
127 extern int32 NetBufferLimitInactive;
128 extern int32 NetBufferLimitIgnore;
129
130 extern char *EncryptionType;
131 extern char *GuestNickPrefix;
132 extern char **RejectEmail;
133 extern int RejectEmail_count;
134 extern int32 ListMax;
135 extern int LogMaxUsers;
136 extern int EnableGetpass;
137 extern int WallAdminPrivs;
138
139 extern int introduce_user(const char *user);
140 extern int init(int ac, char **av);
141 extern int reconfigure(void);
142 extern void cleanup(void);
143
144
145 /**** ignore.c ****/
146
147 extern void ignore_init(User *);
148 extern void ignore_update(User *, uint32);
149
150
151 /**** main.c ****/
152
153 extern const char *services_dir;
154 extern int debug;
155 extern int readonly;
156 extern int nofork;
157 extern int noexpire;
158 extern int noakill;
159 extern int forceload;
160 extern int encrypt_all;
161
162 extern int linked;
163 extern int quitting;
164 extern int delayed_quit;
165 extern int restart;
166 extern char quitmsg[BUFSIZE];
167 extern char inbuf[BUFSIZE];
168 extern Socket *servsock;
169 extern int save_data;
170 extern time_t start_time;
171 extern int openlog_failed, openlog_errno;
172 extern int cb_connect;
173 extern int cb_save_complete;
174
175 extern void connect_callback(Socket *, void *);
176 extern void disconnect_callback(Socket *, void *);
177 extern void readfirstline_callback(Socket *, void *);
178 extern void readline_callback(Socket *, void *);
179
180 extern int lock_data(void);
181 extern int is_data_locked(void);
182 extern int unlock_data(void);
183 extern void save_data_now(void);
184
185
186 /**** messages.c ****/
187
188 extern int allow_ignore;
189 /* rest is in messages.h */
190
191
192 /**** misc.c ****/
193
194 extern unsigned char irc_lowertable[256];
195 extern unsigned char irc_tolower(char c);
196 #define irc_tolower(c) (irc_lowertable[(uint8)(c)]) /* for speed */
197 extern int irc_stricmp(const char *s1, const char *s2);
198 extern int irc_strnicmp(const char *s1, const char *s2, int max);
199 extern char *strscpy(char *d, const char *s, size_t len);
200 extern char *strmove(char *d, const char *s);
201 extern char *stristr(const char *s1, const char *s2);
202 extern char *strupper(char *s);
203 extern char *strlower(char *s);
204 extern char *strnrepl(char *s, int32 size, const char *old, const char *new);
205 extern char *strtok_remaining(void);
206 /* strbcpy(): strscpy() for a char array destination; uses sizeof(d) as
207 * the size to copy */
208 #define strbcpy(d,s) strscpy((d), (s), sizeof(d))
209
210 extern char *merge_args(int argc, char **argv);
211
212 extern int match_wild(const char *pattern, const char *str);
213 extern int match_wild_nocase(const char *pattern, const char *str);
214
215 extern unsigned char valid_nick_table[0x10000];
216 extern unsigned char valid_chan_table[0x10000];
217 extern int valid_nick(const char *str);
218 extern int valid_chan(const char *str);
219 extern int valid_domain(const char *str);
220 extern int valid_email(const char *str);
221 extern int valid_url(const char *str);
222 extern int rejected_email(const char *email);
223
224 extern uint32 time_msec(void);
225 extern time_t strtotime(const char *str, char **endptr);
226 extern int dotime(const char *s);
227
228 extern uint8 *pack_ip(const char *ipaddr);
229 extern char *unpack_ip(const uint8 * ip);
230 extern uint8 *pack_ip6(const char *ipaddr);
231 extern char *unpack_ip6(const uint8 * ip);
232
233 extern int encode_base64(const void *in, int insize, char *out, int outsize);
234 extern int decode_base64(const char *in, void *out, int outsize);
235
236 typedef int (*range_callback_t) (int num, va_list args);
237 extern int process_numlist(const char *numstr, int *count_ret,
238 range_callback_t callback, ...);
239
240 extern long atolsafe(const char *s, long min, long max);
241
242
243 /**** process.c ****/
244
245 extern int split_buf(char *buf, char ***argv, int colon_special);
246 extern int process_init(int ac, char **av);
247 extern void process_cleanup(void);
248 extern void process(void);
249
250
251 /**** servers.c ****/
252
253 extern Server *get_server(const char *servername);
254 extern Server *first_server(void);
255 extern Server *next_server(void);
256
257 extern int server_init(int ac, char **av);
258 extern void server_cleanup(void);
259 extern void get_server_stats(long *nservers, long *memuse);
260 extern void do_server(const char *source, int ac, char **av);
261 extern void do_squit(const char *source, int ac, char **av);
262
263
264 /**** signals.c ****/
265
266 extern void init_signals(void);
267 extern void do_sigsetjmp(void *bufptr); /* actually a sigjmp_buf * */
268 extern void enable_signals(void);
269 extern void disable_signals(void);
270
271
272 /**** users.c ****/
273
274 extern int32 usercnt, opcnt;
275
276 extern User *get_user(const char *);
277 extern User *first_user(void);
278 extern User *next_user(void);
279
280 extern void quit_user(User *, const char *, int);
281 extern int user_init(int, char **);
282 extern void user_cleanup(void);
283 extern void get_user_stats(long *, long *);
284
285 extern int do_nick(const char *, int, char **);
286 extern void do_join(const char *, int, char **);
287 extern void do_part(const char *, int, char **);
288 extern void do_kick(const char *, int, char **);
289 extern void do_umode(const char *, int, char **);
290 extern void do_quit(const char *, int, char **);
291 extern void do_kill(const char *, int, char **);
292
293 extern Channel *join_channel(User *, const char *, int32);
294 extern int part_channel(User *, const char *, int,
295 const char *, const char *);
296 extern void part_all_channels(User *);
297
298 extern int is_oper(const User *);
299 extern Channel *is_on_chan(const User *, const char *);
300 extern int is_chanop(const User *, const char *);
301 extern int is_voiced(const User *, const char *);
302
303 extern int match_usermask(const char *, const User *);
304 extern void split_usermask(const char *, char **, char **,
305 char **);
306 extern char *create_mask(const User *, int);
307
308 extern char *make_guest_nick(void);
309 extern int is_guest_nick(const char *);
310 #endif /* EXTERN_H */
311
312 /*
313 * Local variables:
314 * c-file-style: "stroustrup"
315 * c-file-offsets: ((case-label . *) (statement-case-intro . *))
316 * indent-tabs-mode: nil
317 * End:
318 *
319 * vim: expandtab shiftwidth=4:
320 */