Alexander Barton [Tue, 28 Jun 2011 11:12:06 +0000 (13:12 +0200)]
Fix some wording, use spellchecker ;-)
Alexander Barton [Tue, 28 Jun 2011 11:11:14 +0000 (13:11 +0200)]
doc/SSL.txt: adopt to new configuration file layout
Alexander Barton [Mon, 27 Jun 2011 21:00:30 +0000 (23:00 +0200)]
ngIRCd release 18~rc1
Alexander Barton [Mon, 27 Jun 2011 08:27:07 +0000 (10:27 +0200)]
hash: Use UINT32 instead of uint32_t
Alexander Barton [Sun, 26 Jun 2011 22:33:58 +0000 (00:33 +0200)]
Update NEWS and ChangeLog file for our upcoming next release
Florian Westphal [Sun, 26 Jun 2011 22:16:37 +0000 (00:16 +0200)]
hash: use more recent lookup3 algorithm instead of lookup2
Bob Jenkins published a newer hash function in May 2006, it has
better distribution.
See http://burtleburtle.net/bob/hash/doobs.html for lengthy
comparisions.
Alexander Barton [Sun, 26 Jun 2011 21:39:20 +0000 (23:39 +0200)]
Use srand()/rand() instead of srandom()/random(); seems to be more portable
Alexander Barton [Sun, 26 Jun 2011 13:41:27 +0000 (15:41 +0200)]
Merge branch 'MorePrivacy'
* MorePrivacy:
New configuration opion "MorePrivacy" to "censor" some user information
Alexander Barton [Sun, 26 Jun 2011 13:39:39 +0000 (15:39 +0200)]
sample-ngircd.conf: remove "SSL" prefix from SSL-related variables
Alexander Barton [Sun, 26 Jun 2011 13:38:53 +0000 (15:38 +0200)]
Merge branch 'ScrubCTCP'
* ScrubCTCP:
Add documentation for "ScrubCTCP" configuration option
New option to scrub incoming CTCP commands
Alexander Barton [Sun, 26 Jun 2011 13:24:07 +0000 (15:24 +0200)]
Merge branch 'newconfig'
* newconfig:
sample-ngircd.conf: "SyslogFacility" should be commented out
Move SSL-related configuration variables to new [SSL] section
CheckFileReadable(): only check when a filename is given ...
PAM: make clear which "Password" config option is ignored
Really remove [Features] in our manual pages
INSTALL: document changed location of configuration variables
Update sample config file and manual page for new config structure
Testsuite: update configuration files for new config file format
Display configuration errors more prominent on "--configtest"
conf.c: code cleanup
Check for redability of SSL-related files like for MOTD file
Restructure ngIRCd configuration, introduce [Limits] and [Options]
Alexander Barton [Sat, 25 Jun 2011 22:10:22 +0000 (00:10 +0200)]
sample-ngircd.conf: "SyslogFacility" should be commented out
Alexander Barton [Sat, 25 Jun 2011 22:09:36 +0000 (00:09 +0200)]
Move SSL-related configuration variables to new [SSL] section
Alexander Barton [Sat, 25 Jun 2011 22:07:47 +0000 (00:07 +0200)]
CheckFileReadable(): only check when a filename is given ...
Alexander Barton [Sat, 25 Jun 2011 21:55:54 +0000 (23:55 +0200)]
PAM: make clear which "Password" config option is ignored
Alexander Barton [Sat, 25 Jun 2011 21:54:41 +0000 (23:54 +0200)]
Really remove [Features] in our manual pages
xor [Sat, 19 Jun 2010 04:08:33 +0000 (06:08 +0200)]
Add documentation for "ScrubCTCP" configuration option
xor [Sun, 19 Jun 2011 04:08:33 +0000 (06:08 +0200)]
New configuration opion "MorePrivacy" to "censor" some user information
this patch contains:
* Fix for Conf_CloakUserToNick to make it conceal user details
* Adds MorePrivacy-feature
MorePrivacy censors some user information from being reported by the
server. Signon time and idle time is censored. Part and quit messages
are made to look the same. WHOWAS requests are silently dropped. All
of this is useful if one wish to conceal users that access the ngircd
servers from TOR or I2P.
xor [Fri, 10 Jun 2011 19:39:01 +0000 (21:39 +0200)]
New option to scrub incoming CTCP commands
This patch makes it possible to scrub incomming CTCP commands from
other servers and clients alike. The ngircd oper can enable it from
the config file, by adding "ScrubCTCP = yes" under [OPTIONS]. It is
default off.
CTCP can be used to profile IRC users (get user clients name and
version, and also their IP addresses). This is not something we like
to happen when user pseudonymity/secrecy is important.
The server silently drops incomming CTCP requests from both other
servers and from users. The server that scrubs CTCP will not forward
the CTCP requests to other servers in the network either, which can
spell trouble if not every oper knows about the CTCP-scrubbing.
Scrubbing CTCP commands also means that it is not possible to send
files between users.
There is one exception to the CTCP scrubbing performed: ACTION ("/me
commands") requests are not scrubbed. ACTION is not dangerous to users
(unless they use OTR, which does not encrypt CTCP requests) and most
users would be confused if they were just dropped.
A CTCP request looks like this:
ctcp_char, COMMAND, arg0, arg1, arg2, .. argN, ctcp_char
ctcp_char is 0x01. (just like bold is 0x02 and color is 0x03.)
They are sent as part of a message and can be delivered to channels
and users alike.
Alexander Barton [Sat, 25 Jun 2011 12:59:02 +0000 (14:59 +0200)]
INSTALL: document changed location of configuration variables
Alexander Barton [Sat, 25 Jun 2011 12:58:12 +0000 (14:58 +0200)]
Update sample config file and manual page for new config structure
Alexander Barton [Sat, 25 Jun 2011 12:57:26 +0000 (14:57 +0200)]
Testsuite: update configuration files for new config file format
Alexander Barton [Sat, 25 Jun 2011 12:56:27 +0000 (14:56 +0200)]
Display configuration errors more prominent on "--configtest"
Alexander Barton [Sat, 25 Jun 2011 12:55:34 +0000 (14:55 +0200)]
conf.c: code cleanup
Alexander Barton [Sat, 25 Jun 2011 12:50:52 +0000 (14:50 +0200)]
Check for redability of SSL-related files like for MOTD file
Remove functions ssl_print_configvar() and ConfSSL_Puts(), introduce
new function CheckFileReadable().
Alexander Barton [Sat, 25 Jun 2011 12:45:36 +0000 (14:45 +0200)]
Restructure ngIRCd configuration, introduce [Limits] and [Options]
The intention of this restructuring is to make the [Global] section much
cleaner, so that it only contains variables that most installations must
adjust to the local requirements.
All the optional variables are moved to [Limits], for configurable limits
and timers of ngIRCd, and [Options], for optional features.
The old variables in the [Global] section are deprecated now, but still
recognized.
Alexander Barton [Fri, 24 Jun 2011 19:01:18 +0000 (21:01 +0200)]
New documentation: "how to contribute"
Florian Westphal [Sun, 5 Jun 2011 13:00:32 +0000 (15:00 +0200)]
conn: fix error handling when connecting to server
The io_event_create error handling seems to miss a 'return'
statement.
Fix this by moving io_event_create() call around so we do not
need the Conn_Close/Init calls in the error case.
Florian Westphal [Sat, 4 Jun 2011 20:57:29 +0000 (22:57 +0200)]
ssl: gnutls: bump dh bitsize to 2048
problem is that some clients refuse to connect to severs that only offer
1024. For interoperability it would be best to just use 4096, but that
takes minutes, even on current hardware.
Alexander Barton [Wed, 11 May 2011 22:21:18 +0000 (00:21 +0200)]
Mac OS X: split up make targets
New targets are: "have-packagemaker", "osxpkg-dest"
Florian Westphal [Fri, 6 May 2011 18:31:56 +0000 (20:31 +0200)]
fix clang warning about dead stores
clang 'scan-build':
Value stored to 'r' is never read
Value stored to 'fd' is never read
Alexander Barton [Fri, 29 Apr 2011 20:45:55 +0000 (22:45 +0200)]
contrib/platformtest.sh: fix gcc version detection
Now the version of GNU C is detected correctly on SuSE Linux, too ...
Florian Westphal [Fri, 29 Apr 2011 21:15:05 +0000 (23:15 +0200)]
parse: fix logical expression testing for non RFC1459 links
parse.c:284: warning: suggest parentheses around operand of '!' or
change '&' to '&&' or '!' to '~'
The expression looks dubious, this should probably be
an if-not-set, then... test.
Florian Westphal [Fri, 29 Apr 2011 21:10:01 +0000 (23:10 +0200)]
conn: avoid needlesly scary 'buffer overflow' messages
When the write buffer space grows too large, ngircd has to disconnect
the client to avoid wasting too much memory.
ngircd logs this with a scary 'write buffer overflow' message.
Change this to a more descriptive wording.
Alexander Barton [Fri, 29 Apr 2011 10:11:01 +0000 (12:11 +0200)]
Only require server prefixes on non RFC1459 links
Not all servers (and services!) using the RFC1459 protocol style send
prefixes on all commands; so don't require them to do so.
This relaxes the requirements introduced by commit
15775e679.
Alexander Barton [Tue, 26 Apr 2011 10:04:22 +0000 (12:04 +0200)]
Merge branch 'master' of git://arthur.barton.de/ngircd-alex
* 'master' of git://arthur.barton.de/ngircd-alex:
Do reverse lookups using the AF of the incoming connection
resolve: fix reverse lookups of client connections with ConnectIPv6=no
Alexander Barton [Tue, 26 Apr 2011 09:09:59 +0000 (11:09 +0200)]
Do reverse lookups using the AF of the incoming connection
This fixes errors like this one:
Address mismatch: 2001:1234:abcd:1::1 != 192.168.1.1
Florian Westphal [Mon, 25 Apr 2011 16:00:10 +0000 (18:00 +0200)]
resolve: fix reverse lookups of client connections with ConnectIPv6=no
We re-use the same helper function for both forward lookups
(when we want to connect to a peer server) and for validation of reverse
loopups (where we make a lookup on the hostname returned
by a reverse lookup on the IP address that connected).
Problem:
When ConnectIPv6=no, the forward lookup helper sets the adderss family
to AF_INET, and, if out client connected via ipv6, we fail to validate
the result.
Thus move the ConnectIPvX check out of the helper.
Alexander Barton [Sat, 16 Apr 2011 13:18:43 +0000 (15:18 +0200)]
Mac OS X: install on root volume only, and set correct permissions
Update Mac OS X Installer.app description bundle, so that the ngIRCd
package can only be installed on the root volume ("/"); and make sure
that all installed files and directories have correct ownership and
permissions.
Alexander Barton [Thu, 14 Apr 2011 09:24:07 +0000 (11:24 +0200)]
Mac OS X: update installer texts and add logo.
Alexander Barton [Tue, 12 Apr 2011 21:15:29 +0000 (23:15 +0200)]
Doxygen'ify conf.c
Alexander Barton [Tue, 12 Apr 2011 19:55:32 +0000 (21:55 +0200)]
New function Config_Error_Section(); and code cleanup
Alexander Barton [Tue, 12 Apr 2011 19:23:14 +0000 (21:23 +0200)]
Add some type casts to random() and srandom() functions
This fixes two gcc warnings (on Mac OS X):
"warning: implicit conversion shortens 64-bit value into a 32-bit value"
Florian Westphal [Sun, 27 Mar 2011 20:48:01 +0000 (22:48 +0200)]
ngircd: improve rng initialisation
we do not need this for cryptographic purposes, but we can do better
than plain srandom(getpid()).
Also, keep in mind that rng state is inherited across fork(), so re-init
it in the child.
Alexander Barton [Sun, 27 Mar 2011 18:58:18 +0000 (20:58 +0200)]
Merge branch 'AuthPing'
* AuthPing:
Add documentation for "RequireAuthPing" configuration option
New configuration option "RequireAuthPing": PING-PONG on login
Alexander Barton [Sun, 27 Mar 2011 18:56:50 +0000 (20:56 +0200)]
Merge branch 'NoticeAuth'
* NoticeAuth:
Add documentation for "NoticeAuth" configuration option
Configuration: move "NoticeAuth" to GLOBAL section
New configuration option "NoticeAuth": send NOTICE AUTH on connect
Alexander Barton [Sun, 27 Mar 2011 18:45:29 +0000 (20:45 +0200)]
ngircd.conf.5: Add variable type to "CloakHost" and "CloakUserToNick"
Alexander Barton [Sun, 27 Mar 2011 18:41:48 +0000 (20:41 +0200)]
Xcode: don't list sample-ngircd.conf, use sample-ngircd.conf.tmpl
Alexander Barton [Sun, 27 Mar 2011 18:40:28 +0000 (20:40 +0200)]
Add documentation for "NoticeAuth" configuration option
Alexander Barton [Sun, 27 Mar 2011 18:34:44 +0000 (20:34 +0200)]
Add documentation for "RequireAuthPing" configuration option
Alexander Barton [Sun, 27 Mar 2011 17:33:48 +0000 (19:33 +0200)]
New configuration option "RequireAuthPing": PING-PONG on login
When enabled, this configuration option lets ngIRCd send a PING with an
numeric "token" to clients logging in; and it will not become registered
in the network until the client responds with the correct PONG.
This is used by QuakeNet for example (ircu/snircd), and looks like this:
NICK nick
:irc.example.net PING :
1858979527
USER user . . :real name
PONG
1858979527
:irc.example.net 001 nick :Welcome to the Internet Relay Network ...
Alexander Barton [Sat, 26 Mar 2011 16:11:44 +0000 (17:11 +0100)]
Configuration: move "NoticeAuth" to GLOBAL section
Alexander Barton [Fri, 25 Mar 2011 11:08:36 +0000 (12:08 +0100)]
New configuration option "NoticeAuth": send NOTICE AUTH on connect
When enabling "NoticeAuth" in the [Features] section, ngircd will send
"NOTICE AUTH" messages on client connect like e.g. snircd (QuakeNet) does.
Alexander Barton [Fri, 25 Mar 2011 11:12:20 +0000 (12:12 +0100)]
Warn when unknown variables are found in [Features] section
Alexander Barton [Fri, 25 Mar 2011 10:14:04 +0000 (11:14 +0100)]
Update doc/GIT.txt
Alexander Barton [Wed, 23 Mar 2011 00:08:49 +0000 (01:08 +0100)]
Update INSTALL text
Alexander Barton [Mon, 21 Mar 2011 22:51:53 +0000 (23:51 +0100)]
Generate WALLOPS message on SQUIT from IRC operator
So SQUIT now behaves like CONNECT and DISCONNECT commands, when called
by an IRC operator (and not received from an other server).
Alexander Barton [Mon, 21 Mar 2011 09:46:09 +0000 (10:46 +0100)]
Commands received from other servers must have prefixes
Make sure that all commands received from other servers do have
valid prefixes.
Only exceptions are PING and ERROR commands that can occure without
prefixes when generated by the remote peer itself.
Alexander Barton [Mon, 21 Mar 2011 08:42:01 +0000 (09:42 +0100)]
Allow servers to send more commands in the first 10 secods
This helps to speed up server login and network synchronisation.
Alexander Barton [Sat, 19 Mar 2011 16:29:19 +0000 (17:29 +0100)]
IRC_CHANINFO(): Code cleanup
Alexander Barton [Sat, 19 Mar 2011 16:28:38 +0000 (17:28 +0100)]
Handle_GLOBAL(): don't use multi-line strings
They aren't supported by elder C compilers ...
Alexander Barton [Sat, 19 Mar 2011 16:16:14 +0000 (17:16 +0100)]
Merge branches 'CloakUserHost', 'QuitOnHTTP' and 'bug72-WHOIS-List'
* CloakUserHost:
Add a note not to use a percent sign ("%") in CloakHost variable
Rename ClientHost to CloakHost, and ClientUserNick to CloakUserToNick
Don't use "the.net" in sample-ngircd.conf, use "example.net"
ngircd.conf.5: document "ClientHost" and "ClientUserNick"
Move "ClientHost" and "ClientUserNick" to end of [Global] section
ClientUserNick setting
ClientHost setting
* QuitOnHTTP:
Only "handle" HTTP commands on unregistered connections
Don't use IRC_QUIT_HTTP() if STRICT_RFC is #define'd
IRC_QUIT_HTTP(): enhance error message
Move IRC_QUIT_HTTP() below IRC_QUIT()
quit on HTTP commands: GET & POST
* bug72-WHOIS-List:
Add "whois-test" to testsuite and distribution archive
Add support for up to 3 targets in WHOIS queries.
Alexander Barton [Sat, 19 Mar 2011 16:02:39 +0000 (17:02 +0100)]
Add a note not to use a percent sign ("%") in CloakHost variable
The percent sign is reserved for future extensions, for example to
expand some variables like %H to a hash value of the real host name ...
Idea by kaFux in #ngircd.
Alexander Barton [Sat, 19 Mar 2011 15:58:29 +0000 (16:58 +0100)]
Rename ClientHost to CloakHost, and ClientUserNick to CloakUserToNick
Alexander Barton [Sat, 19 Mar 2011 13:52:07 +0000 (14:52 +0100)]
Add "whois-test" to testsuite and distribution archive
Test script proposed by Dana Dahlstrom, 2008-02-17.
See <https://arthur.barton.de/bugzilla/show_bug.cgi?id=72> ...
Florian Westphal [Mon, 18 Feb 2008 14:24:01 +0000 (15:24 +0100)]
Add support for up to 3 targets in WHOIS queries.
also allow up to one wildcard query from local hosts.
Follows ircd 2.10 implementation rather than RFC 2812.
At most 10 entries are returned per wildcard expansion.
WHOIS test cases by Dana Dahlstrom.
Alexander Barton [Sat, 19 Mar 2011 13:56:05 +0000 (14:56 +0100)]
Doxygen: Remove header.inc.html and ngircd-doc.css from distribution
Alexander Barton [Fri, 18 Mar 2011 10:15:48 +0000 (11:15 +0100)]
ngircd.conf.5: describe types of variables
Describe the possible types of variables in ngircd.conf:
booleans, text strings, integer numbers.
And add type information to each variable description.
Alexander Barton [Fri, 18 Mar 2011 09:45:16 +0000 (10:45 +0100)]
Don't use "the.net" in sample-ngircd.conf, use "example.net"
"the.net" is an existing domain of the Texas Higher Education Network ...
See RFC 2606.
Alexander Barton [Wed, 16 Mar 2011 23:03:10 +0000 (00:03 +0100)]
Only "handle" HTTP commands on unregistered connections
Alexander Barton [Wed, 16 Mar 2011 22:58:39 +0000 (23:58 +0100)]
Don't use IRC_QUIT_HTTP() if STRICT_RFC is #define'd
Alexander Barton [Wed, 16 Mar 2011 22:58:01 +0000 (23:58 +0100)]
IRC_QUIT_HTTP(): enhance error message
Alexander Barton [Wed, 16 Mar 2011 22:56:27 +0000 (23:56 +0100)]
Move IRC_QUIT_HTTP() below IRC_QUIT()
Alexander Barton [Wed, 16 Mar 2011 22:44:00 +0000 (23:44 +0100)]
ngircd.conf.5: document "ClientHost" and "ClientUserNick"
Alexander Barton [Wed, 16 Mar 2011 22:43:29 +0000 (23:43 +0100)]
Move "ClientHost" and "ClientUserNick" to end of [Global] section
Gabor Adam Toth [Mon, 20 Dec 2010 02:35:17 +0000 (03:35 +0100)]
ClientUserNick setting
Gabor Adam Toth [Mon, 14 Feb 2011 15:16:07 +0000 (16:16 +0100)]
ClientHost setting
Gabor Adam Toth [Mon, 20 Dec 2010 01:01:25 +0000 (02:01 +0100)]
quit on HTTP commands: GET & POST
Florian Westphal [Mon, 28 Feb 2011 20:09:47 +0000 (21:09 +0100)]
channel: always reject zero-length channel key
previously, any client could join in this configuration:
[Channel]
Name = #test
Modes = tnk
KeyFile = /tmp/foobar
fix this by checking for zero-length key before comparing
key to channel key.
Alexander Barton [Wed, 23 Feb 2011 21:55:45 +0000 (22:55 +0100)]
PAM-Auth child: log if result can't be reported
This fixes the followin GCC warning on modern Linux systems as well:
irc-login.c: In function ‘Hello_User’:
irc-login.c:876: warning: ignoring return value of ‘write’,
declared with attribute warn_unused_result
Alexander Barton [Thu, 17 Feb 2011 11:26:56 +0000 (12:26 +0100)]
Protocol.txt: Update description of CHANINFO command
Alexander Barton [Wed, 16 Feb 2011 13:06:25 +0000 (14:06 +0100)]
Add cscope.out to .gitignore file
Alexander Barton [Mon, 14 Feb 2011 00:44:40 +0000 (01:44 +0100)]
Correctly detect errors when handling "MODE x" commands
Alexander Barton [Wed, 29 Dec 2010 13:10:18 +0000 (14:10 +0100)]
Enhance documentation for the WEBIRC command
Alexander Barton [Wed, 29 Dec 2010 13:09:46 +0000 (14:09 +0100)]
Doxygen'ify irc-login.c
Alexander Barton [Wed, 29 Dec 2010 12:11:20 +0000 (13:11 +0100)]
Doxygen'ify irc-channel.c
Alexander Barton [Wed, 29 Dec 2010 12:09:01 +0000 (13:09 +0100)]
Doxygen'ify conn.c
Alexander Barton [Mon, 27 Dec 2010 16:37:56 +0000 (17:37 +0100)]
Doxygen'ify proc.h
Alexander Barton [Mon, 27 Dec 2010 16:34:26 +0000 (17:34 +0100)]
Doxygen'ify parse.h
Alexander Barton [Mon, 27 Dec 2010 16:31:19 +0000 (17:31 +0100)]
Doxygen'ify and update comments in ngircd.{c|h}
Alexander Barton [Mon, 27 Dec 2010 16:28:30 +0000 (17:28 +0100)]
Doxygen'ify and update comments in match.c
Alexander Barton [Mon, 27 Dec 2010 16:27:21 +0000 (17:27 +0100)]
Update and translate comments in hash.c
Alexander Barton [Mon, 27 Dec 2010 16:25:48 +0000 (17:25 +0100)]
Doxygen'ify conf.h
Alexander Barton [Mon, 27 Dec 2010 16:23:25 +0000 (17:23 +0100)]
Add missong Doxygen @file tags to ngircd.h and irc-op.h
Alexander Barton [Mon, 27 Dec 2010 16:20:46 +0000 (17:20 +0100)]
Code cleanup: mostly removing empty lines
Alexander Barton [Mon, 27 Dec 2010 16:15:37 +0000 (17:15 +0100)]
Doxygen: define ZLIB, PAM, and ZEROCONF
Alexander Barton [Mon, 27 Dec 2010 16:14:14 +0000 (17:14 +0100)]
Add Doxygen @file documentation to each source and header file
Alexander Barton [Sun, 26 Dec 2010 18:32:07 +0000 (19:32 +0100)]
Updated Doxygen configuration file
Removed unnecessary variables DETAILS_AT_TOP, EXTRACT_PRIVATE,
EXTRACT_LOCAL_CLASSES, added SHOW_DIRECTORIES=YES, STRIP_CODE_COMMENTS=NO,
REFERENCED_BY_RELATION=YES, REFERENCES_RELATION=YES,
HTML_DYNAMIC_SECTIONS=YES and GENERATE_DOCSET=NO; updated PREDEFINED.
Alexander Barton [Sun, 26 Dec 2010 18:27:29 +0000 (19:27 +0100)]
Doxygen: remove own header and CSS file
Use the ones of Doxygen instead, this has the advantage that we
benefit of new functionality of Doxygen without having to make changes.
Alexander Barton [Sat, 12 Feb 2011 22:24:56 +0000 (23:24 +0100)]
Make write buffers bigger, but flush early
This patch
- makes the server write buffer bigger: 64k,
- makes the regular write buffer bigger: 32k,
- tries to flush the write buffer starting at 4K.
Before this patch, a client got disconnected if the buffer flushing at 4k
failed, now regular clients can store up to 32k and servers up 64k even
if flushing is not possible at the moment (e.g. on slow links).