about summary refs log tree commit diff
AgeCommit message (Collapse)Author
2020-12-29Explicitely cast Conf_MaxPenaltyTime (time_t) to "long"Alexander Barton
This fixes the following compiler warning, for example on OpenBSD: conf.c: In function 'Conf_Test': conf.c:391: warning: format '%ld' expects type 'long int', but argument 2 has type 'time_t' Thanks to Götz Hoffart for reporting this!
2020-12-29Don't set AI_ADDRCONFIG, even when it existsAlexander Barton
Basically, the issue described in #281 is that the test suite uses the IPv4 address 127.0.0.1 on an IPv6-only host. But this is the "safest" thing to do in (almost) all other setups: relaying on DNS host names makes things even more complex, as different systems map 127.0.0.1 differently (including the reverse lookup; that's why we switched to 127.0.0.1 back in 2014, see commit 3f807e10457). But with AI_ADDRCONFIG set, on an IPv6-only host, we prevent 127.0.0.1 to get translated properly, even when the loopback interface has this address configured! So don't set it any more. The drawback is that the resolver possibly returns more addresses now, even of an unsupported/not connected address family; but this shouldn't do much harm in practice, as ngIRCd iterates over all returned addresses while trying to establish an outgoing connection. Closes #281.
2020-11-28FAQ.txt: There is no "CVS" anymore, we use Git!Alexander Barton
2020-11-02Fix typo in comment: operaor -> operatorRolf Eike Beer
2020-11-02Revert "Show allowed channel types in ISUPPORT(005) numeric only"Alexander Barton
The ISUPPORT(005) numeric lists only channel prefixes which are listed in the "AllowedChannelTypes" configuration option. And if this is the empty string ("") for example, this now results in IRC clients assuming "oh, no channel prefix characters at all, so no channels at all, so no PRIVMSG can go to any channel" -- which is not the case when there are pre-defined channel set up or other servers still having channels! So "allowed channel types" != "supported channel types", and we always have to list all supported ones in the ISUPPORT(005) numeric! This reverts commit 4b7e8db418340576c95f1edad8470b66d6fe886d. Closes #285.
2020-11-01Test suite: Wait 2 seconds after reloading the daemonAlexander Barton
On reload, all listening ports are closed, configuration updated, and then opened again. Which leads to subsequent tests running while the daemon isn't listening on any ports, and that's why the tests fail. The "proper" way whould be to loop and check for open ports, but waiting is what the start-server.sh script does right now, so stick with this in reload-server.sh for now as well. This fixes the issue, at least on my RaspberryPi ... Closes #280.
2020-10-20Update Platforms.txtAlexander Barton
- Update powerpc/apple/darwin8.11.0 (gcc 4.0.1) - Add x86_64/apple/darwin19.6.0 (Apple clang 12.0.0) - Add x86_64/unknown/freebsd12.1 (FreeBSD clang 8.0.1) - Update x86_64/pc/linux-gnu (gcc 8.3.0) - Add x86_64/unknown/netbsd9.0 (gcc 7.4.0) - Add x86_64/unknown/openbsd6.6 (gcc 4.2.1) - Add x86_64/unknown/openbsd6.6 (OpenBSD clang 8.0.1) Thanks to Götz Hoffart <goetz@hoffart.de> for the PowerPC test!
2020-10-20platformtest.sh: Try to mangle CLang name more intellligentlyAlexander Barton
2020-08-04Fixed Atheme Linksxnaas
.org and not .net
2020-06-20ngIRCd Release 26 rel-26Alexander Barton
2020-06-20INSTALL.md: Add instructions for ArchLinux (pacman)Alexander Barton
2020-06-11ngIRCd Release 26~rc2 rel-26-rc2Alexander Barton
2020-06-11Update NEWS, ChangeLog and doc/Platforms.txt filesAlexander Barton
2020-06-11Add AppStream metadata file: contrib/de.barton.ngircd.metainfo.xmlAlexander Barton
2020-06-11Don't send invalid CHANINFO commands when no key is setAlexander Barton
It can happen that a channel is +k, but no key is set: for example by misconfiguring a pre-defined channel. In this case, ngIRCd sent an invalud CHANINFO command ("CHANINFO #test +Pk 0 :'", note the unset key represented by the two spaces) to its peers. Fix this and enhance the CHANINFO documentation.
2020-05-31Update NEWS and ChangeLog filesAlexander Barton
2020-05-26Update description text in manual page, too!Alexander Barton
2020-05-26ngircd.spec: Fix name of README.md and INSTALL.mdAlexander Barton
2020-05-26Update description textsAlexander Barton
Bring them in line with the updated texts on the homepage.
2020-05-26IRC_SQUIT(): Fix use-after-free when unregistering the sending clientAlexander Barton
2020-05-25IRC_SERVER: Make sure that the client sent a prefixAlexander Barton
The SERVER command is only valid with a prefix when received from other servers, so make sure that there is one and disconnect the peer if not (instead of crashing ...). This obsoletes PR #275. Thanks Hilko Bengen (hillu) for finding & reporting this as well for the patch & pull request! But I think this is the "more correct" fix.
2020-05-25Enhance debug logging for PONG commandsAlexander Barton
Distinguish between expected and unexpected PONG commands.
2020-05-25Fix PING-PONG handling when processing backlog in read buffersAlexander Barton
Prior to this commit, the PONG wasn't registered correctly, becauuse the "last ping" time was set to time(NULL), which could be bigger than the "last data" time stamp, for example when handling the read buffer took more than 1 second -- and this resulted in the PONG time out kicking in effectively disconnecting a newly linked server for example, because ngIRCd thought it was still waiting for a PONG: last data < last ping. Now the "last ping" value has three possible values: 0: new connection, no PING, no PONG so far. 1: got a PONG, no longer waiting for a PONG. <t>: time stamp of last sent out PING command.
2020-05-25Revert "Set the "last data" time to "last ping" time when updating the latter"Alexander Barton
This patch completely broke the PING-PONG logic: now ngIRCd never disconnects any stale peers but keeps sending out PINGs over and over again ... The real issue (server disconnects right after connect) will be fixed in the next commit, but let's revert to the somewhat "half-broken but 'known' state" first ... This reverts commit 79a917f954bef8089967786bd3597a6e5ff5c336.
2020-05-22testsuite: Add missing files to EXTRA_DISTHilko Bengen
26~rc1 as extracted from tarball cannot be built/tested with SSL support because of a missing script and certificates.
2020-05-10ngIRCd Release 26~rc1 rel-26-rc1Alexander Barton
2020-05-10Update config.guess and config.sub to recent versionsAlexander Barton
- config.guess: 2020-04-26 - config.sub: 2020-05-04 And set both scripts +x, they are executable.
2020-05-10Update NEWS and ChangeLog filesAlexander Barton
2020-05-10Add missing authors to AUTHORS, tweak ".mailmap" fileAlexander Barton
2020-05-10Tweak & update doc/HowToRelease.txt a bit ...Alexander Barton
2020-05-07Allow more characters per line in MOTD and help text filesAlexander Barton
Change the line buffer in the Read_TextFile() function from 127 to COMMAND_LEN (=512) bytes. Lines can't even get that long, because they have to be prefixed before being sent to the client, so this is a sane maximum. This allows for even more "fancy" and "wider" MOTDs :-) Closes #271.
2020-05-07Show allowed channel types in ISUPPORT(005) numeric onlyAlexander Barton
Don't show the static list of all possibly available channel types ... Closes #273.
2020-05-07Platforms.txt: Add x86_64/apple/darwin19.0.0Alexander Barton
- Add x86_64/apple/darwin19.0.0 (Apple clang 11.0)
2020-05-07Update Platforms.txtAlexander Barton
- Update powerpc/apple/darwin8.11.0 (gcc 4.0.1) - Add mips/sgi/irix6.5 (SGI C compiler) - Add mipsel/unknown/netbsd8.0 (gcc 5.5.0) Thanks to Götz Hoffart <goetz@hoffart.de>!
2020-05-07SSL test server: Use port 6790, like "test server #2"Alexander Barton
Don't use the "standard" IRC SSL port 6697, as this easily collides with real (ng)IRCd instances running on the same machine. And by reusing port 6790, which is already used by the "test server #2", we don't need any other port than the test suite already uses.
2020-05-06Git: Ignore generated files of SSL testsAlexander Barton
2020-05-06Merge pull request #269 from hillu/gnutls-reload-certAlexander Barton
Add support for GnuTLS certificate reload. Thanks a lot, Hilko Bengen!
2020-05-04Update Client_SetHostname() to not use strpbrk()Alexander Barton
Not sure about the portability of strpbrk() in really ancient OS, and this was the only place where it became used recently in ngIRCd ... So let's play it safe! ;-)
2020-05-04Allow hostmask cloaking when rDNS is disabledmichi
2020-05-04Don't wait for the network when read buffers possibly hold commandsAlexander Barton
There is no point in waiting up to one second for the network receiving new data when there is still a read buffer holding at least one command; we shouldn't waste time but handle it immediately!
2020-05-04Handle commands in the read buffer before reading more dataAlexander Barton
If there are more bytes in the read buffer already than a single valid IRC command can get long (513 bytes, COMMAND_LEN), wait for this/those command(s) to be handled first and don't try to read even more data from the network (which most probably would overflow the read buffer of this connection soon).
2020-05-04Read_Request(): Clean up code and add some more commentsAlexander Barton
No functional changes.
2020-05-04Revert "Increase read buffer size for server connections"Alexander Barton
This reverts commit c6e3c13f27744971fcb1d2de4e561d3bcdaa5aed. This sounded like the right approach at first, but I'm not that sure that it really makes sense to have different sizes of read buffers: the per-connection read buffer only needs to keep data that is needed to parse one full command, be it plain text, encrypted and/or compressed. Then ngIRCd should handle this one command, move leftover data to the beginning of the buffer and read the next chunk from the network that is missing to get the next complete command (512 bytes at max). So I revert this for now and try to fix the logic in Read_Request(), which is broken nevertheless, as it results in servers becoming disconnected during "server burst" when "big" lists are transferred.
2020-05-03Correctly use Config_Error() instead of Log() in Read_Config()Alexander Barton
The name of the Config_Error() function is misleading: it is not only used to show configuraton errors, but all messages shown during normal operation as well as for "config testing": it takes care of the correct formatting of the messages (syslog, forground logging, config testing). This fixes commit bb1d014abad8.
2020-05-03contrib/nglog.sh: Looks like GNU awk (gawk) is needed ...Alexander Barton
2020-05-03Update Travis-CI configuration, "sudo" is depreactedAlexander Barton
2020-05-03Log G-/K-Line changes only when not initiated by a serverAlexander Barton
This prevents the log from becomming spammed during "net bursts".
2020-05-03Set the "last data" time to "last ping" time when updating the latterAlexander Barton
This is required because the PING can be received quite a bit earlier than it is actually handled, for example during "server burst" or other heavy operations: So the times won't match and PING-PONG logic would become garbled, because we test for "last ping > last data" to determine if a PING already was sent or not.
2020-04-25updating testsuite to support ssl-testsJohann Hartwig Hauschild
2020-04-20INSTALL.md: Add not about removed legacy optionsAlexander Barton