Commits


ngIRCd Release 23~rc1


Update AUTHORS and .mailmap file And add a note to doc/HowToRelease.txt to not forget to update the list of authors in the future ...


Update ChangeLog file


Add ".clang_complete" file This file is used of the "linter-clang" package of the Atom editor, for example.


Make server-to-server protocol more robust Now ngIRCd catches more errors on the server-to-server (S2S) protocol that could crash the daemon before. This hasn't been a real problem because the IRC S2S protocol is "trusted" by design, but the behavior is much better now. Thanks to wowaname on #ngircd for pointing this out!


platformtest.sh: Fix quoting


autogen.sh: Fix parameter quoting


ngircd.init: Fix non-POSIX "==" test operator


Reproducible builds At the moment ngircd fails the tests for reproducible builds in Debian since it uses the __DATE__ and __TIME__ macros for the INFO command. Instead of patching this out I decided to implement an optional constant BIRTHTIME that allows you to set a time stamp for the "Birth Date" information, in seconds since the epoch, like in export CFLAGS += -DBIRTHTIME=$(shell date +%s --date="2015/08/15 23:42:22") In the future, Debian will provide a SOURCE_DATE_EPOCH environment variable, dealing with the situation until then will be my job. The time format was taken from the NGIRCd_StartStr formatting in ngircd.c so the "Birth Date" and "On-line since" lines in the INFO output look similar: :irc.example.net 371 nick :ngIRCd 22.1-IDENT+IPv6+IRCPLUS+PAM+SSL+SYSLOG+ZLIB-x86_64/pc/linux-gnu :irc.example.net 371 nick :Birth Date: Tue Aug 25 2015 at 18:11:11 (CEST) :irc.example.net 371 nick :On-line since Tue Aug 25 2015 at 18:11:33 (CEST) :irc.example.net 374 nick :End of INFO list The format of the time stamped is changed, but as far as I can tell, there's no rule that is violated by that. Bonus level: Reformat the messages so the time stamps are aligned.


Update systemd service file


Update NEWS and ChangeLog files


Whitespace fixes (no functional changes)


Fix debug message "Client ... is closing connection" It should be "host:port"!


INSTALL: Add deprecation notice for "PredefChannelsOnly" Obviously I forgot to list this for ngIRCd 21 ... oops!


"NoticeAuth" configuration variable is deprecated now!


Merge pull request #217 from SaberUK/master+notice-auth Use "NOTICE *" before registration instead of "NOTICE AUTH".


Channel mode "N" is targeted for ngIRCd 23.


Rename NoticeAuth to NoticeBeforeRegistration. The old name is still supported for compatibility reasons.


First check if channel has mode "N", then check membership This should be more efficient.


Use "NOTICE *" before registration instead of "NOTICE AUTH". AUTH is a valid nickname so sending notices to it is probably not a good idea. Use * as the target instead as done with numerics when the nick is not available. This mimics the behaviour in Charybdis, IRCD-Hybrid, InspIRCd 2.2, Plexus 4, etc.


Merge pull request #214 from Flupsy/channel-mode-N Channel mode N (users on this channel can't change their nick)


Merge pull request #215 from tejr/master Specify session context for OpenSSL clients. Closes #182.


Add "build+*" to .gitignore file


Only enforce channel mode N on users (not servers or services)


Specify session context for OpenSSL clients Reconnecting to ngIRCd 22.1 built with OpenSSL with some OpenSSL clients, including Pidgin and stunnel 5.06, attempts to reuse a session and fails due to the absence of this line. The error message in syslog from ngIRCd is: > SSL protocol error: SSL_accept (error:140D9115:SSL > routines:SSL_GET_PREV_SESSION:session id context uninitialized) This patch appears to fix the problem for both Pidgin and stunnel; it may work for other OpenSSL clients that attempt to re-use sessions. * <https://github.com/ngircd/ngircd/issues/182> * <https://developer.pidgin.im/ticket/11568> * <https://www.openssl.org/docs/ssl/SSL_CTX_set_session_id_context.html>