ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/ermyth/include/tools.h
(Generate patch)

Comparing ermyth/include/tools.h (file contents):
Revision 1.3 by pippijn, Wed Jul 25 00:03:21 2007 UTC vs.
Revision 1.4 by pippijn, Tue Aug 28 17:08:07 2007 UTC

1/* 1/*
2 * Copyright © 2003-2004 E. Will et al. 2 * Copyright © 2003-2004 E. Will et al.
3 * Copyright © 2005-2006 Atheme Development Group 3 * Copyright © 2005-2006 Atheme Development Group
4 * Rights to this code are as documented in doc/pod/license.pod. 4 * Rights to this code are as documented in doc/pod/license.pod.
5 * 5 *
6 * Misc tools 6 * Misc tools
7 * 7 *
8 * $Id: tools.h,v 1.3 2007/07/25 00:03:21 pippijn Exp $ 8 * $Id: tools.h,v 1.4 2007/08/28 17:08:07 pippijn Exp $
9 */ 9 */
10 10
11#ifndef _TOOLS_H 11#ifndef _TOOLS_H
12#define _TOOLS_H 12#define _TOOLS_H
13 13
77 return; \ 77 return; \
78 } 78 }
79#endif 79#endif
80 80
81/* 81/*
82 * Same as soft_assert, but returns a given value if an assertion fails. 82 * Same as return_if_fail, but returns a given value if an assertion fails.
83 */ 83 */
84#ifdef __GNUC__ 84#ifdef __GNUC__
85#define return_val_if_fail(x, y) \ 85#define return_val_if_fail(x, y) \
86 if (!(x)) { \ 86 if (!(x)) { \
87 slog(LG_INFO, "%s(%d) [%s]: critical: Assertion '%s' failed.", \ 87 slog(LG_INFO, "%s(%d) [%s]: critical: Assertion '%s' failed.", \
113 113
114 void *miscellaneous; /* module defined data */ 114 void *miscellaneous; /* module defined data */
115 void (*callback_sent) (email_t *); /* callback on email send */ 115 void (*callback_sent) (email_t *); /* callback on email send */
116}; 116};
117 117
118E int sendemail (user_t *from, int type, myuser_t *mu, const char *param); 118E int sendemail (user_t *from, int type, myuser_t *mu, char const * const param);
119 119
120/* email types (meaning of param argument) */ 120/* email types (meaning of param argument) */
121#define EMAIL_REGISTER 1 /* register an account/nick (verification code) */ 121#define EMAIL_REGISTER 1 /* register an account/nick (verification code) */
122#define EMAIL_SENDPASS 2 /* send a password to a user (password) */ 122#define EMAIL_SENDPASS 2 /* send a password to a user (password) */
123#define EMAIL_SETEMAIL 3 /* change email address (verification code) */ 123#define EMAIL_SETEMAIL 3 /* change email address (verification code) */
124#define EMAIL_MEMO 4 /* emailed memos (memo text) */ 124#define EMAIL_MEMO 4 /* emailed memos (memo text) */
125#define EMAIL_SETPASS 5 /* send a password change key (verification code) */ 125#define EMAIL_SETPASS 5 /* send a password change key (verification code) */
126 126
127/* arc4random.c */ 127/* logstreams API --nenolod */
128#ifndef HAVE_ARC4RANDOM
129E void arc4random_stir (void);
130E void arc4random_addrandom (unsigned char *dat, int datlen);
131E unsigned int arc4random (void);
132#endif /* !HAVE_ARC4RANDOM */
133
134struct logfile_t; 128struct logfile_t;
135 129
136/* logstreams API --nenolod */
137typedef void (*log_write_func_t) (logfile_t *lf, const char *buf); 130typedef void (*log_write_func_t) (logfile_t *lf, char const * const buf);
138 131
139/* logger.c */ 132/* logger.c */
140struct logfile_t 133struct logfile_t : zero_initialised
141{ 134{
142 object_t parent; 135 object_t parent;
143 node_t node; 136 node_t node;
144 137
145 void *log_file; /* opaque: can either be mychan_t or FILE --nenolod */ 138 void *log_file; /* opaque: can either be mychan_t or FILE --nenolod */
150}; 143};
151 144
152E char *log_path; /* contains path to default log. */ 145E char *log_path; /* contains path to default log. */
153E int log_force; 146E int log_force;
154 147
155E logfile_t *logfile_new (const char *log_path_, unsigned int log_mask); 148E logfile_t *logfile_new (char const * const log_path_, unsigned int log_mask);
156E void logfile_write (logfile_t *lf, const char *buf); 149E void logfile_write (logfile_t *lf, char const * const buf);
157E void logfile_register (logfile_t *lf); 150E void logfile_register (logfile_t *lf);
158E void logfile_unregister (logfile_t *lf); 151E void logfile_unregister (logfile_t *lf);
159 152
160/* general */ 153/* general */
161#define LG_NONE 0x00000001 /* don't log */ 154#define LG_NONE 0x00000001 /* don't log */
191 184
192E void log_open (void); 185E void log_open (void);
193E void log_shutdown (void); 186E void log_shutdown (void);
194E bool log_debug_enabled (void); 187E bool log_debug_enabled (void);
195E void log_master_set_mask (unsigned int mask); 188E void log_master_set_mask (unsigned int mask);
196E void slog (unsigned int level, const char *fmt, ...); 189E void slog (unsigned int level, char const * const fmt, ...);
197E void logcommand (sourceinfo_t *si, int level, const char *fmt, ...); 190E void logcommand (sourceinfo_t *si, int level, char const * const fmt, ...);
198E void logcommand_user (service_t *svs, user_t *source, int level, const char *fmt, ...); 191E void logcommand_user (service_t *svs, user_t *source, int level, char const * const fmt, ...);
199E void logcommand_external (service_t *svs, const char *type, connection_t *source, const char *sourcedesc, myuser_t *login, int level, const char *fmt, ...); 192E void logcommand_external (service_t *svs, char const * const type, connection_t *source, char const * const sourcedesc, myuser_t *login, int level, char const * const fmt, ...);
200 193
201/* function.c */ 194/* function.c */
202/* misc string stuff */ 195/* misc string stuff */
203E char *gen_pw (int sz); 196E char *gen_pw (int sz);
204E void tb2sp (char *line); 197E void tb2sp (char *line);
205E char *replace (char *s, int size, const char *oldstr, const char *newstr); 198E char *replace (char *s, int size, char const * const oldstr, char const * const newstr);
206E char *itoa (int num); 199E char *itoa (int num);
207E int validemail (char *email); 200E int validemail (char *email);
208E bool validhostmask (char *host); 201E bool validhostmask (char *host);
209E char *sbytes (float x); 202E char const *sbytes (float x);
210E float bytes (float x); 203E float bytes (float x);
211 204
212E unsigned long makekey (void); 205E unsigned long makekey (void);
213
214/* the hash function */
215E unsigned int shash (const unsigned char *text);
216 206
217/* time stuff */ 207/* time stuff */
218#if HAVE_GETTIMEOFDAY 208#if HAVE_GETTIMEOFDAY
219E void s_time (struct timeval *sttime); 209E void s_time (struct timeval *sttime);
220E void e_time (struct timeval sttime, struct timeval *ttime); 210E void e_time (struct timeval sttime, struct timeval *ttime);
238/* tokenize.c */ 228/* tokenize.c */
239E int sjtoken (char *message, char delimiter, char **parv, int limit = 256); 229E int sjtoken (char *message, char delimiter, char **parv, int limit = 256);
240E int tokenize (char *message, char **parv); 230E int tokenize (char *message, char **parv);
241 231
242/* ubase64.c */ 232/* ubase64.c */
243E const char *uinttobase64 (char *buf, uint64_t v, int64_t count); 233E char const * const uinttobase64 (char *buf, uint64_t v, int64_t count);
244E unsigned int base64touint (char *buf); 234E unsigned int base64touint (char *buf);
245 235
246#endif 236#endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines