/[svn]/ircd-hybrid-7.2/include/s_conf.h
ViewVC logotype

Contents of /ircd-hybrid-7.2/include/s_conf.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 912 - (show annotations)
Wed Nov 7 22:47:44 2007 UTC (12 years, 1 month ago) by michael
File MIME type: text/x-csrc
File size: 18793 byte(s)
- Implemented libtool-ltdl. Only shared modules are supported currently
- Several build fixes and cleanups. ircd now builds and runs without any problems
- Added back all files to SVN that are needed to built the daemon
  I really don't want to force other people that want to test the snapshots
  or svn versions to install yyacc, lex, automake, autoconf and libtool...
  No problem having required files in svn
- Removed some automake maintainer stuff which is kinda useless for us

1 /*
2 * ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
3 * s_conf.h: A header for the configuration functions.
4 *
5 * Copyright (C) 2005 by the past and present ircd coders, and others.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20 * USA
21 *
22 * $Id$
23 */
24
25 #ifndef INCLUDED_s_conf_h
26 #define INCLUDED_s_conf_h
27 #include "config.h"
28 #ifdef HAVE_LIBCRYPTO
29 #include <openssl/rsa.h>
30 #endif
31 #include "fileio.h" /* FBFILE */
32 #include "ircd_defs.h"
33 #include "motd.h" /* MessageFile */
34 #include "client.h"
35 #include "hook.h"
36 #include "pcre.h"
37
38 struct Client;
39 struct DNSReply;
40 struct hostent;
41
42 extern FBFILE *conf_fbfile_in;
43 extern struct Callback *client_check_cb;
44
45 typedef enum
46 {
47 CONF_TYPE,
48 CLASS_TYPE,
49 OPER_TYPE,
50 CLIENT_TYPE,
51 SERVER_TYPE,
52 HUB_TYPE,
53 LEAF_TYPE,
54 KLINE_TYPE,
55 DLINE_TYPE,
56 EXEMPTDLINE_TYPE,
57 CLUSTER_TYPE,
58 RKLINE_TYPE,
59 RXLINE_TYPE,
60 XLINE_TYPE,
61 ULINE_TYPE,
62 GLINE_TYPE,
63 CRESV_TYPE,
64 NRESV_TYPE,
65 GDENY_TYPE
66 } ConfType;
67
68 struct split_nuh_item
69 {
70 dlink_node node;
71
72 char *nuhmask;
73 char *nickptr;
74 char *userptr;
75 char *hostptr;
76
77 size_t nicksize;
78 size_t usersize;
79 size_t hostsize;
80 };
81
82 struct ConfItem
83 {
84 char *name; /* Primary key */
85 pcre *regexpname;
86 dlink_node node; /* link into known ConfItems of this type */
87 unsigned int flags;
88 ConfType type;
89 };
90
91 /*
92 * MatchItem - used for XLINE and ULINE types
93 */
94 struct MatchItem
95 {
96 char *user; /* Used for ULINE only */
97 char *host; /* Used for ULINE only */
98 char *reason;
99 char *oper_reason;
100 int action; /* used for uline */
101 int count; /* How many times this matchitem has been matched */
102 int ref_count; /* How many times is this matchitem in use */
103 int illegal; /* Should it be deleted when possible? */
104 time_t hold; /* Hold action until this time (calendar time) */
105 };
106
107 struct AccessItem
108 {
109 dlink_node node;
110 unsigned int status; /* If CONF_ILLEGAL, delete when no clients */
111 unsigned int flags;
112 unsigned int modes;
113 int clients; /* Number of *LOCAL* clients using this */
114 struct irc_ssaddr my_ipnum; /* ip to bind to for outgoing connect */
115 struct irc_ssaddr ipnum; /* ip to connect to */
116 char * host; /* host part of user@host */
117 char * passwd;
118 char * spasswd; /* Password to send. */
119 char * reason;
120 char * oper_reason;
121 char * user; /* user part of user@host */
122 int port;
123 char * fakename; /* Mask name */
124 time_t hold; /* Hold action until this time (calendar time) */
125 struct ConfItem *class_ptr; /* Class of connection */
126 struct DNSQuery* dns_query;
127 int aftype;
128 #ifdef HAVE_LIBCRYPTO
129 char * rsa_public_key_file;
130 RSA * rsa_public_key;
131 struct EncCapability *cipher_preference;
132 #endif
133 pcre *regexuser;
134 pcre *regexhost;
135 };
136
137 struct ClassItem
138 {
139 long max_sendq;
140 int con_freq;
141 int ping_freq;
142 int ping_warning;
143 int max_total;
144 int max_local;
145 int max_global;
146 int max_ident;
147 int max_perip;
148 int curr_user_count;
149 int cidr_bitlen_ipv4;
150 int cidr_bitlen_ipv6;
151 int number_per_cidr;
152 dlink_list list_ipv4; /* base of per cidr ipv4 client link list */
153 dlink_list list_ipv6; /* base of per cidr ipv6 client link list */
154 int active;
155 };
156
157 struct CidrItem
158 {
159 struct irc_ssaddr mask;
160 int number_on_this_cidr;
161 dlink_node node;
162 };
163
164 #define ConFreq(x) ((x)->con_freq)
165 #define PingFreq(x) ((x)->ping_freq)
166 #define PingWarning(x) ((x)->ping_warning)
167 #define MaxTotal(x) ((x)->max_total)
168 #define MaxGlobal(x) ((x)->max_global)
169 #define MaxLocal(x) ((x)->max_local)
170 #define MaxIdent(x) ((x)->max_ident)
171 #define MaxPerIp(x) ((x)->max_perip)
172 #define MaxSendq(x) ((x)->max_sendq)
173 #define CurrUserCount(x) ((x)->curr_user_count)
174 #define CidrBitlenIPV4(x) ((x)->cidr_bitlen_ipv4)
175 #define CidrBitlenIPV6(x) ((x)->cidr_bitlen_ipv6)
176 #define NumberPerCidr(x) ((x)->number_per_cidr)
177
178 #define ClassPtr(x) ((x)->class_ptr)
179
180
181 #define CONF_ILLEGAL 0x80000000
182 #define CONF_RESERVED 0x00000001
183 #define CONF_CLIENT 0x00000002
184 #define CONF_SERVER 0x00000004
185 #define CONF_OPERATOR 0x00000008
186 #define CONF_KILL 0x00000010
187 #define CONF_KLINE CONF_KILL
188 #define CONF_CLASS 0x00000020
189 #define CONF_LEAF 0x00000040
190 #define CONF_LISTEN_PORT 0x00000080
191 #define CONF_HUB 0x00000100
192 #define CONF_EXEMPTKLINE 0x00000200
193 #define CONF_NOLIMIT 0x00000400
194 #define CONF_DLINE 0x00000800
195 #define CONF_XLINE 0x00001000
196 #define CONF_ULINE 0x00002000
197 #define CONF_EXEMPTDLINE 0x00004000
198 #define CONF_GLINE 0x00008000
199
200 #define CONF_SERVER_MASK CONF_SERVER
201 #define CONF_CLIENT_MASK (CONF_CLIENT | CONF_OPERATOR | CONF_SERVER_MASK)
202
203 /* XXX temporary hack */
204 #define CONF_CRESV 0x80000001
205 #define CONF_NRESV 0x80000002
206
207 #define IsConfIllegal(x) ((x)->status & CONF_ILLEGAL)
208 #define SetConfIllegal(x) ((x)->status |= CONF_ILLEGAL)
209 #define IsConfServer(x) ((x)->status == CONF_SERVER)
210 #define SetConfServer(x) ((x)->status = CONF_SERVER)
211 #define IsConfOperator(x) ((x)->status & CONF_OPERATOR)
212 #define IsConfHub(x) ((x)->status == CONF_HUB)
213 #define SetConfHub(x) ((x)->status = CONF_HUB)
214 #define IsConfLeaf(x) ((x)->status == CONF_LEAF)
215 #define SetConfLeaf(x) ((x)->status = CONF_LEAF)
216 #define IsConfHubOrLeaf(x) ((x)->status & (CONF_HUB|CONF_LEAF))
217 #define IsConfKill(x) ((x)->status == CONF_KILL)
218 #define IsConfClient(x) ((x)->status & CONF_CLIENT)
219 #define IsConfTypeOfClient(x) ((x)->status & CONF_CLIENT_MASK)
220 #define IsConfUline(x) ((x)->status & CONF_ULINE)
221 #define IsConfXline(x) ((x)->status & CONF_XLINE)
222 #define IsConfGline(x) ((x)->status == CONF_GLINE)
223
224 /* AccessItem->flags */
225
226 /* Generic flags... */
227 /* access flags... */
228 #define CONF_FLAGS_DO_IDENTD 0x00000001
229 #define CONF_FLAGS_LIMIT_IP 0x00000002
230 #define CONF_FLAGS_NO_TILDE 0x00000004
231 #define CONF_FLAGS_NEED_IDENTD 0x00000008
232 /* 0x00000010 */
233 #define CONF_FLAGS_NOMATCH_IP 0x00000020
234 #define CONF_FLAGS_EXEMPTKLINE 0x00000040
235 #define CONF_FLAGS_NOLIMIT 0x00000080
236 #define CONF_FLAGS_IDLE_LINED 0x00000100
237 #define CONF_FLAGS_SPOOF_IP 0x00000200
238 #define CONF_FLAGS_SPOOF_NOTICE 0x00000400
239 #define CONF_FLAGS_REDIR 0x00000800
240 #define CONF_FLAGS_EXEMPTGLINE 0x00001000
241 #define CONF_FLAGS_RESTRICTED 0x00002000
242 #define CONF_FLAGS_CAN_FLOOD 0x00100000
243 #define CONF_FLAGS_NEED_PASSWORD 0x00200000
244 /* server flags */
245 #define CONF_FLAGS_ALLOW_AUTO_CONN 0x00004000
246 #define CONF_FLAGS_LAZY_LINK 0x00008000
247 #define CONF_FLAGS_ENCRYPTED 0x00010000
248 #define CONF_FLAGS_COMPRESSED 0x00020000
249 #define CONF_FLAGS_TEMPORARY 0x00040000
250 #define CONF_FLAGS_CRYPTLINK 0x00080000
251 #define CONF_FLAGS_BURST_AWAY 0x00400000
252 #define CONF_FLAGS_EXEMPTRESV 0x00800000
253 #define CONF_FLAGS_TOPICBURST 0x01000000
254
255 /* Macros for struct AccessItem */
256 #define IsLimitIp(x) ((x)->flags & CONF_FLAGS_LIMIT_IP)
257 #define IsNoTilde(x) ((x)->flags & CONF_FLAGS_NO_TILDE)
258 #define IsConfCanFlood(x) ((x)->flags & CONF_FLAGS_CAN_FLOOD)
259 #define IsNeedPassword(x) ((x)->flags & CONF_FLAGS_NEED_PASSWORD)
260 #define IsNeedIdentd(x) ((x)->flags & CONF_FLAGS_NEED_IDENTD)
261 #define IsNoMatchIp(x) ((x)->flags & CONF_FLAGS_NOMATCH_IP)
262 #define IsConfExemptKline(x) ((x)->flags & CONF_FLAGS_EXEMPTKLINE)
263 #define IsConfExemptLimits(x) ((x)->flags & CONF_FLAGS_NOLIMIT)
264 #define IsConfExemptGline(x) ((x)->flags & CONF_FLAGS_EXEMPTGLINE)
265 #define IsConfExemptResv(x) ((x)->flags & CONF_FLAGS_EXEMPTRESV)
266 #define IsConfIdlelined(x) ((x)->flags & CONF_FLAGS_IDLE_LINED)
267 #define IsConfDoIdentd(x) ((x)->flags & CONF_FLAGS_DO_IDENTD)
268 #define IsConfDoSpoofIp(x) ((x)->flags & CONF_FLAGS_SPOOF_IP)
269 #define IsConfSpoofNotice(x) ((x)->flags & CONF_FLAGS_SPOOF_NOTICE)
270 #define IsConfRestricted(x) ((x)->flags & CONF_FLAGS_RESTRICTED)
271 #define IsConfEncrypted(x) ((x)->flags & CONF_FLAGS_ENCRYPTED)
272 #define SetConfEncrypted(x) ((x)->flags |= CONF_FLAGS_ENCRYPTED)
273 #define ClearConfEncrypted(x) ((x)->flags &= ~CONF_FLAGS_ENCRYPTED)
274 #define IsConfCompressed(x) ((x)->flags & CONF_FLAGS_COMPRESSED)
275 #define SetConfCompressed(x) ((x)->flags |= CONF_FLAGS_COMPRESSED)
276 #define ClearConfCompressed(x) ((x)->flags &= ~CONF_FLAGS_COMPRESSED)
277 #define IsConfCryptLink(x) ((x)->flags & CONF_FLAGS_CRYPTLINK)
278 #define SetConfCryptLink(x) ((x)->flags |= CONF_FLAGS_CRYPTLINK)
279 #define ClearConfCryptLink(x) ((x)->flags &= ~CONF_FLAGS_CRYPTLINK)
280 #define IsConfAllowAutoConn(x) ((x)->flags & CONF_FLAGS_ALLOW_AUTO_CONN)
281 #define SetConfAllowAutoConn(x) ((x)->flags |= CONF_FLAGS_ALLOW_AUTO_CONN)
282 #define ClearConfAllowAutoConn(x) ((x)->flags &= ~CONF_FLAGS_ALLOW_AUTO_CONN)
283 #define IsConfTemporary(x) ((x)->flags & CONF_FLAGS_TEMPORARY)
284 #define SetConfTemporary(x) ((x)->flags |= CONF_FLAGS_TEMPORARY)
285 #define IsConfRedir(x) ((x)->flags & CONF_FLAGS_REDIR)
286 #define IsConfAwayBurst(x) ((x)->flags & CONF_FLAGS_BURST_AWAY)
287 #define SetConfAwayBurst(x) ((x)->flags |= CONF_FLAGS_BURST_AWAY)
288 #define ClearConfAwayBurst(x) ((x)->flags &= ~CONF_FLAGS_BURST_AWAY)
289 #define IsConfTopicBurst(x) ((x)->flags & CONF_FLAGS_TOPICBURST)
290 #define SetConfTopicBurst(x) ((x)->flags |= CONF_FLAGS_TOPICBURST)
291 #define ClearConfTopicBurst(x) ((x)->flags &= ~CONF_FLAGS_TOPICBURST)
292
293 /* shared/cluster server entry types
294 * These defines are used for both shared and cluster.
295 */
296 #define SHARED_KLINE 0x0001
297 #define SHARED_TKLINE 0x0002
298 #define SHARED_UNKLINE 0x0004
299 #define SHARED_XLINE 0x0008
300 #define SHARED_TXLINE 0x0010
301 #define SHARED_UNXLINE 0x0020
302 #define SHARED_RESV 0x0040
303 #define SHARED_TRESV 0x0080
304 #define SHARED_UNRESV 0x0100
305 #define SHARED_LOCOPS 0x0200
306 #define SHARED_ALL (SHARED_KLINE | SHARED_TKLINE | SHARED_UNKLINE | \
307 SHARED_XLINE | SHARED_TXLINE | SHARED_UNXLINE | \
308 SHARED_RESV | SHARED_TRESV | SHARED_UNRESV |\
309 SHARED_LOCOPS)
310
311 /* gline acl entry actions */
312 #define GDENY_BLOCK 0x1
313 #define GDENY_REJECT 0x2
314
315 struct config_file_entry
316 {
317 const char *dpath; /* DPATH if set from command line */
318 const char *configfile;
319 const char *klinefile;
320 const char *xlinefile;
321 const char *rxlinefile;
322 const char *rklinefile;
323 const char *dlinefile;
324 const char *glinefile;
325 const char *cresvfile;
326 const char *nresvfile;
327
328 char *logpath;
329 char *operlog;
330
331 char *servlink_path;
332 char *egdpool_path;
333
334 MessageFile motd;
335 MessageFile opermotd;
336 MessageFile linksfile;
337
338 unsigned char compression_level;
339 int max_watch;
340 int gline_min_cidr;
341 int gline_min_cidr6;
342 int dot_in_ip6_addr;
343 int dots_in_ident;
344 int failed_oper_notice;
345 int anti_spam_exit_message_time;
346 int max_accept;
347 int max_nick_time;
348 int max_nick_changes;
349 int ts_max_delta;
350 int ts_warn_delta;
351 int anti_nick_flood;
352 int kline_with_reason;
353 int warn_no_nline;
354 int invisible_on_connect;
355 int stats_e_disabled;
356 int stats_o_oper_only;
357 int stats_k_oper_only;
358 int stats_i_oper_only;
359 int stats_P_oper_only;
360 int short_motd;
361 int no_oper_flood;
362 int true_no_oper_flood;
363 int oper_pass_resv;
364 int glines;
365 int hide_spoof_ips;
366 int burst_away;
367 int use_whois_actually;
368 int tkline_expire_notices;
369 int opers_bypass_callerid;
370 int ignore_bogus_ts;
371 char *kline_reason;
372 int pace_wait;
373 int pace_wait_simple;
374 int gline_time;
375 int gline_logging;
376 int idletime;
377 int oper_only_umodes;
378 int oper_umodes;
379 int max_targets;
380 int caller_id_wait;
381 int min_nonwildcard;
382 int min_nonwildcard_simple;
383 int kill_chase_time_limit;
384 int default_floodcount;
385 int client_flood;
386 /* 0 == don't use throttle... */
387 int throttle_time;
388 int use_egd;
389 int ping_cookie;
390 int disable_auth;
391 int disable_remote;
392 #ifdef HAVE_LIBCRYPTO
393 struct EncCapability *default_cipher_preference;
394 #endif
395 };
396
397 struct config_channel_entry
398 {
399 int disable_fake_channels;
400 int restrict_channels;
401 int disable_local_channels;
402 int use_except;
403 int use_invex;
404 int use_knock;
405 int knock_delay;
406 int knock_delay_channel;
407 unsigned int max_bans;
408 unsigned int max_chans_per_user;
409 int no_create_on_split;
410 int no_join_on_split;
411 int quiet_on_ban;
412 int burst_topicwho;
413 int default_split_server_count;
414 int default_split_user_count;
415 };
416
417 struct config_server_hide
418 {
419 int flatten_links;
420 int hide_servers;
421 char *hidden_name;
422 int links_delay;
423 int links_disabled;
424 int hidden;
425 int disable_hidden;
426 int hide_server_ips;
427 };
428
429 struct server_info
430 {
431 char *name;
432 char *description;
433 char *network_name;
434 char *network_desc;
435 #ifdef HAVE_LIBCRYPTO
436 char *rsa_private_key_file;
437 RSA *rsa_private_key;
438 SSL_CTX *ctx;
439 #endif
440 char *sid;
441 int hub;
442 struct irc_ssaddr ip;
443 struct irc_ssaddr ip6;
444 int max_clients;
445 int specific_ipv4_vhost;
446 int specific_ipv6_vhost;
447 struct sockaddr_in dns_host;
448 int can_use_v6;
449 };
450
451 struct admin_info
452 {
453 char *name;
454 char *description;
455 char *email;
456 };
457
458 struct logging_entry
459 {
460 unsigned int use_logging;
461 char operlog[PATH_MAX + 1];
462 char userlog[PATH_MAX + 1];
463 char glinelog[PATH_MAX + 1];
464 char ioerrlog[PATH_MAX + 1];
465 char klinelog[PATH_MAX + 1];
466 char killlog[PATH_MAX + 1];
467 char operspylog[PATH_MAX + 1];
468 char failed_operlog[PATH_MAX + 1];
469 };
470
471 extern int ypass;
472 extern dlink_list class_items;
473 extern dlink_list server_items;
474 extern dlink_list cluster_items;
475 extern dlink_list hub_items;
476 extern dlink_list rxconf_items;
477 extern dlink_list rkconf_items;
478 extern dlink_list leaf_items;
479 extern dlink_list temporary_klines;
480 extern dlink_list temporary_dlines;
481 extern dlink_list temporary_glines;
482 extern dlink_list temporary_xlines;
483 extern dlink_list temporary_rxlines;
484 extern dlink_list temporary_rklines;
485 extern struct logging_entry ConfigLoggingEntry;
486 extern struct config_file_entry ConfigFileEntry;/* defined in ircd.c*/
487 extern struct config_channel_entry ConfigChannel;/* defined in channel.c*/
488 extern struct config_server_hide ConfigServerHide; /* defined in s_conf.c */
489 extern struct server_info ServerInfo; /* defined in ircd.c */
490 extern struct admin_info AdminInfo; /* defined in ircd.c */
491 extern int valid_wild_card(struct Client *, int, int, ...);
492 /* End GLOBAL section */
493
494 extern unsigned long get_sendq(struct Client *);
495 extern const char *get_client_class(struct Client *);
496 extern int get_client_ping(struct Client *, int *);
497 extern void check_class(void);
498 extern void init_class(void);
499 extern struct ConfItem *find_class(const char *);
500 extern void init_ip_hash_table(void);
501 extern void count_ip_hash(int *, unsigned long *);
502 extern void remove_one_ip(struct irc_ssaddr *);
503 extern struct ConfItem *make_conf_item(ConfType type);
504 extern void free_access_item(struct AccessItem *);
505 extern void read_conf_files(int);
506 extern int attach_conf(struct Client *, struct ConfItem *);
507 extern int attach_connect_block(struct Client *, const char *, const char *);
508
509 extern int detach_conf(struct Client *, ConfType);
510
511 extern struct ConfItem *find_conf_name(dlink_list *, const char *, ConfType);
512 extern struct ConfItem *find_conf_exact(ConfType, const char *, const char *, const char *);
513 extern struct AccessItem *find_kill(struct Client *);
514 extern struct AccessItem *find_gline(struct Client *);
515 extern int conf_connect_allowed(struct irc_ssaddr *, int);
516 extern char *oper_privs_as_string(const unsigned int);
517 extern void split_nuh(struct split_nuh_item *);
518 extern struct ConfItem *find_matching_name_conf(ConfType, const char *,
519 const char *, const char *, int);
520 extern struct ConfItem *find_exact_name_conf(ConfType, const char *,
521 const char *, const char *);
522 extern void delete_conf_item(struct ConfItem *);
523 extern void report_confitem_types(struct Client *, ConfType, int);
524 extern void yyerror(const char *);
525 extern int conf_yy_fatal_error(const char *);
526 extern int conf_fbgets(char *, unsigned int, FBFILE *);
527 extern void write_conf_line(struct Client *, struct ConfItem *,
528 const char *, time_t);
529 extern int remove_conf_line(ConfType, struct Client *, const char *,
530 const char *);
531 extern void add_temp_line(struct ConfItem *);
532 extern void cleanup_tklines(void *);
533 extern const char *get_conf_name(ConfType);
534 extern int rehash(int);
535 extern int conf_add_server(struct ConfItem *, const char *);
536 extern void conf_add_class_to_conf(struct ConfItem *, const char *);
537 extern void conf_add_d_conf(struct AccessItem *);
538
539 /* XXX consider moving these into csvlib.h */
540 extern void parse_csv_file(FBFILE *, ConfType);
541
542 extern char *get_oper_name(const struct Client *);
543
544 extern void *map_to_conf(struct ConfItem *);
545 extern struct ConfItem *unmap_conf_item(void *);
546 /* XXX should the parse_aline stuff go into another file ?? */
547 #define AWILD 0x1 /* check wild cards */
548 #define NOUSERLOOKUP 0x2 /* Don't lookup the user@host on /rkline nick */
549 extern int parse_aline(const char *, struct Client *, int, char **,
550 int, char **, char **, time_t *, char **, char **);
551 extern int valid_comment(struct Client *, char *, int);
552
553 /* XXX */
554 extern int yylex(void);
555
556 #define TK_SECONDS 0
557 #define TK_MINUTES 1
558 extern time_t valid_tkline(char *, int);
559 extern int match_conf_password(const char *, const struct AccessItem *);
560
561 #define NOT_AUTHORIZED (-1)
562 #define I_LINE_FULL (-2)
563 #define TOO_MANY (-3)
564 #define BANNED_CLIENT (-4)
565 #define TOO_FAST (-5)
566
567 #define CLEANUP_TKLINES_TIME 60
568
569 extern void cluster_a_line(struct Client *,
570 const char *, int, int, const char *,...);
571 extern void rebuild_cidr_class(struct ConfItem *, struct ClassItem *);
572
573 #endif /* INCLUDED_s_conf_h */

Properties

Name Value
svn:eol-style native
svn:keywords Id Revision

svnadmin@ircd-hybrid.org
ViewVC Help
Powered by ViewVC 1.1.26