X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=src%2Fngircd%2Fdefines.h;h=456c4c9351f78f44735c859cf08767df519b71b4;hp=7db4788a13270587c588cf4fb9322446e15aaf9c;hb=bf2eae3249cd7890c0189dfcf1a50b0e40e199b2;hpb=8d024d05d218680e853eacbea2e5b97ac7c1f730 diff --git a/src/ngircd/defines.h b/src/ngircd/defines.h index 7db4788a..456c4c93 100644 --- a/src/ngircd/defines.h +++ b/src/ngircd/defines.h @@ -1,105 +1,224 @@ /* * ngIRCd -- The Next Generation IRC Daemon - * Copyright (c)2001,2002 by Alexander Barton (alex@barton.de) + * Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * Please read the file COPYING, README and AUTHORS for more information. - * - * $Id: defines.h,v 1.40 2002/12/16 23:10:56 alex Exp $ - * - * Global defines of ngIRCd. */ #ifndef __defines_h__ #define __defines_h__ +/** + * @file + * Global constants ("#defines") used by the ngIRCd. + */ + +/* Internal flags */ + +/** Flag: there is no connection. */ #define NONE -1 -#define TIME_RES 2 /* Zeit-Aufloesung des Servers in Sekunden */ +/** Flag: connection is (still) established. */ +#define CONNECTED true -#define FNAME_LEN 256 /* max. Laenge eines Dateinamen */ +/** Flag: connection isn't established (any more). */ +#define DISCONNECTED false -#define LINE_LEN 256 /* max. Laenge einer Konfigurationszeile */ +/** Tag for outbound server links. */ +#define TOKEN_OUTBOUND -2 -#define HOST_LEN 256 /* max. Laenge eines Hostnamen */ -#define MAX_LISTEN_PORTS 16 /* max. Anzahl von Listen-Ports */ +/* Generic buffer sizes */ -#define MAX_OPERATORS 16 /* max. Anzahl konfigurierbarer Operatoren */ +/** Max. length of a line in the configuration file. */ +#define LINE_LEN 1024 -#define MAX_SERVERS 16 /* max. Anzahl konfigurierbarer Server ("Peers") */ +/** Max. length of a log message. */ +#define MAX_LOG_MSG_LEN 256 -#define MAX_DEFCHANNELS 16 /* max. Anzahl vorkonfigurierbarerr Channels */ +/** Max. length of file name. */ +#define FNAME_LEN 256 -#define MAX_SERVICES 8 /* maximum number of configurable services */ +/** Max. length of fully qualified host names (e. g. "abc.domain.tld"). */ +#define HOST_LEN 256 -#define CONNECTION_POOL 100 /* Anzahl Verbindungs-Strukturen, die blockweise alloziert werden */ +/** Max. length of random salt */ +#define RANDOM_SALT_LEN 32 -#define CLIENT_ID_LEN 64 /* max. ID-Laenge; vgl. RFC 2812, 1.1 und 1.2.1 */ -#define CLIENT_NICK_LEN 10 /* max. Nick-Laenge; vgl. RFC 2812, 1.2.1 */ -#define CLIENT_PASS_LEN 9 /* max. Laenge des Passwortes */ -#define CLIENT_USER_LEN 9 /* max. Laenge des Benutzernamen ("Login") */ -#define CLIENT_NAME_LEN 32 /* max. Laenge des "langen Benutzernamen" */ -#define CLIENT_HOST_LEN 64 /* max. Laenge des Hostname */ -#define CLIENT_MODE_LEN 8 /* max. Laenge der Client-Modes */ -#define CLIENT_INFO_LEN 64 /* max. Infotext-Laenge (Server) */ -#define CLIENT_AWAY_LEN 128 /* max. Laenger der AWAY-Nachricht */ -#define CLIENT_FLAGS_LEN 100 /* max. Laenger der Client-Flags */ +/* Size of structures */ -#define CHANNEL_NAME_LEN 51 /* max. Laenge eines Channel-Namens, vgl. RFC 2812, 1.3 */ -#define CHANNEL_MODE_LEN 8 /* max. Laenge der Channel-Modes */ -#define CHANNEL_TOPIC_LEN 128 /* max. Laenge eines Channel-Topics */ +/** Max. count of configurable servers. */ +#define MAX_SERVERS 64 -#define COMMAND_LEN 513 /* max. Laenge eines Befehls, vgl. RFC 2812, 3.2 */ +/** Max. number of WHOWAS list items that can be stored. */ +#define MAX_WHOWAS 64 -#define READBUFFER_LEN 2048 /* Laenge des Lesepuffers je Verbindung (Bytes) */ -#define WRITEBUFFER_LEN 4096 /* Laenge des Schreibpuffers je Verbindung (Bytes) */ +/** Size of default connection pool. */ +#define CONNECTION_POOL 100 -#ifdef USE_ZLIB -#define ZREADBUFFER_LEN 1024 /* Laenge des Lesepuffers je Verbindung (Bytes) */ -#define ZWRITEBUFFER_LEN 4096 /* Laenge des Schreibpuffers fuer Kompression (Bytes) */ -#endif -#define PROTOVER "0210" /* implementierte Protokoll-Version (RFC 2813, 4.1.1) */ -#define PROTOIRC "-IRC" /* Protokoll-Suffix (RFC 2813, 4.1.1) */ -#define PROTOIRCPLUS "-IRC+" /* Protokoll-Suffix fŸr IRC+-Protokoll */ +/* Hard-coded (default) options */ -#ifdef IRCPLUS -# define IRCPLUSFLAGS "C" /* IRC+-Flags, die immer zutreffen */ -#endif +/** Delay after startup before outgoing connections are initiated in seconds. */ +#define STARTUP_DELAY 1 + +/** Time to delay re-connect attempts in seconds. */ +#define RECONNECT_DELAY 3 + +/** Configuration file name. */ +#define CONFIG_FILE "/ngircd.conf" + +/** Directory containing optional configuration snippets. */ +#define CONFIG_DIR "/ngircd.conf.d" + +/** Name of the MOTD file. */ +#define MOTD_FILE "/ngircd.motd" + +/** Name of the help file. */ +#define HELP_FILE "/Commands.txt" + +/** Default chroot() directory. */ +#define CHROOT_DIR "" -#define STARTUP_DELAY 1 /* Erst n Sek. nach Start zu anderen Servern verbinden */ -#define RECONNECT_DELAY 3 /* Server-Links erst nach 3 Sekunden versuchen, wieder aufzubauen */ +/** Default file for the process ID. */ +#define PID_FILE "" -#define USERMODES "aios" /* unterstuetzte User-Modes */ -#define CHANMODES "biklImnoPtv" /* unterstuetzte Channel-Modes */ -#define CONNECTED TRUE /* fuer die irc-xxx-Module */ -#define DISCONNECTED FALSE +/* Sizes of "IRC elements": nicks, users, ... */ -#define DEFAULT_AWAY_MSG "Away" /* Away-Meldung fuer User von anderen Servern */ +/** Max. length of an IRC ID (incl. NULL); see RFC 2812 section 1.1 and 1.2.1. */ +#define CLIENT_ID_LEN 64 -#ifdef PROTOTYPES -# define CONFIG_FILE SYSCONFDIR"/ngircd.conf" -# define MOTD_FILE SYSCONFDIR"/ngircd.motd" +/** Default nick length (including NULL), see. RFC 2812 section 1.2.1. */ +#define CLIENT_NICK_LEN_DEFAULT 10 + +/** Maximum nickname length (including NULL). */ +#define CLIENT_NICK_LEN 32 + +/** Max. password length (including NULL). */ +#define CLIENT_PASS_LEN 65 + +/** Max. length of user name ("login"; incl. NULL), RFC 2812, section 1.2.1. */ +#ifndef STRICT_RFC +# define CLIENT_USER_LEN 20 #else -# define CONFIG_FILE "ngircd.conf" -# define MOTD_FILE "ngircd.motd" +# define CLIENT_USER_LEN 10 +#endif +/** Max. length of user names saved for authentication (used by PAM) */ +#ifdef PAM +# define CLIENT_AUTHUSER_LEN 64 #endif -#define ERROR_DIR "/tmp" -#define MAX_LOG_MSG_LEN 256 /* max. Laenge einer Log-Meldung */ +/** Max. length of "real names" (including NULL). */ +#define CLIENT_NAME_LEN 32 + +/** Max. host name length (including NULL). */ +#define CLIENT_HOST_LEN 64 + +/** Max. mask lenght (including NULL). */ +#define MASK_LEN (2 * CLIENT_HOST_LEN) + +/** Max. length of all client modes (including NULL). */ +#define CLIENT_MODE_LEN 21 + +/** Max. length of server info texts (including NULL). */ +#define CLIENT_INFO_LEN 64 + +/** Max. length of away messages (including NULL). */ +#define CLIENT_AWAY_LEN 128 + +/** Max. length of client flags (including NULL). */ +#define CLIENT_FLAGS_LEN 16 + +/** Max. length of a channel name (including NULL), see RFC 2812 section 1.3. */ +#define CHANNEL_NAME_LEN 51 + +/** Max. length of channel modes (including NULL). */ +#define CHANNEL_MODE_LEN 21 + +/** Max. IRC command length (including NULL), see. RFC 2812 section 3.2. */ +#define COMMAND_LEN 513 -#define TOKEN_OUTBOUND -2 /* Kennzeichnung fuer ausgehende Server-Links im Aufbau */ -#define NOTICE_TXTPREFIX "" /* Kennzeichnung fuer Server-NOTICEs an User */ +/* Read and write buffer sizes */ +/** Size of the read buffer of a connection in bytes. */ +#define READBUFFER_LEN 2048 +/** Size that triggers write buffer flushing if more space is needed. */ +#define WRITEBUFFER_FLUSH_LEN 4096 + +/** Maximum size of the write buffer of a connection in bytes. */ +#define WRITEBUFFER_MAX_LEN 32768 + +/** Maximum size of the write buffer of a server link connection in bytes. */ +#define WRITEBUFFER_SLINK_LEN 65536 + + +/* IRC/IRC+ protocol */ + +/** Implemented IRC protocol version, see RFC 2813 section 4.1.1. */ +#define PROTOVER "0210" + +/** Protocol suffix, see RFC 2813 section 4.1.1. */ +#define PROTOIRC "-IRC" + +/** Protocol suffix used by the IRC+ protocol, see . */ +#define PROTOIRCPLUS "-IRC+" + +#ifdef IRCPLUS +/** Standard IRC+ flags. */ +# define IRCPLUSFLAGS "CHLMSX" #endif +/** Supported user modes. */ +#define USERMODES "abBcCFioqrRswx" + +/** Supported channel modes. */ +#define CHANMODES "abehiIklmMnoOPqQrRstvVz" + +/** Supported channel types. */ +#define CHANTYPES "#&+" + +/** Away message for users connected to linked servers. */ +#define DEFAULT_AWAY_MSG "Away" + +/** Default ID for "topic owner". */ +#define DEFAULT_TOPIC_ID "-Server-" + +/** Prefix for NOTICEs from the server to users. Some servers use '*'. */ +#define NOTICE_TXTPREFIX "" + +/** Suffix for oversized messages that have been shortened and cut off. */ +#define CUT_TXTSUFFIX "[CUT]" + + +/* Defaults and limits for IRC commands */ + +/** Max. number of elemets allowed in channel invite and ban lists. */ +#define MAX_HNDL_CHANNEL_LISTS 50 + +/** Max. number of channel modes with arguments per MODE command. */ +#define MAX_HNDL_MODES_ARG 5 + +/** Max. number of WHO replies. */ +#define MAX_RPL_WHO 25 + +/** Max. number of WHOIS replies. */ +#define MAX_RPL_WHOIS 10 + +/** Default count of WHOWAS command replies. */ +#define DEF_RPL_WHOWAS 5 + +/** Max count of WHOWAS command replies. */ +#define MAX_RPL_WHOWAS 25 + + +#endif /* -eof- */