about summary refs log tree commit diff
AgeCommit message (Collapse)Author
2024-01-21Make the description of the "Info" option more preciseAlexander Barton
The "Info" option in the "[Global]" section is optional (so comment it out in the sample configuration file) and set to the server software name and its version when not set (so add this information to the sample configuration file and the ngircd.conf(5) manual page).
2024-01-21Deduce a server name when not set in the configurationAlexander Barton
The server "Name" in the "[Global]" section of the configuration file is optional now: When not set (or empty), ngIRCd now tries to deduce a valid IRC server name from the local host name ("node name"), possibly adding a ".host" extension when the host name does not contain a dot (".") which is required in an IRC server name ("ID"). This new behaviour, with all configuration parameters now being optional, allows running ngIRCd without any configuration file at all.
2024-01-20Explicitly test for the empty string in Channel_UserHasMode()Alexander Barton
Basically this is unnecessary, as Channel_UserModes() always returns a valid pointer and strchr() can deal with an empty (NULL-terminated) string perfectly fine, bit it makes the code a bit more obvious and silences the following warning: In function ‘Channel_UserHasMode’, inlined from ‘Channel_Kick’ at channel.c:384:7: channel.c:784:16: warning: ‘strchr’ reading 1 or more bytes from a region of size 0 [-Wstringop-overread] 784 | return strchr(Channel_UserModes(Chan, Client), Mode) != NULL; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This was seen with "gcc (Debian 12.2.0-14) 12.2.0" at least.
2024-01-20Update the AUTHORS.md fileAlexander Barton
2024-01-20Update the mailing list address to ngircd@lists.barton.deAlexander Barton
2024-01-20Convert the AUTHORS file to MarkdownAlexander Barton
2024-01-20Update included Debian package configurationAlexander Barton
- Rewrite using current dh_make. - Standards-Version: 4.6.2. - No longer build 3 different packages; only build "ngircd" which now includes support for IDENT, PAM (disabled in the ngircd.conf installed by the package), SSL (OpenSSL), ZLib and IPv6. - Update package description accordingly. - No longer install a SysV init file, only install ngircd.service unit.
2024-01-20Remove outdated and obsolete targets from the toplevel MakefileAlexander Barton
This affects targets for Apple Xcode and Package Maker, which both are no longer supported/included in the ngIRCd distribution. See commits 0652c99b and 07219281, this is a leftover ...
2024-01-19Use -Werror when testing for -Wno-format-truncationAlexander Barton
Clang does not know the -Wno-format-truncation option of (current) GCC, but accepts unknown -W... options (exit core 0) but issues a warning message on every invocation. So for example on macOS, where Clang is used as "gcc", a new warning message was shown for every file to compile, since we enabled -Wno-format-truncation in commit 1d527eaf: warning: unknown warning option '-Wno-format-truncation' [-Wunknown-warning-option] Clang no longer acceps unknown -W... options by enabling -Werror, which this patch adds to the CFLAGS while testing for -Wno-format-truncation, which fixes this issue. This fixes commit 1d527eaf.
2024-01-18Annotate "fall through" cases to silence warningsAlexander Barton
Add a "/* fall through */" annotation to "case" statements which actually should "fall through" to silences GCC warning like this: hash.c: In function ‘jenkins_hash’: hash.c:110:27: warning: this statement may fall through [-Wimplicit-fallthrough=] 110 | case 12: c+=((UINT32)k[11])<<24; | ~^~~~~~~~~~~~~~~~~~~~~
2024-01-18Disable GCC -Wformat-truncation when suportedAlexander Barton
Pass -Wno-format-truncation when this is supported by GCC so silence warnings like this: conf.c: In function ‘Read_Config’: conf.c:985:60: warning: ‘snprintf’ output may be truncated before the last format character [-Wformat-truncation=] 985 | snprintf(file, sizeof(file), "%s/%s", | ^ conf.c:985:25: note: ‘snprintf’ output 2 or more bytes (assuming 257) into a destination of size 256 985 | snprintf(file, sizeof(file), "%s/%s", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 986 | Conf_IncludeDir, entry->d_name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The warning is correct, but this is basically why we use snprintf() in the first place.
2024-01-16Spelling fixes, mostly in file commentsAlexander Barton
2024-01-16autogen.sh: Prefere automake 1.11 over other releasesAlexander Barton
GNU automake 1.11 is the last release supporting "de-ANSI-fication" using the included ansi2knr tool. And becuase we _want_ to support old K&R platforms, we try hard to use this release of automake when available to generate our build system.
2024-01-16Autodetect support for IPv6 by defaultAlexander Barton
Until now, IPv6 support was disabled by default, which seems a bit outdated in 2024. Note: You still can pass "--enable-ipv6" or "--disable-ipv6" to the ./configure script to forcefully activate or deactivate IPv6 support.
2024-01-16Do IDENT requests even when DNS lookups are disabledAlexander Barton
Without this patch, disabling DNS in the configuration disabled IDENT lookups as well (for no good reason). This patch allows enabling/disabling DNS lookups and IDENT requests completely separately and enhances the messages sent to the client when "NoticeBeforeRegistration" is enabled, too. Thanks for reporting this, Miniontoby! Closes #291.
2024-01-11Start preparing the ChangeLog for the next release ...Alexander Barton
2024-01-11Update config.guess and config.sub to recent versionsAlexander Barton
- config.guess: 2023-08-22 - config.sub: 2023-09-19
2024-01-11Channel Admins are not allowed to set Channel Owner status!Alexander Barton
This was reported back in April 2021, thanks Sarah! Subject: NGIRCD bug report Date: April 28 2021, 14:30:08 MESZ To: alex@barton.de Hello, I am writing to you to report a bug in ngircd. In any give channel, if an user is with mode +a (admin), he/she can sets mode +/-q(owner) to any other user. This is not inline with the documentation. I've looked into the code irc-mode.c, apparently an if block is missing. Below are the code snippets that I believe fixes the bug. This patch is what Sarah sent in. Thanks a lot!
2024-01-11Convert the FAQ to Markdown and enhance it!Alexander Barton
2024-01-11Test suite: Update for OpenSSL 3.xAlexander Barton
2024-01-11Allow SSL client-only configurations without keys/certificatesAlexander Barton
You don't need to configure certificates/keys as long as you don't configure SSL-enabled listening ports. This can make sense when you want to only link your local daemon to an uplink server using SSL and only have clients on your local host or in you fully trusted network, where SSL is not required.
2024-01-11Remove unmaintained contrib/MacOSX/ folderAlexander Barton
This includes removing the Xcode project. The sample launchd(8) configuration properties list file was moved to "contrib/de.barton.ngircd.plist" and kept.
2024-01-11QuickStart.md: Update title and fix Markdown syntaxAlexander Barton
2024-01-11Update the project description, enhance & fix the README.mdAlexander Barton
2024-01-112024 =:)Alexander Barton
2024-01-06Fix showing the "Ident" option in --configtest outputAlexander Barton
We tested for the wrong #define ... ooops!
2024-01-06Change GnuTLS "slot handling" messages to debug levelAlexander Barton
Those messages are about an internal implementation detail, not relevant for an administrator of ngIRCd.
2024-01-06Enlarge buffer for log messagesAlexander Barton
For example, SSL/TLS certificate information can easily get longer than 256 characters. So enlarge the log buffer to 1 KB.
2024-01-06Respect "SSLConnect" option for incoming connectionsAlexander Barton
Don't accept incoming plain-text ("non SSL") server connections for servers configured with "SSLConnect" enabled. If "SSLConnect" is not set for an incoming connection the server still accepts both plain-text and encrypted connections. This change prevents an authenticated client-server being able to force the server-server to send its password on a plain-text connection when SSL/TLS was intended.
2024-01-06Always initiate closing a connection on errors.Alexander Barton
Always try to close a connection with errors immediately, but try hard to avoid too much recursion. Without this patch, an outgoing server connection could get stuck in an "endless" state trying to write out data over and over again. This tries to fix 04de1423eb26.
2023-10-17Add "hopm.service" to "Wants" and "Before" dependencies in systemd unit fileAlexander Barton
2023-09-17Update Debian package configurationAlexander Barton
This not only bumps the "compat" version, but updates the package dependencies and build rules accordingly. Closes #299.
2023-09-17Update config.guess and config.sub to recent versionsAlexander Barton
- config.guess: 2022-01-09 - config.sub: 2022-01-03
2023-09-17Return ERR_NOTEXTTOSEND on empty PRIVMSG contentValentin Lorentz
They are dropped further down the line anyway; and sending ERR_NOTEXTTOSEND early matches other servers' behavior.
2023-09-17Update and enhance the manual pages a bitAlexander Barton
2023-09-17Merge branch 'katp32/master'Alexander Barton
Thanks Katherine Peeters for the patch and pull request! Closes #294. * katp32/master: Improve documentation for --syslog Added command line flag to enable syslog Split NoSyslog from behaviour of NoDaemon
2023-09-17Conf_Test(): Use yesno_to_str() instead of individual tests and outputAlexander Barton
2023-09-17Channel autojoin: Add missing variable in --configtest outputAlexander Barton
2023-09-17Silence compiler warning in Init_New_Client()Alexander Barton
Use strdup() instead of pointless strndup() to fix the following compiler warning: client.c: In function ‘Init_New_Client’: client.c:216:32: warning: ‘strndup’ specified bound 127 exceeds source size 5 [-Wstringop-overread] 216 | client->away = strndup(DEFAULT_AWAY_MSG, CLIENT_AWAY_LEN - 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-09-17Various fixes and enhancements for the "Autojoin" patchAlexander Barton
- Bring sample-ngircd.conf and ngircd.conf.5 description in line. - Fix configuration parsing, it always showed the 'Unknown variable "Autojoin"' error message, even when everything was perfectly fine. - And fix a build error (at least on macOS with Apple Clang 14): login.c:234:3: error: call to undeclared function 'IRC_JOIN'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] IRC_JOIN(Client, &Req); ^ The #include for the "irc.channel.h" header was missing! - Remove a unused variable that caused a compiler warning: login.c:222:12: warning: unused variable 'n' [-Wunused-variable] size_t i, n, channel_count = array_length(&Conf_Channels, sizeof(*conf_chan)); ^ - Add a explicit cast to fix a compiler warning: login.c:235:15: warning: assigning to 'char *' from 'const char[51]' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] Req.argv[0] = conf_chan->name; ^ ~~~~~~~~~~~~~~~
2023-09-16Channel autojoin functionalityIvan Agarkov
2023-08-032023!Alexander Barton
2023-08-03Hide +i users on "WHOIS <pattern>"Alexander Barton
Let's behave like most(?) other IRC daemons (at least ircd2.11) and hide all +i users when WHOIS is used with a pattern. Otherwise privacy of this users is not guaranteed and the +i mode a bit useless ... Reported by Cahata on #ngircd, thanks!
2023-07-18Update the final "closing connection" messageAlexander Barton
Add some more information (nick name, user name, host name) and bring it in line with some other implementations (at least ircd2.11 and Hybrid).
2023-07-18Fix RPL_INVITING message: It must originate from the serverAlexander Barton
All numeric replies must originate from an IRC server, never from a client. So fix the RPL_INVITING message! Thanks tommyrot for reporting this! Closes #307.
2023-07-05Enhance log messages for refused connectionsAlexander Barton
2023-02-05configure.ng: Include <string.h> for memset in WORKING_GETADDRINFO probeFlorian Weimer
Otherwise, the probe always fails with compilers which do not support implicit function declarations.
2023-01-02Add "+DEBUG" to the version string only when configured with --enable-debugAlexander Barton
The debug log messages are always available and a runtime option (since commit c7de505c), but the assert()'s are only active when ngIRCd was configured with the "--enable-debug" option. So only add "+DEBUG" to the version string when the latter is the case.
2023-01-02Make the debug loglevel always availablemichi
This basically means to unifdef DEBUG in (almost) all places. We keep it in src/portab/portab.h so DEBUG stays available to enable assert(). Also add a comment about this.
2023-01-02Better validate MODE +k & +l parameters and return errorsAlexander Barton
Implement new numeric ERR_INVALIDMODEPARAM_MSG(696) and: - Reject channel keys with spaces and return ERR_INVALIDMODEPARAM_MSG; This was possible until now and resulted in garbled IRC commands later. - Reject empty channel keys and return ERR_INVALIDMODEPARAM_MSG; This was possible until now and resulted in garbled IRC commands later. - Return ERR_INVALIDMODEPARAM_MSG when user limit is out of bounds; This was silently ignored until now. Closes #290. Thanks Val Lorentz for reporting it!