Alexander Barton [Mon, 17 Mar 2014 21:59:58 +0000 (22:59 +0100)]
conn.c: Code cleanup
Reformat and restructure some code, move all SSL related code into
one single #ifdef block, for example.
Alexander Barton [Mon, 17 Mar 2014 17:07:51 +0000 (18:07 +0100)]
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".
Alexander Barton [Mon, 17 Mar 2014 17:02:57 +0000 (18:02 +0100)]
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'"
Alexander Barton [Mon, 17 Mar 2014 01:13:15 +0000 (02:13 +0100)]
Update copyright notices of recently changed files
Alexander Barton [Mon, 17 Mar 2014 01:28:39 +0000 (02:28 +0100)]
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
Alexander Barton [Mon, 17 Mar 2014 00:17:30 +0000 (01:17 +0100)]
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.
Alexander Barton [Sun, 16 Mar 2014 23:47:45 +0000 (00:47 +0100)]
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.
Alexander Barton [Sun, 16 Mar 2014 23:45:07 +0000 (00:45 +0100)]
io.c: <sys/time.h> is only needed when using select()
Only include the <sys/time.h> header when using the select() IO API,
it isn't required otherwise.
Alexander Barton [Sun, 16 Mar 2014 23:17:02 +0000 (00:17 +0100)]
Remove imp.h and exp.h header files
These include files don't have a function any more, remove them.
Alexander Barton [Sun, 16 Mar 2014 21:59:03 +0000 (22:59 +0100)]
strdup.c: Code cleanup
Alexander Barton [Sun, 16 Mar 2014 21:28:37 +0000 (22:28 +0100)]
Don't define SSL_Want{Read|Write}() when SSL is disabled
Not even call the "dummy" functions.
Alexander Barton [Sun, 16 Mar 2014 21:11:26 +0000 (22:11 +0100)]
Code cleanup, remove blank lines
Alexander Barton [Sun, 16 Mar 2014 19:07:08 +0000 (20:07 +0100)]
Fix two K&R C portability issues
Fix the following two errors emitted by the Apple K&R C compiler
on Apple A/UX:
"./class.c", line 47: no automatic aggregate initialization
"./class.c", line 47: illegal lhs of assignment operator
"./conf.c", line 1052: syntax error
Tested on A/UX 3.1.1.
Alexander Barton [Fri, 28 Feb 2014 21:26:41 +0000 (22:26 +0100)]
Merge pull request #6 from norrs/pam_server_password_fix
Validate server password when PAM is disabled.
Roy Sindre Norangshol [Wed, 26 Feb 2014 23:21:18 +0000 (00:21 +0100)]
Use server password when PAM is compiled in but disabled
Alexander Barton [Sun, 23 Feb 2014 17:20:47 +0000 (18:20 +0100)]
CHARCONV: Fix handling conversion errors
Don't overwrite already converted text!
Alexander Barton [Sun, 9 Feb 2014 15:01:13 +0000 (16:01 +0100)]
Streamline punctuation of log messages
See commit
d38d153f for details.
Alexander Barton [Sun, 2 Feb 2014 19:28:21 +0000 (20:28 +0100)]
Services.txt: Update information for Anope 2.x
Alexander Barton [Sat, 1 Feb 2014 23:27:24 +0000 (00:27 +0100)]
IRC_INVITE(): Code cleanup
Alexander Barton [Sat, 1 Feb 2014 23:27:03 +0000 (00:27 +0100)]
Streamline punctuation of log messages
See commit
d38d153f for details.
Alexander Barton [Mon, 27 Jan 2014 21:59:54 +0000 (22:59 +0100)]
Correctly use cloaked IRC masks on "INVITE nickname"
The cloaked IRC mask of a user is his visible mask, so the daemon has
to use it for generating the "one time" entries for the invite list of
the given channel.
Without this patch, ngIRCd records the real IRC mask which will never
match while the target client is "+x", and even worse, will disclose
the real mask on "MODE #channel +I" commands :-/
Bug reported by Cahata on #ngircd, thanks!
Alexander Barton [Mon, 27 Jan 2014 21:23:47 +0000 (22:23 +0100)]
Use correct sender as target for ISUPPORT replies on "VERSION"
This fixes commit
2e168c78 ("Return ISUPPORT(005) numerics on
'VERSION'") and make sure, that the 005 numerics are correctly
routed back to the sender.
Alexander Barton [Sun, 26 Jan 2014 22:41:59 +0000 (23:41 +0100)]
Return ISUPPORT(005) numerics on "VERSION"
This is how ircd-seven, Charybdis, Hybrid, and InspIRCd behave,
for example.
Alexander Barton [Sun, 26 Jan 2014 22:40:58 +0000 (23:40 +0100)]
configure: Only link "contrib/Debian" if it exists
This isn't the case on "VPATH builds", for example.
Alexander Barton [Tue, 21 Jan 2014 22:04:59 +0000 (14:04 -0800)]
Merge pull request #5 from grawity/accountname-whois
Show account name in WHOIS
Mantas Mikulėnas [Mon, 20 Jan 2014 12:25:11 +0000 (14:25 +0200)]
Show account name in WHOIS
This uses the same numeric as Charybdis and ircu families.
Alexander Barton [Sun, 19 Jan 2014 14:32:20 +0000 (15:32 +0100)]
ngircd.conf.5: Update manual page
Alexander Barton [Fri, 17 Jan 2014 22:11:37 +0000 (23:11 +0100)]
Merge branch 'no-range-matching' of git://arthur.barton.de/ngircd-alex
* 'no-range-matching' of git://arthur.barton.de/ngircd-alex:
Remove "range matching" functionality
Alexander Barton [Fri, 17 Jan 2014 20:04:10 +0000 (21:04 +0100)]
Use $(MKDIR_P) instead of $(mkinstalldirs) in Makefile's
And test for "mkdir -p" using AC_PROG_MKDIR_P in "configure".
Alexander Barton [Fri, 17 Jan 2014 15:18:55 +0000 (16:18 +0100)]
Fix configure script and "make check" for TCP Wrappers
Add missing #include's and static variables.
Problem spotted on OpenBSD.
Alexander Barton [Fri, 17 Jan 2014 15:10:34 +0000 (16:10 +0100)]
Add libwrap at the end of the configure run
If libwrap becomes added earlier, other tests may fail because of not all
external variables required by libwrap are available when linking: for
example allow_severity and deny_severity.
This patch adds generic support for the LDFLAGS_END and LIBS_END variables
(CFLAGS_END has been implemented already).
Problem spotted on OpenBSD.
Alexander Barton [Wed, 15 Jan 2014 13:58:57 +0000 (14:58 +0100)]
Remove "range matching" functionality
Don't support "range marching" in our pattern matching code using
the "[...]" syntax, because [ and ] are valid characters in nick
names and one has to quote them currently using the "\" character,
which is quite unexpected. For example:
Nick "te[st" => "MODE #channel +b te\[st"
And remove quoting altogether, too, because "*" and "?" don't need
to be quoted because these characters are not allowed in IRC masks,
nicks, and hostnames.
Reported by "hifi" (Toni Spets) on IRC, thanks!
Alexander Barton [Sat, 11 Jan 2014 00:33:24 +0000 (01:33 +0100)]
platformtest.sh: Allow using separate source and build trees
Now you can call platformtest.sh using its complete path name from an
other directory which is then used for building.
See <http://www.gnu.org/software/automake/manual/html_node/VPATH-Builds.html>
Please not that the build system itself is still (re-)genrated in the
original source tree. This can be avoided by passing the "-x" switch to
the platformtest.sh script.
Alexander Barton [Sat, 11 Jan 2014 00:32:12 +0000 (01:32 +0100)]
platformtest.sh: Show only up to 10 bytes of version information
Alexander Barton [Sat, 11 Jan 2014 00:27:12 +0000 (01:27 +0100)]
platformtest.sh: New option "-x", don't renegerate build system
Alexander Barton [Fri, 10 Jan 2014 18:57:03 +0000 (19:57 +0100)]
Client_SetHostname(): Don't use strlen() to test for value
Alexander Barton [Fri, 10 Jan 2014 18:56:08 +0000 (19:56 +0100)]
Test suite: explicitely enable glibc memory checking
Alexander Barton [Wed, 8 Jan 2014 13:18:09 +0000 (14:18 +0100)]
Send "fake '*' key" in "MODE -k" replies
According to RFC 2812 3.2.3 "Channel mode message" and the examples
there, it looks like clients should use "MODE -k <key>" to unset channel
keys; and that's how other servers and services behave and do expect it.
(But please note that this is NOT the case for "MODE -l"!)
In the end, it doesn't make sense to specify a key when UNsetting it at
all, and different services behave diffrently when clients do not send
the currently set key to unset it - some ignore such calls, for example!
But this implementation is quite relaxed, it accepts any key when
unsetting channel mode "k" and even accepts no key at all. But the reply
will always include an "*" character for every "-k" parameter.
Alexander Barton [Mon, 6 Jan 2014 16:20:54 +0000 (17:20 +0100)]
Add "config.cache" to .gitignore file
Alexander Barton [Sat, 4 Jan 2014 23:48:31 +0000 (00:48 +0100)]
platformtest.sh: don't use "test -e", it isn't portable
Alexander Barton [Sat, 4 Jan 2014 23:12:00 +0000 (00:12 +0100)]
Makefile.am: don't use "test -e", it isn't portable
Alexander Barton [Sat, 4 Jan 2014 22:57:05 +0000 (23:57 +0100)]
Support non-standard vsnprintf() return code
C99 states that vsnprintf() "returns the number of characters that
would have been printed if the n were unlimited"; but according to the
Linux manual page "glibc until 2.0.6 would return -1 when the output
was truncated" -- so we have to handle both cases ...
Alexander Barton [Sat, 4 Jan 2014 22:12:56 +0000 (23:12 +0100)]
Partially revert
bc098794: don't require autoconf 2.67
GNU autoconf 2.61 is still sufficient to generate the configure script, even
after updating configure.{ng|in}, so don't require a newer version.
Alexander Barton [Thu, 2 Jan 2014 17:36:18 +0000 (18:36 +0100)]
doc/Platforms.txt: Update some systems to ngIRCd 21
- update i686/pc/cygwin, gcc 4.8.2
- update x86_64/apple/darwin13.0.0, Apple clang 5.0
- update x86_64/unknown/freebsd8.4, gcc 4.2.1
- update x86_64/unknown/freebsd9.1, gcc 4.2.1
- update x86_64/unknown/linux-gnu, gcc 4.8.2
- update x86_64/unknown/linux-gnu, Open64
- update x86_64/unknown/openbsd4.8, gcc 4.2.1
- update x86_64/unknown/openbsd5.1, gcc 4.2.1
Alexander Barton [Thu, 2 Jan 2014 14:33:39 +0000 (15:33 +0100)]
Update configure.ng for autoconf 2.67
We already require GNU autoconf 2.67 for generating our build system (at
least this is what the INSTALL document states), so update the build system
accordingly and implement all changes that autoupdate(1) suggests:
- Update AC_PREREQ and AC_INIT
- Use AC_LINK_IFELSE, AC_RUN_IFELSE, and AC_COMPILE_IFELSE
- Remove AC_TYPE_SIGNAL (we don't use RETSIGTYPE)
Alexander Barton [Thu, 2 Jan 2014 14:27:07 +0000 (15:27 +0100)]
Update Copyright notices for 2014
Alexander Barton [Wed, 1 Jan 2014 23:45:05 +0000 (00:45 +0100)]
Merge branch 'bug167-WebircIPAnoDNS' of git://arthur.barton.de/ngircd-alex
* 'bug167-WebircIPAnoDNS' of git://arthur.barton.de/ngircd-alex:
WEBIRC: Don't respect hostname when DNS is disabled
Alexander Barton [Wed, 1 Jan 2014 23:44:42 +0000 (00:44 +0100)]
Merge branch 'bug165-005-NETWORK' of git://arthur.barton.de/ngircd-alex
* 'bug165-005-NETWORK' of git://arthur.barton.de/ngircd-alex:
Implement new configuration option "Network"
Alexander Barton [Wed, 1 Jan 2014 15:38:36 +0000 (16:38 +0100)]
portabtest: Add checks for strdup(), strndup(), and strtok_r()
Alexander Barton [Wed, 1 Jan 2014 14:57:34 +0000 (15:57 +0100)]
portabtest: Actually test functions
Test functions snprintf(), strlcpy(), strlcat(), vsnprintf() for
correctness, not only existance (which was quite useless, because
if they weren't available, the program could not have been linked
at all ...).
Alexander Barton [Sun, 29 Dec 2013 16:48:25 +0000 (17:48 +0100)]
portabtest: Only use one exit code to indicate errors
Alexander Barton [Sun, 29 Dec 2013 16:46:54 +0000 (17:46 +0100)]
portabtest: Code cleanup
Federico G. Schwindt [Sun, 8 Dec 2013 01:43:55 +0000 (01:43 +0000)]
Fix permanent k/gline
Reported by Toni Spets (hifi - at - jnz - dot - fi).
Alexander Barton [Fri, 27 Dec 2013 22:16:11 +0000 (23:16 +0100)]
Implement new configuration option "Network"
The new configuration variable "Network" is used to set the (completely
optional) "network name", to which this instance of the daemon belongs.
When set, this name is used in the ISUPPORT(005) numeric which is sent to
all clients connecting to the server after logging in.
Closes bug #165.
Alexander Barton [Fri, 27 Dec 2013 21:34:47 +0000 (22:34 +0100)]
WEBIRC: Don't respect hostname when DNS is disabled
When DNS lookups are disabled, don't set the hostname received by the
WEBIRC command, but use the IP address instead.
Reported by Toni Spets <toni.spets@iki.fi>, thanks!
Closes bug #167.
Alexander Barton [Fri, 27 Dec 2013 20:35:53 +0000 (21:35 +0100)]
OS X has a working getaddrinfo() implementation
Alexander Barton [Mon, 11 Nov 2013 23:28:50 +0000 (00:28 +0100)]
Check for working getaddrinfo() function
At least AIX 4.3.3 and 5.1 have a broken implementation of getaddrinfo()
which doesn't handle "0" as numeric service correctly. This patch adds
a configure check for this case and changes all calling functions to only
use getaddrinfo() if it "works".
See <http://www.stacken.kth.se/lists/heimdal-discuss/2004-05/msg00059.html>
Federico G. Schwindt [Tue, 26 Nov 2013 00:19:01 +0000 (00:19 +0000)]
Fix spelling
Alexander Barton [Tue, 3 Dec 2013 11:16:23 +0000 (12:16 +0100)]
doc/Platforms.txt: Add and update more systems
- add i386/unknown/netbsdelf1.5.2, egcs-1.1.2
- update i386/unknown/openbsd5.3, gcc 4.2.1
- add i386/unknown/openbsd5.4, gcc 4.2.1
- add x86_64/unknown/linux-gnu, nwcc 0.8.2
- update x86_64/unknown/linux-gnu, tcc 0.9.25
Thanks to Götz Hoffart <goetz@hoffart.de>!
Alexander Barton [Sun, 24 Nov 2013 17:32:59 +0000 (18:32 +0100)]
doc/Platforms.txt: Add and update more systems
- add i386/unknown/openbsd3.5, gcc 2.95.3
- add x86_64/unknown/linux-gnu, Sun C 5.12
- update mipsel/unknown/linux-gnu, gcc 4.4.5
Thanks to Götz Hoffart <goetz@hoffart.de>!
Alexander Barton [Wed, 13 Nov 2013 10:44:31 +0000 (11:44 +0100)]
doc/Platforms.txt: add DragonflyBSD 3.4 on x86_64
Thanks to Götz Hoffart <goetz@hoffart.de>!
Alexander Barton [Mon, 11 Nov 2013 23:33:30 +0000 (00:33 +0100)]
doc/Platforms.txt: add OpenBSD 5.4 on HPPA
Alexander Barton [Mon, 11 Nov 2013 23:25:28 +0000 (00:25 +0100)]
configure: clean up function definitions
Alexander Barton [Sun, 10 Nov 2013 16:08:41 +0000 (17:08 +0100)]
Only use unsetenv() when it is available
AIX 4.3 dosn't support it, for example.
Alexander Barton [Sat, 9 Nov 2013 22:42:56 +0000 (23:42 +0100)]
conf-ssl.h: make code compatible with pre-ANSI C compilers
Alexander Barton [Sat, 9 Nov 2013 22:41:20 +0000 (23:41 +0100)]
vsnprintf.c: make code compatible with ansi2knr tool
Alexander Barton [Sat, 9 Nov 2013 22:31:51 +0000 (23:31 +0100)]
Remove unused vsnprintf.c test function
Federico G. Schwindt [Thu, 7 Nov 2013 18:17:58 +0000 (18:17 +0000)]
Add comments around some IRC_SetPenalty() calls
Federico G. Schwindt [Thu, 7 Nov 2013 16:53:29 +0000 (16:53 +0000)]
Rework the penalty handling slightly
Increase the penalty for a command before checking its arguments. This
makes the handling more consistent and allow us to move more penalties to
Handle_Request().
Federico G. Schwindt [Thu, 7 Nov 2013 16:29:21 +0000 (16:29 +0000)]
Move IRC_SetPenalty() to Handle_Request() when possible
This centralizes the penalty handling. It also exposes some commands that
lack it for our attention.
Federico G. Schwindt [Thu, 7 Nov 2013 13:20:08 +0000 (13:20 +0000)]
Introduce a macro to define the command list
This will pave the way to other changes and simplifies the entries somewhat.
Federico G. Schwindt [Thu, 7 Nov 2013 10:45:34 +0000 (10:45 +0000)]
When sending an error use the IRC_WriteErrClient() variant
This ensures that all errors have a 2 second penalty.
Federico G. Schwindt [Wed, 6 Nov 2013 21:46:53 +0000 (21:46 +0000)]
On bad /oper set the penalty to 10 seconds
This helps against brute-force attempts.
Federico G. Schwindt [Wed, 6 Nov 2013 18:28:09 +0000 (18:28 +0000)]
Remove unneded IRC_SetPenalty() calls
IRC_WriteErrClient() already calls IRC_SetPenalty(). While here convert
some IRC_SetPenalty() + IRC_WriteStrClient() to IRC_WriteErrClient().
Federico G. Schwindt [Wed, 6 Nov 2013 18:16:05 +0000 (18:16 +0000)]
Use sizeof() intead of the explicit size
Alexander Barton [Fri, 1 Nov 2013 18:12:35 +0000 (19:12 +0100)]
Remove wrong #ifdef in Option_String()
This fixes the following error when compiling without zlib support:
irc.c: In function ‘Option_String’:
irc.c:487: error: ‘options’ undeclared (first use in this function)
Reported by "der_baer" on #ngircd.
Alexander Barton [Thu, 31 Oct 2013 23:05:31 +0000 (00:05 +0100)]
NEWS/ChangeLog: Clean up version numbers and release dates
Alexander Barton [Wed, 30 Oct 2013 21:20:36 +0000 (22:20 +0100)]
ngIRCd Release 21
Alexander Barton [Wed, 30 Oct 2013 21:13:21 +0000 (22:13 +0100)]
doc/Platforms.txt: add Mac OS X 10.6.8
Alexander Barton [Sun, 27 Oct 2013 23:00:06 +0000 (00:00 +0100)]
Update doc/Platforms.txt
Alexander Barton [Sat, 26 Oct 2013 19:34:56 +0000 (21:34 +0200)]
ngircd.init: Make sure no stale PID file is left over
Alexander Barton [Tue, 22 Oct 2013 12:15:34 +0000 (14:15 +0200)]
platformtest.sh/Platforms.txt: allow user names up to 8 characters
Federico G. Schwindt [Wed, 23 Oct 2013 15:00:26 +0000 (16:00 +0100)]
Check and call arc4random_stir() if present
FreeBSD prior to 10.0 does not automatically stir on fork(). Same with
current NetBSD. If arc4random_stir() is present assume is needed and
call it instead of srand().
Alexander Barton [Sun, 20 Oct 2013 16:32:50 +0000 (18:32 +0200)]
Debian: Fix sed(1) rules adjusting "ngircd-full" package
Error introduced by last commit :-/
Alexander Barton [Sun, 20 Oct 2013 16:06:21 +0000 (18:06 +0200)]
Debian: Fix default "HelpFile" file name in ngircd.conf
The "full" package variants must use "/usr/share/doc/ngircd-full/Commands.txt"
and "/usr/share/doc/ngircd-full-dbg/Commands.txt" respectively.
Alexander Barton [Sun, 20 Oct 2013 13:51:03 +0000 (15:51 +0200)]
ngIRCd Release 21~rc2
Alexander Barton [Sun, 20 Oct 2013 13:25:19 +0000 (15:25 +0200)]
platformtest.sh: Detect clang compilers
Federico G. Schwindt [Thu, 17 Oct 2013 21:10:53 +0000 (22:10 +0100)]
Add support for longer config lines
With the introduction of CipherList we could have longer config lines.
Handle up to 1024 bytes and warn if the line will be truncated.
Federico G. Schwindt [Thu, 17 Oct 2013 20:52:15 +0000 (21:52 +0100)]
Report the correct file on error
Alexander Barton [Wed, 16 Oct 2013 20:27:38 +0000 (22:27 +0200)]
doc/Platforms.txt: Add Open64 and tcc C compilers on Linux
Thanks to Götz Hoffart!
Alexander Barton [Wed, 16 Oct 2013 19:59:23 +0000 (21:59 +0200)]
platformtest.sh: Detect tcc compiler
Federico G. Schwindt [Wed, 16 Oct 2013 10:15:27 +0000 (11:15 +0100)]
Add support for arc4random
If arc4random is present it will be used over the srand/rand interface.
This fixes some warnings in OpenBSD-current.
Federico G. Schwindt [Wed, 16 Oct 2013 09:40:14 +0000 (10:40 +0100)]
Fix another strcat warning missed in commit 4c5b43
Alexander Barton [Mon, 14 Oct 2013 21:47:07 +0000 (23:47 +0200)]
platformtest.sh: Clean up GIT source tree, when possible
Alexander Barton [Mon, 14 Oct 2013 21:45:59 +0000 (23:45 +0200)]
platformtest.sh: Detect Apple LLVM (clang) compiler
Alexander Barton [Mon, 7 Oct 2013 21:02:27 +0000 (23:02 +0200)]
Update (date of) manual pages
Alexander Barton [Mon, 7 Oct 2013 20:17:49 +0000 (22:17 +0200)]
ChnageLog file: even more spelling fixes ...
Alexander Barton [Mon, 7 Oct 2013 20:15:22 +0000 (22:15 +0200)]
INSTALL file: Update "Upgrade Information"
Alexander Barton [Mon, 7 Oct 2013 19:59:02 +0000 (21:59 +0200)]
Fix spelling in NEWS and ChangeLog files
Alexander Barton [Mon, 7 Oct 2013 19:56:09 +0000 (21:56 +0200)]
ngircd.c, main(): use strlcat() instead of strcat()
This fixes the following warning on OpenBSD 5.3:
ngircd.o(.text+0xeb4): In function `main':
src/ngircd/ngircd.c:300: warning: strcat() is almost always misused,
please use strlcat()
Thanks to Götz Hoffart for reporting this!