Commits


Allow ngIRCd to detect services connected to an "virtual services server". Introduce a new configuration variable "ServiceMask" in SERVER blocks to define a mask matching nick names that should be treated as services. Regular servers don't need this parameter (leave it empty, the default), but you should set it to "*Serv" when connection ircservices, for example. This patch allows ngIRCd to detect services, it doesn't change the functionality: you only get different log messages ;-)


TLS/SSL support: code changes. This adds the required code to enable ssl/tls support during compile and run time, respectively.


--configtest: return non-zero exit code if there are errors


Remove ListenIPv4/ListenIPv6 options. Use "Listen = list,of,addresses" instead.


make Listen parameter a comma-seperated list of addresses. this also obsoletes ListenIPv4 and ListenIPv6 options. If Listen is unset, it is treated as Listen="::,0.0.0.0". Note: ListenIPv4 and ListenIPv6 options are still recognized, but ngircd will print a warning if they are used in the config file. Also, some plattforms require that ai_socktype is set in the getaddrinfo() hints structure.


--configtest: fix missing whitespace at "ConnectIPv4" option.


Merge branch 'master' of git://git.breakpoint.cc/fw/ngircd-fw


IPv6: Add config options to disabe ipv4/ipv6 support. This also enables ipv6-only setups.


Do not exit unconditionally if config file cannot be opened ngircd will exit if the config file cannot be opened. While thats okay if ngircd starts up for the first time, it isn't when we are re-reading the config file after a /REHASH or SIGHUP.


IPv6 support. all references to struct sockaddr/in_addr have been removed from src/ngircd. libngipaddr (in src/ipaddr/) hides all the gory details. See src/ipaddr/ng_ipaddr.h for API description.


bind ListenAddress for outgoing connections ngircd would always use INADDR_ANY for outgoing connections; which might not be desirable. Added new [Server] option "Bind" to set source ip.


Introduce option to configure the maximum nick name lenth in ngircd.conf - New configuration option "MaxNickLength" to specify the allowed maximum length of user nick names. Note: must be unique in an IRC network! - Enhanced the IRC+ protocol to support an enhanced "server handshake" and enable server to recognice numeric 005 (ISUPPORT) and 376 (ENDOFMOTD). See doc/Protocol.txt for details.


New config option NoDNS: disables all DNS queries.


configtest would still print "-1" for MaxConnections, MaxConnectionsIP and MaxJoins if any of those values was set to 0.


accoring to comments in the code, MaxConnections, MaxConnectionsIP and MaxJoins options allow setting values < 0 -- this isn't the case. Comments adjusted.


Add new server config option to disable automatic connect. (Tassilo Schweyer)


add support for predefined-channel configuration of k and l modes


predefined channels MUST start with '#', but this is not very intuitive, since # is also used as a comment character in ngircd.conf. Thus we prefix the name with '#' if it is missing.


Fixed validation of server names containing digits.


New configuration option "PredefChannelsOnly": if set, make all JOINs to-non existants channel return ERR_BANNEDFROMCHAN_MSG, restricting users to those channels defined in the config file.


Update info text of local server after re-reading configuration.


Validate "ServerName" variable.


Use some more specific data types (e. g. pid_t vs. int), make "SPLint" happy :-)


Make connid same as connection fd.


Minor whitespace fixes.


Changed Handle_Write() to not close sockets itself but to call Conn_Close.


gcc 4: "warning: declaration of 'dup' shadows a global declaration".


Mostly formatting; changes needed for SSL merge


Complain if MyPassword starts with ':'. (Reported by Ben Korvemaker)


reformatted Handle_SERVER()


Removed unnecessary #define of "LOCAL", now use plain C "static" instead.


internal changes needed for future ssl support


topic no longer limited to 127 chars (now only limited by protocol)


change Handle_OPERATOR() formatting


made a few config options unsigned.


remove FD_SETSIZE check (now in io_* functions)


s/sprintf/snprintf


use strdup() to add oper hostname mask.


When validationg the configuration file wait for a keypress only if both stdin and(!) stdout are valid tty's.


Conf_Test(): check if stdin (and not stdout...) is connected to a terminal.


changed type of Conf_ListenPorts[] from "unsigned int" to UINT16.


Remove INT, LONG, BOOLEAN, STATIC, CONST, CHAR datatypes. use stdbool.h / inttypes.h if available.


fix Config_Error_NaN prototype (first argument missed "const")


New configuration option "OperServerMode".


New configuration option "Mask" for [Operator] sections to limit OPER command.


New configuration variable "PidFile", section "[Global]": if defined, the server writes its process ID (PID) to this file. Default: off. Idea by Florian Westphal, <westphal@foo.fh-furtwangen.de>.


Code cleanups from Florian Westphal, <westphal@foo.fh-furtwangen.de>: wrote functions for common error messages.


Made ngIRCd compile on HP/UX 10.20 with native HP pre-ANSI C compiler and most probably other older C compilers on other systems.


Fixed wrong variable names in output of "ngircd --configtest".


New "chroot" feature (from Benjamin Pineau), introducing new configuration variables "ChrootDir" and "MotdPhrase".


