Commit Briefs
Test suite/platformtest.sh: Detect when tests have been skipped
Detect if some tests have been skipped, for example when telnet(1) or expect(1) is missing: ./contrib/platformtest.sh will echo a warning message now.
Platforms.txt: Add and update systems
- Add sparc/unknown/openbsd5.5 - Update powerpc/apple/darwin7.9.0 - Update x86_64/unknown/linux-gnu, Open64 - Update x86_64/unknown/linux-gnu, Sun C 5.12/Solaris Studio 12.3 - Update x86_64/unknown/linux-gnu, tcc 0.9.25 Thanks to Götz Hoffart <goetz@hoffart.de>!
ngIRCd Release 21.1
(cherry picked from commit ee28e76df2a73f3bb4bcf69c644eae9a10298a58)
Platforms.txt: Update powerpc/apple/darwin7.9.0
- Update powerpc/apple/darwin7.9.0, gcc 3.3 Thanks to Götz Hoffart <goetz@hoffart.de>!
Platforms.txt: Update x86_64/unkn./linux-gnu, clang 3.x
- Update x86_64/unknown/linux-gnu, clang 3.2 => clang 3.3
Platforms.txt: Add and update more systems
- update i686/pc/linux-gnu, gcc 2.7.2 - update powerpc/apple/darwin6.8, gcc 3.1 - add powerpc/apple/darwin9.8.0, gcc 4.0.1 Thanks to Götz Hoffart <goetz@hoffart.de>!
doc/Bopm.txt: Update "connregex" and "kline" for current ngIRCd
Thanks to "kerin" on IRC for pointing this out!
Allow "DefaultUserModes" to set all possible modes
Let IRC_MODE() detect that the "fake" MODE command originated on the local sever, which enables all modes to be settable using "DefaultUserModes" that can be set by regular MODE commands, including modes only settable by IRC Operators.
Spoofed prefixes: Really kill connection on non-server links
This fixes commit 6cbe1308 which only killed the connection when the spoofed prefix itself belonged to a non-server client.
Implement user mode "F": "relaxed flood protection"
ngIRCd relaxes its flood protection for users having the user mode "F" set and allows them to rapidly send data to the daemon. This mode is only settable by IRC Operators and can cause problems in the network -- so be careful and only set it on "trusted" clients! User mode "F" is used by Bahamut for this purpose, for example, see <http://docs.dal.net/docs/modes.html#4.9>.
Handle "throttling" in a single function
ngIRCd uses "command throttling" and "bps throttling" (bytes per second). The states are detected in different functions, Conn_Handler() and Read_Request(), but handle the actual "throttling" in a common function: this enables us to guarantee consistent behavior and to disable throttling for special connections in only one place, eventually.
Streamline DEBUG_ARRAY, DEBUG_BUFFER, DEBUG_IO, DEBUG_ZIP
Change all #define's to follow the form #define DEBUG_xxx {0|1} to disable (0, default) or enable (1) additional debug messages. And somewhat enhance some DEBUG_BUFFER messages.
conn.c: Code cleanup
Reformat and restructure some code, move all SSL related code into one single #ifdef block, for example.
Xcode: remove imp.h and exp.h from project file
These files have been removed from ngIRCd in commit 259c314d, "Remove imp.h and exp.h header files".
Re-add #include's for header files of the C file itself
This partially reverts commit b130b35f4, "Update #include's: remove unused and add missing ones", but fixes the following compiler and analyzer warnings of Apple Xcode 5: "Semantic issue: No previous prototype for function 'yyy'"
Update #include's: remove unused and add missing ones
The "deheader" tool (<http://www.catb.org/~esr/deheader/>) has been used to find unused #include directives as well as missing ones. Tested on: - A/UX 3.1.1 - ArchLinux (2014-03-17) - Debian GNU/Hurd - Debian GNU/Linux 6.0.9 - Debian GNU/Linux 7.4 - Fedora 20 - FreeBSD 9.2 - OpenBSD 4.8 - OpenBSD 5.1 - OS X 10.9 - Solaris 11
portab.h: Restructure and clean up code
- Don't use HAVE_SYS_TYPES_H, <sys/types.h> is a required header now. - Streamline check for boolean data types. - Better indent #ifdef constructs.
configure[.ng]: <sys/types.h> is a required header file
ngIRCd already includes <sys/types.h> in a lot of places without checking for its existence (for example in "ngircd.c", "io.c", ...), therefore make it a required header file.
