]>
Commit | Line | Data |
---|---|---|
189935b1 | 1 | #ifndef INCLUDED_features_h |
2 | #define INCLUDED_features_h | |
3 | /* | |
4 | * IRC - Internet Relay Chat, include/features.h | |
5 | * Copyright (C) 2000 Kevin L. Mitchell <klmitch@mit.edu> | |
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, or (at your option) | |
10 | * 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., 675 Mass Ave, Cambridge, MA 02139, USA. | |
20 | */ | |
21 | /** @file | |
22 | * @brief Public interfaces and declarations for dealing with configurable features. | |
9f8856e9 | 23 | * @version $Id: ircd_features.h,v 1.38.2.5 2006/02/16 03:49:54 entrope Exp $ |
189935b1 | 24 | */ |
25 | ||
26 | struct Client; | |
27 | struct StatDesc; | |
28 | ||
29 | extern struct Client his; | |
30 | ||
31 | /** Contains all feature settings for ircu. | |
32 | * For documentation of each, see doc/readme.features. | |
33 | */ | |
34 | enum Feature { | |
35 | /* Misc. features */ | |
36 | FEAT_LOG, | |
37 | FEAT_DOMAINNAME, | |
38 | FEAT_RELIABLE_CLOCK, | |
39 | FEAT_BUFFERPOOL, | |
40 | FEAT_HAS_FERGUSON_FLUSHER, | |
41 | FEAT_CLIENT_FLOOD, | |
42 | FEAT_SERVER_PORT, | |
43 | FEAT_NODEFAULTMOTD, | |
44 | FEAT_MOTD_BANNER, | |
45 | FEAT_PROVIDER, | |
46 | FEAT_KILL_IPMISMATCH, | |
47 | FEAT_IDLE_FROM_MSG, | |
48 | FEAT_HUB, | |
49 | FEAT_WALLOPS_OPER_ONLY, | |
50 | FEAT_NODNS, | |
51 | FEAT_RANDOM_SEED, | |
52 | FEAT_DEFAULT_LIST_PARAM, | |
53 | FEAT_NICKNAMEHISTORYLENGTH, | |
54 | FEAT_HOST_HIDING, | |
55 | FEAT_HIDDEN_HOST, | |
56 | FEAT_HIDDEN_IP, | |
57 | FEAT_CONNEXIT_NOTICES, | |
58 | FEAT_OPLEVELS, | |
052b069e | 59 | FEAT_ZANNELS, |
189935b1 | 60 | FEAT_LOCAL_CHANNELS, |
61 | FEAT_TOPIC_BURST, | |
62 | ||
63 | /* features that probably should not be touched */ | |
64 | FEAT_KILLCHASETIMELIMIT, | |
65 | FEAT_MAXCHANNELSPERUSER, | |
66 | FEAT_NICKLEN, | |
67 | FEAT_AVBANLEN, | |
68 | FEAT_MAXBANS, | |
69 | FEAT_MAXSILES, | |
70 | FEAT_HANGONGOODLINK, | |
71 | FEAT_HANGONRETRYDELAY, | |
72 | FEAT_CONNECTTIMEOUT, | |
73 | FEAT_MAXIMUM_LINKS, | |
74 | FEAT_PINGFREQUENCY, | |
75 | FEAT_CONNECTFREQUENCY, | |
76 | FEAT_DEFAULTMAXSENDQLENGTH, | |
77 | FEAT_GLINEMAXUSERCOUNT, | |
78 | FEAT_SOCKSENDBUF, | |
79 | FEAT_SOCKRECVBUF, | |
80 | FEAT_IPCHECK_CLONE_LIMIT, | |
81 | FEAT_IPCHECK_CLONE_PERIOD, | |
82 | FEAT_IPCHECK_CLONE_DELAY, | |
83 | FEAT_CHANNELLEN, | |
84 | ||
85 | /* Some misc. default paths */ | |
86 | FEAT_MPATH, | |
87 | FEAT_RPATH, | |
88 | FEAT_PPATH, | |
89 | ||
90 | /* Networking features */ | |
91 | FEAT_TOS_SERVER, | |
92 | FEAT_TOS_CLIENT, | |
93 | FEAT_POLLS_PER_LOOP, | |
94 | FEAT_IRCD_RES_RETRIES, | |
95 | FEAT_IRCD_RES_TIMEOUT, | |
96 | FEAT_AUTH_TIMEOUT, | |
97 | FEAT_ANNOUNCE_INVITES, | |
98 | ||
99 | /* features that affect all operators */ | |
100 | FEAT_CONFIG_OPERCMDS, | |
101 | ||
102 | /* HEAD_IN_SAND Features */ | |
103 | FEAT_HIS_SNOTICES, | |
104 | FEAT_HIS_SNOTICES_OPER_ONLY, | |
105 | FEAT_HIS_DEBUG_OPER_ONLY, | |
106 | FEAT_HIS_WALLOPS, | |
107 | FEAT_HIS_MAP, | |
108 | FEAT_HIS_LINKS, | |
109 | FEAT_HIS_TRACE, | |
110 | FEAT_HIS_STATS_a, | |
111 | FEAT_HIS_STATS_c, | |
112 | FEAT_HIS_STATS_d, | |
113 | FEAT_HIS_STATS_e, | |
114 | FEAT_HIS_STATS_f, | |
115 | FEAT_HIS_STATS_g, | |
116 | FEAT_HIS_STATS_i, | |
117 | FEAT_HIS_STATS_j, | |
118 | FEAT_HIS_STATS_J, | |
119 | FEAT_HIS_STATS_k, | |
120 | FEAT_HIS_STATS_l, | |
121 | FEAT_HIS_STATS_L, | |
122 | FEAT_HIS_STATS_M, | |
123 | FEAT_HIS_STATS_m, | |
124 | FEAT_HIS_STATS_o, | |
125 | FEAT_HIS_STATS_p, | |
126 | FEAT_HIS_STATS_q, | |
127 | FEAT_HIS_STATS_R, | |
128 | FEAT_HIS_STATS_r, | |
129 | FEAT_HIS_STATS_t, | |
130 | FEAT_HIS_STATS_T, | |
131 | FEAT_HIS_STATS_u, | |
132 | FEAT_HIS_STATS_U, | |
133 | FEAT_HIS_STATS_v, | |
134 | FEAT_HIS_STATS_w, | |
135 | FEAT_HIS_STATS_x, | |
136 | FEAT_HIS_STATS_y, | |
137 | FEAT_HIS_STATS_z, | |
9f8856e9 | 138 | FEAT_HIS_STATS_IAUTH, |
189935b1 | 139 | FEAT_HIS_WHOIS_SERVERNAME, |
140 | FEAT_HIS_WHOIS_IDLETIME, | |
141 | FEAT_HIS_WHOIS_LOCALCHAN, | |
142 | FEAT_HIS_WHO_SERVERNAME, | |
143 | FEAT_HIS_WHO_HOPCOUNT, | |
052b069e | 144 | FEAT_HIS_MODEWHO, |
189935b1 | 145 | FEAT_HIS_BANWHO, |
146 | FEAT_HIS_KILLWHO, | |
147 | FEAT_HIS_REWRITE, | |
148 | FEAT_HIS_REMOTE, | |
149 | FEAT_HIS_NETSPLIT, | |
150 | FEAT_HIS_SERVERNAME, | |
151 | FEAT_HIS_SERVERINFO, | |
152 | FEAT_HIS_URLSERVERS, | |
153 | ||
154 | /* Misc. random stuff */ | |
155 | FEAT_NETWORK, | |
156 | FEAT_URL_CLIENTS, | |
157 | ||
158 | FEAT_LAST_F | |
159 | }; | |
160 | ||
161 | extern void feature_init(void); | |
162 | ||
163 | extern int feature_set(struct Client* from, const char* const* fields, | |
164 | int count); | |
165 | extern int feature_reset(struct Client* from, const char* const* fields, | |
166 | int count); | |
167 | extern int feature_get(struct Client* from, const char* const* fields, | |
168 | int count); | |
169 | ||
170 | extern void feature_unmark(void); | |
171 | extern void feature_mark(void); | |
172 | ||
173 | extern void feature_report(struct Client* to, const struct StatDesc* sd, | |
174 | char* param); | |
175 | ||
176 | extern int feature_int(enum Feature feat); | |
177 | extern int feature_bool(enum Feature feat); | |
178 | extern const char *feature_str(enum Feature feat); | |
179 | ||
180 | #endif /* INCLUDED_features_h */ |