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.7 by pippijn, Thu Aug 30 19:56:20 2007 UTC vs.
Revision 1.8 by pippijn, Sun Sep 9 20:05:51 2007 UTC

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.7 2007/08/30 19:56:20 pippijn Exp $ 8 * $Id: tools.h,v 1.8 2007/09/09 20:05:51 pippijn Exp $
9 */ 9 */
10 10
11#ifndef _TOOLS_H 11#ifndef _TOOLS_H
12#define _TOOLS_H 12#define _TOOLS_H
13 13
14#include <object.h> 14#include <object.h>
15#include <dlink.h>
16 15
17/** 16/**
18 * Warns operators and console users that an error occurred 17 * Warns operators and console users that an error occurred
19 */ 18 */
20#define warn(msg) \ 19#define warn(msg) \
88 EMAIL_SETEMAIL = 3, /* change email address (verification code) */ 87 EMAIL_SETEMAIL = 3, /* change email address (verification code) */
89 EMAIL_MEMO = 4, /* emailed memos (memo text) */ 88 EMAIL_MEMO = 4, /* emailed memos (memo text) */
90 EMAIL_SETPASS = 5 /* send a password change key (verification code) */ 89 EMAIL_SETPASS = 5 /* send a password change key (verification code) */
91}; 90};
92 91
93/* logstreams API --nenolod */
94struct logfile_t;
95
96typedef void (*log_write_func_t) (logfile_t *lf, char const * const buf);
97
98/* logger.c */
99struct logfile_t : zero_initialised
100{
101 object_t parent;
102 node_t node;
103
104 void *log_file; /* opaque: can either be mychan_t or FILE --nenolod */
105 char *log_path;
106 unsigned int log_mask;
107
108 log_write_func_t write_func;
109};
110
111E char *log_path; /* contains path to default log. */
112E int log_force;
113
114E logfile_t *logfile_new (char const * const log_path_, unsigned int log_mask);
115E void logfile_write (logfile_t *lf, char const * const buf);
116E void logfile_register (logfile_t *lf);
117E void logfile_unregister (logfile_t *lf);
118
119enum loglevel
120{
121 /* general */
122 LG_NONE = 1 << 0, /* don't log */
123 LG_INFO = 1 << 1, /* log general info */
124 LG_ERROR = 1 << 2, /* log real important stuff */
125 LG_IOERROR = 1 << 3, /* log I/O errors. */
126 LG_DEBUG = 1 << 4, /* log debugging stuff */
127 /* commands */
128 LG_CMD_ADMIN = 1 << 5, /* oper-only commands */
129 LG_CMD_REGISTER = 1 << 6, /* register/drop */
130 LG_CMD_SET = 1 << 7, /* change properties of static data */
131 LG_CMD_DO = 1 << 8, /* change properties of dynamic data */
132 LG_CMD_LOGIN = 1 << 9, /* login/logout */
133 LG_CMD_GET = 1 << 10, /* query information */
134 /* other */
135 LG_NETWORK = 1 << 11, /* netsplit/netjoin */
136 LG_WALLOPS = 1 << 12, /* NOTYET wallops from opers/other servers */
137 LG_RAWDATA = 1 << 13, /* all data sent/received */
138 LG_REGISTER = 1 << 14, /* all registration related messages */
139 LG_WARN1 = 1 << 15, /* NOTYET messages formerly walloped */
140 LG_WARN2 = 1 << 16, /* NOTYET messages formerly snooped */
141
142 LG_CMD_ALL = LG_CMD_ADMIN | LG_CMD_REGISTER | LG_CMD_SET | LG_CMD_DO | LG_CMD_LOGIN | LG_CMD_GET,
143 LG_ALL = 1 << 31 - 1,/* XXX cannot use bit 31 as it would then be unequal to TOKEN_UNMATCHED */
144
145 /* aliases for use with logcommand() */
146 CMDLOG_ADMIN = LG_CMD_ADMIN,
147 CMDLOG_REGISTER = LG_CMD_REGISTER | LG_REGISTER,
148 CMDLOG_SET = LG_CMD_SET,
149 CMDLOG_DO = LG_CMD_DO,
150 CMDLOG_LOGIN = LG_CMD_LOGIN,
151 CMDLOG_GET = LG_CMD_GET
152};
153
154E void log_open (void);
155E void log_shutdown (void);
156E bool log_debug_enabled (void);
157E void log_master_set_mask (unsigned int mask);
158E void slog (unsigned int level, char const * const fmt, ...);
159E void logcommand (sourceinfo_t *si, int level, char const * const fmt, ...);
160E void logcommand_user (service_t *svs, user_t *source, int level, char const * const fmt, ...);
161E 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, ...);
162
163/* function.c */ 92/* function.c */
164/* misc string stuff */ 93/* misc string stuff */
165E char *gen_pw (int sz); 94E char *gen_pw (int sz);
166E void tb2sp (char *line); 95E void tb2sp (char *line);
167E char *replace (char *s, int size, char const * const oldstr, char const * const newstr); 96E char *replace (char *s, int size, char const * const oldstr, char const * const newstr);
168E char *itoa (int num); 97
98/* reverse of atoi() */
99template<typename T>
100static inline char *
101itoa (T num)
102{
103 static char ret[32];
104 itoa (num, ret);
105 return ret;
106}
107
169E int validemail (char *email); 108E int validemail (char *email);
170E bool validhostmask (char *host); 109E bool validhostmask (char *host);
171E char const *sbytes (float x); 110E char const *sbytes (float x);
172E float bytes (float x); 111E float bytes (float x);
173 112

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines