Annotation of ircnowd/src/ngircd/defines.h, Revision 1.1.1.1
1.1 tomglok 1: /*
2: * ngIRCd -- The Next Generation IRC Daemon
3: * Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors.
4: *
5: * This program is free software; you can redistribute it and/or modify
6: * it under the terms of the GNU General Public License as published by
7: * the Free Software Foundation; either version 2 of the License, or
8: * (at your option) any later version.
9: * Please read the file COPYING, README and AUTHORS for more information.
10: */
11:
12: #ifndef __defines_h__
13: #define __defines_h__
14:
15: /**
16: * @file
17: * Global constants ("#defines") used by the ngIRCd.
18: */
19:
20:
21: /* Internal flags */
22:
23: /** Flag: there is no connection. */
24: #define NONE -1
25:
26: /** Flag: connection is (still) established. */
27: #define CONNECTED true
28:
29: /** Flag: connection isn't established (any more). */
30: #define DISCONNECTED false
31:
32: /** Tag for outbound server links. */
33: #define TOKEN_OUTBOUND -2
34:
35:
36: /* Generic buffer sizes */
37:
38: /** Max. length of a line in the configuration file. */
39: #define LINE_LEN 1024
40:
41: /** Max. length of a log message. */
42: #define MAX_LOG_MSG_LEN 256
43:
44: /** Max. length of file name. */
45: #define FNAME_LEN 256
46:
47: /** Max. length of fully qualified host names (e. g. "abc.domain.tld"). */
48: #define HOST_LEN 256
49:
50: /** Max. length of random salt */
51: #define RANDOM_SALT_LEN 32
52:
53: /* Size of structures */
54:
55: /** Max. count of configurable servers. */
56: #define MAX_SERVERS 64
57:
58: /** Max. number of WHOWAS list items that can be stored. */
59: #define MAX_WHOWAS 64
60:
61: /** Size of default connection pool. */
62: #define CONNECTION_POOL 100
63:
64: /** Size of buffer for PAM service name. */
65: #define MAX_PAM_SERVICE_NAME_LEN 64
66:
67:
68: /* Hard-coded (default) options */
69:
70: /** Delay after startup before outgoing connections are initiated in seconds. */
71: #define STARTUP_DELAY 1
72:
73: /** Time to delay re-connect attempts in seconds. */
74: #define RECONNECT_DELAY 3
75:
76: /** Configuration file name. */
77: #define CONFIG_FILE "/ngircd.conf"
78:
79: /** Directory containing optional configuration snippets. */
80: #define CONFIG_DIR "/ngircd.conf.d"
81:
82: /** Name of the MOTD file. */
83: #define MOTD_FILE "/ngircd.motd"
84:
85: /** Name of the help file. */
86: #define HELP_FILE "/Commands.txt"
87:
88: /** Default chroot() directory. */
89: #define CHROOT_DIR ""
90:
91: /** Default file for the process ID. */
92: #define PID_FILE ""
93:
94:
95: /* Sizes of "IRC elements": nicks, users, ... */
96:
97: /** Max. length of an IRC ID (incl. NULL); see RFC 2812 section 1.1 and 1.2.1. */
98: #define CLIENT_ID_LEN 64
99:
100: /** Default nick length (including NULL), see. RFC 2812 section 1.2.1. */
101: #define CLIENT_NICK_LEN_DEFAULT 10
102:
103: /** Maximum nickname length (including NULL). */
104: #define CLIENT_NICK_LEN 32
105:
106: /** Max. password length (including NULL). */
107: #define CLIENT_PASS_LEN 65
108:
109: /** Max. length of user name ("login"; incl. NULL), RFC 2812, section 1.2.1. */
110: #ifndef STRICT_RFC
111: # define CLIENT_USER_LEN 20
112: #else
113: # define CLIENT_USER_LEN 10
114: #endif
115: /** Max. length of user names saved for authentication (used by PAM) */
116: #ifdef PAM
117: # define CLIENT_AUTHUSER_LEN 64
118: #endif
119:
120: /** Max. length of "real names" (including NULL). */
121: #define CLIENT_NAME_LEN 32
122:
123: /** Max. host name length (including NULL). */
124: #define CLIENT_HOST_LEN 64
125:
126: /** Max. mask lenght (including NULL). */
127: #define MASK_LEN (2 * CLIENT_HOST_LEN)
128:
129: /** Max. length of all client modes (including NULL). */
130: #define CLIENT_MODE_LEN 21
131:
132: /** Max. length of server info texts (including NULL). */
133: #define CLIENT_INFO_LEN 128
134:
135: /** Max. length of away messages (including NULL). */
136: #define CLIENT_AWAY_LEN 128
137:
138: /** Max. length of client flags (including NULL). */
139: #define CLIENT_FLAGS_LEN 16
140:
141: /** Max. length of a channel name (including NULL), see RFC 2812 section 1.3. */
142: #define CHANNEL_NAME_LEN 51
143:
144: /** Max. length of channel modes (including NULL). */
145: #define CHANNEL_MODE_LEN 21
146:
147: /** Max. IRC command length (including NULL), see. RFC 2812 section 3.2. */
148: #define COMMAND_LEN 513
149:
150:
151: /* Read and write buffer sizes */
152:
153: /** Size of the read buffer of a connection in bytes. */
154: #define READBUFFER_LEN 2048
155:
156: /** Size that triggers write buffer flushing if more space is needed. */
157: #define WRITEBUFFER_FLUSH_LEN 4096
158:
159: /** Maximum size of the write buffer of a connection in bytes. */
160: #define WRITEBUFFER_MAX_LEN 1048576
161:
162: /** Maximum size of the write buffer of a server link connection in bytes. */
163: #define WRITEBUFFER_SLINK_LEN 1048576
164:
165:
166: /* IRC/IRC+ protocol */
167:
168: /** Implemented IRC protocol version, see RFC 2813 section 4.1.1. */
169: #define PROTOVER "0210"
170:
171: /** Protocol suffix, see RFC 2813 section 4.1.1. */
172: #define PROTOIRC "-IRC"
173:
174: /** Protocol suffix used by the IRC+ protocol, see <doc/Protocol.txt>. */
175: #define PROTOIRCPLUS "-IRC+"
176:
177: #ifdef IRCPLUS
178: /** Standard IRC+ flags. */
179: # define IRCPLUSFLAGS "CHLMSX"
180: #endif
181:
182: /** Supported user modes. */
183: #define USERMODES "abBcCFiIoqrRswx"
184:
185: /** Supported channel modes. */
186: #define CHANMODES "abehiIklmMnoOPqQrRstvVz"
187:
188: /** Supported channel types. */
189: #define CHANTYPES "#&+"
190:
191: /** Away message for users connected to linked servers. */
192: #define DEFAULT_AWAY_MSG "Away"
193:
194: /** Default ID for "topic owner". */
195: #define DEFAULT_TOPIC_ID "-Server-"
196:
197: /** Prefix for NOTICEs from the server to users. Some servers use '*'. */
198: #define NOTICE_TXTPREFIX ""
199:
200: /** Suffix for oversized messages that have been shortened and cut off. */
201: #define CUT_TXTSUFFIX "[CUT]"
202:
203:
204: /* Defaults and limits for IRC commands */
205:
206: /** Max. number of elemets allowed in channel invite and ban lists. */
207: #define MAX_HNDL_CHANNEL_LISTS 50
208:
209: /** Max. number of channel modes with arguments per MODE command. */
210: #define MAX_HNDL_MODES_ARG 5
211:
212: /** Max. number of targets per PRIVMSG/NOTICE/... command. */
213: #define MAX_HNDL_TARGETS 25
214:
215: /** Max. number of WHO replies. */
216: #define MAX_RPL_WHO 25
217:
218: /** Max. number of WHOIS replies. */
219: #define MAX_RPL_WHOIS 10
220:
221: /** Default count of WHOWAS command replies. */
222: #define DEF_RPL_WHOWAS 5
223:
224: /** Max count of WHOWAS command replies. */
225: #define MAX_RPL_WHOWAS 25
226:
227:
228: #endif
229:
230: /* -eof- */
CVSweb