ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/hybrid-ircservices-1/extern.h
Revision: 1211
Committed: Thu Aug 25 20:05:00 2011 UTC (15 years, 1 month ago) by michael
Content type: text/x-chdr
File size: 9281 byte(s)
Log Message:
- working towards getting rid of that 'E' shortcut

File Contents

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