Annotation of ircnowd/src/ngircd/defines.h, Revision 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