Added #include for strings.h and added some casts to remove compiler warnings.


Fixed error messages related to server name configuration; updated sample configuration file. (from 0.7.x)


New configuration option "MaxConnectionsIP".


New configuration option "Listen" to bind the server to a specific ip.


"ServerName" is checked better now: a dot (".") is required.


Fixed --configtest: there is no variable "ServerPwd", it's "Password".


Added implicit initialisation of "i" in Conf_GetServer to workaround a egcs 2.91.66 bug which claims that this valiable could be used uninitialized.


Fixed spelling mistake :-)


Changed all PACKAGE's to PACKAGE_NAME and all VERSION's to PACKAGE_VERSION.


Clean up duplicate servers correctly.


- New functions Conf_EnableServer(), Conf_DisableServer() and Conf_AddServer(). - Changed "once"-server-config-flag into a generic flag.


- Cleaned up handling of server configuration structures.


- replaced a lot of strcpy() calls with strlcpy() which is more secure.


- replaced a lot of strcat() calls with strlcat() which is more secure.


- replaced all strncpy()'s and strncat()'s with strlcpy() and strlcat().


- definition of CONFIG_FILE and MOTD_FILE is now compatible with -Wtraditional.


- Validate_Config(): removed unused variable "i".


- If Conf_MaxConnections is "ulimited" (<1) it is limited to FD_SETSIZE.


- validate Conf_MaxConnections against FD_SETSIZE if available; - fixed up some log messages and enhanced configuration validation.


- removed Conf_MaxPChannels and reverted to old behavior.


- new configuration variables: MaxJoins, MaxPChannels.


- translated file header and comments to english; - new file ident semantics.


- Konfiguration wird nun besser validiert (Laenge, Zahlen).


- nun ueberfluessige Meldung entfernt.


- bessere Log-Meldungen.


- Server identifizieren sich nun mit asyncronen Passwoertern.


- anstelle von "ListenPorts" wird nun korrekt "Ports" ausgegeben.


- in ServerUID und ServerGID kann nun jeweils auch der Name (und nicht nur die numerische ID) verwendet werden.


- neue Konfigurationsvariable "MaxConnections".


- Anpassungen bzw. Fixes fuer "strict RFC"-Mode.


- verwendete Datentypen aufgeraumt: beispielsweise INT32 ist nun oft ein LONG.


- "format-string-bugs", die zum Abbruch des Servers fuehrten, behoben.


- kleinere "code cleanups".


- Fehler bei Validierung von "AdminInfo2" behoben.


- Admin-Info eingebaut (Variablen "AdminInfo1", "AdminInfo2" und "AdminEMail"); - Bug bei zu langem Operator-Name behoben.


- neue Konfigurationsoption "OperCanUseMode" (Sektion "Global"): ist sie aktiv, koennen IRC-Operatoren immer Channel-Modes setzen.


- Weitere Anpassungen an pre-ANSI-Compiler.


- Anpassungen an pre-ANSI-Compiler, - Includes aufgeraumt: Header includieren keine anderen mehr.


- bei "--configtest" werden keine leeren Bloecke mehr ausgegeben.


- persistente und vordefinierte Channels implementiert.


- wenn kein ListenPort definiert ist, so wird nun 6667 als Default verwendet.


- neue Konfigurations-Variablen ServerUID und ServerGID.


- neue Funktion Conf_Test() zum Testen der Konfiguration. - Conf_File ist entfallen, ist nun NGIRCd_ConfFile.


- einige Anpassungen nach Code-Check mit SPLint ;-)


- Default PONG-Timeout auf 20 Sekunden verdoppelt.


- externe portab-Header werden nicht mehr benoetigt/benutzt, dadurch einige Aenderungen an diversen Source-Dateien und Headern. - Dateien enthalten keine CVS-History mehr.


*** empty log message ***


- Handling von "--version" und "--help" nochmal geaendert ...


- Dateinamen und Pfad sind nun in Konstanten definiert.


- strncpy() und vsnprintf() kopieren nun etwas "optimierter" (1 Byte weniger) :-)


- Server-Verbinungen werden beim Start erst nach kurzer Pause aufgebaut.


- Fehlermeldungen korrigiert.


- Bug bei Remote-Server-Namen entfernt: diese wurden falsch gekuerzt.


- das Server-Passwort kann nun konfiguriert werden.


- Konfigurationsdatei "Samba like" umgestellt. - es koennen nun mehrere Server und Oprtatoren konfiguriert werden.


- neue Defines fuer max. Anzahl Server und Operatoren.


- #include's fuer stdlib.h ergaenzt.


- viele neue Befehle (WHOIS, ISON, OPER, DIE, RESTART), - neuen Header "defines.h" mit (fast) allen Konstanten. - Code Cleanups und viele "kleine" Aenderungen & Bugfixes.


- Unterstuetzung fuer die Konfigurationsdatei eingebaut.


- MOTD-Datei ist nun konfigurierbar und wird gelesen.


- "Code Cleanups".


- erste Konfigurations-Variablen definiert: PING/PONG-Timeout.


- Modul fuer Server-Konfiguration begonnen.