]> arthur.barton.de Git - ngircd-alex.git/log
ngircd-alex.git
12 years agoNew configuration opion "MorePrivacy" to "censor" some user information MorePrivacy
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.

12 years agoINSTALL: document changed location of configuration variables
Alexander Barton [Sat, 25 Jun 2011 12:59:02 +0000 (14:59 +0200)]
INSTALL: document changed location of configuration variables

12 years agoUpdate sample config file and manual page for new config structure
Alexander Barton [Sat, 25 Jun 2011 12:58:12 +0000 (14:58 +0200)]
Update sample config file and manual page for new config structure

12 years agoTestsuite: update configuration files for new config file format
Alexander Barton [Sat, 25 Jun 2011 12:57:26 +0000 (14:57 +0200)]
Testsuite: update configuration files for new config file format

12 years agoDisplay configuration errors more prominent on "--configtest"
Alexander Barton [Sat, 25 Jun 2011 12:56:27 +0000 (14:56 +0200)]
Display configuration errors more prominent on "--configtest"

12 years agoconf.c: code cleanup
Alexander Barton [Sat, 25 Jun 2011 12:55:34 +0000 (14:55 +0200)]
conf.c: code cleanup

12 years agoCheck for redability of SSL-related files like for MOTD file
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().

12 years agoRestructure ngIRCd configuration, introduce [Limits] and [Options]
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.

12 years agoconn: fix error handling when connecting to server
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.

12 years agossl: gnutls: bump dh bitsize to 2048
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.

12 years agoMac OS X: split up make targets
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"

12 years agofix clang warning about dead stores
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

12 years agocontrib/platformtest.sh: fix gcc version detection
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 ...

12 years agoparse: fix logical expression testing for non RFC1459 links
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.

12 years agoconn: avoid needlesly scary 'buffer overflow' messages
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.

12 years agoOnly require server prefixes on non RFC1459 links
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.

12 years agoMerge branch 'master' of git://arthur.barton.de/ngircd-alex
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

12 years agoDo reverse lookups using the AF of the incoming connection
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

12 years agoresolve: fix reverse lookups of client connections with ConnectIPv6=no
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.

13 years agoMac OS X: install on root volume only, and set correct permissions
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.

13 years agoMac OS X: update installer texts and add logo.
Alexander Barton [Thu, 14 Apr 2011 09:24:07 +0000 (11:24 +0200)]
Mac OS X: update installer texts and add logo.

13 years agoDoxygen'ify conf.c
Alexander Barton [Tue, 12 Apr 2011 21:15:29 +0000 (23:15 +0200)]
Doxygen'ify conf.c

13 years agoNew function Config_Error_Section(); and code cleanup
Alexander Barton [Tue, 12 Apr 2011 19:55:32 +0000 (21:55 +0200)]
New function Config_Error_Section(); and code cleanup

13 years agoAdd some type casts to random() and srandom() functions
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"

13 years agongircd: improve rng initialisation
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.

13 years agoMerge branch 'AuthPing'
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

13 years agoMerge branch 'NoticeAuth'
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

13 years agongircd.conf.5: Add variable type to "CloakHost" and "CloakUserToNick"
Alexander Barton [Sun, 27 Mar 2011 18:45:29 +0000 (20:45 +0200)]
ngircd.conf.5: Add variable type to "CloakHost" and "CloakUserToNick"

13 years agoXcode: don't list sample-ngircd.conf, use sample-ngircd.conf.tmpl
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

13 years agoAdd documentation for "NoticeAuth" configuration option NoticeAuth
Alexander Barton [Sun, 27 Mar 2011 18:40:28 +0000 (20:40 +0200)]
Add documentation for "NoticeAuth" configuration option

13 years agoAdd documentation for "RequireAuthPing" configuration option AuthPing
Alexander Barton [Sun, 27 Mar 2011 18:34:44 +0000 (20:34 +0200)]
Add documentation for "RequireAuthPing" configuration option

13 years agoNew configuration option "RequireAuthPing": PING-PONG on login
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 ...

13 years agoConfiguration: move "NoticeAuth" to GLOBAL section
Alexander Barton [Sat, 26 Mar 2011 16:11:44 +0000 (17:11 +0100)]
Configuration: move "NoticeAuth" to GLOBAL section

13 years agoNew configuration option "NoticeAuth": send NOTICE AUTH on connect
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.

13 years agoWarn when unknown variables are found in [Features] section
Alexander Barton [Fri, 25 Mar 2011 11:12:20 +0000 (12:12 +0100)]
Warn when unknown variables are found in [Features] section

13 years agoUpdate doc/GIT.txt
Alexander Barton [Fri, 25 Mar 2011 10:14:04 +0000 (11:14 +0100)]
Update doc/GIT.txt

13 years agoUpdate INSTALL text
Alexander Barton [Wed, 23 Mar 2011 00:08:49 +0000 (01:08 +0100)]
Update INSTALL text

13 years agoGenerate WALLOPS message on SQUIT from IRC operator
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).

13 years agoCommands received from other servers must have prefixes
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.

13 years agoAllow servers to send more commands in the first 10 secods
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.

13 years agoIRC_CHANINFO(): Code cleanup
Alexander Barton [Sat, 19 Mar 2011 16:29:19 +0000 (17:29 +0100)]
IRC_CHANINFO(): Code cleanup

13 years agoHandle_GLOBAL(): don't use multi-line strings
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 ...

13 years agoMerge branches 'CloakUserHost', 'QuitOnHTTP' and 'bug72-WHOIS-List'
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.

13 years agoAdd a note not to use a percent sign ("%") in CloakHost variable CloakUserHost
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.

13 years agoRename ClientHost to CloakHost, and ClientUserNick to CloakUserToNick
Alexander Barton [Sat, 19 Mar 2011 15:58:29 +0000 (16:58 +0100)]
Rename ClientHost to CloakHost, and ClientUserNick to CloakUserToNick

13 years agoAdd "whois-test" to testsuite and distribution archive bug72-WHOIS-List
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> ...

13 years agoAdd support for up to 3 targets in WHOIS queries.
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.

13 years agoDoxygen: Remove header.inc.html and ngircd-doc.css from distribution
Alexander Barton [Sat, 19 Mar 2011 13:56:05 +0000 (14:56 +0100)]
Doxygen: Remove header.inc.html and ngircd-doc.css from distribution

13 years agongircd.conf.5: describe types of variables
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.

13 years agoDon't use "the.net" in sample-ngircd.conf, use "example.net"
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.

13 years agoOnly "handle" HTTP commands on unregistered connections QuitOnHTTP
Alexander Barton [Wed, 16 Mar 2011 23:03:10 +0000 (00:03 +0100)]
Only "handle" HTTP commands on unregistered connections

13 years agoDon't use IRC_QUIT_HTTP() if STRICT_RFC is #define'd
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

13 years agoIRC_QUIT_HTTP(): enhance error message
Alexander Barton [Wed, 16 Mar 2011 22:58:01 +0000 (23:58 +0100)]
IRC_QUIT_HTTP(): enhance error message

13 years agoMove IRC_QUIT_HTTP() below IRC_QUIT()
Alexander Barton [Wed, 16 Mar 2011 22:56:27 +0000 (23:56 +0100)]
Move IRC_QUIT_HTTP() below IRC_QUIT()

13 years agongircd.conf.5: document "ClientHost" and "ClientUserNick"
Alexander Barton [Wed, 16 Mar 2011 22:44:00 +0000 (23:44 +0100)]
ngircd.conf.5: document "ClientHost" and "ClientUserNick"

13 years agoMove "ClientHost" and "ClientUserNick" to end of [Global] section
Alexander Barton [Wed, 16 Mar 2011 22:43:29 +0000 (23:43 +0100)]
Move "ClientHost" and "ClientUserNick" to end of [Global] section

13 years agoClientUserNick setting
Gabor Adam Toth [Mon, 20 Dec 2010 02:35:17 +0000 (03:35 +0100)]
ClientUserNick setting

13 years agoClientHost setting
Gabor Adam Toth [Mon, 14 Feb 2011 15:16:07 +0000 (16:16 +0100)]
ClientHost setting

13 years agoquit on HTTP commands: GET & POST
Gabor Adam Toth [Mon, 20 Dec 2010 01:01:25 +0000 (02:01 +0100)]
quit on HTTP commands: GET & POST

13 years agochannel: always reject zero-length channel key
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.

13 years agoPAM-Auth child: log if result can't be reported
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

13 years agoProtocol.txt: Update description of CHANINFO command
Alexander Barton [Thu, 17 Feb 2011 11:26:56 +0000 (12:26 +0100)]
Protocol.txt: Update description of CHANINFO command

13 years agoAdd cscope.out to .gitignore file
Alexander Barton [Wed, 16 Feb 2011 13:06:25 +0000 (14:06 +0100)]
Add cscope.out to .gitignore file

13 years agoCorrectly detect errors when handling "MODE x" commands
Alexander Barton [Mon, 14 Feb 2011 00:44:40 +0000 (01:44 +0100)]
Correctly detect errors when handling "MODE x" commands

13 years agoEnhance documentation for the WEBIRC command doc-comments
Alexander Barton [Wed, 29 Dec 2010 13:10:18 +0000 (14:10 +0100)]
Enhance documentation for the WEBIRC command

13 years agoDoxygen'ify irc-login.c
Alexander Barton [Wed, 29 Dec 2010 13:09:46 +0000 (14:09 +0100)]
Doxygen'ify irc-login.c

13 years agoDoxygen'ify irc-channel.c
Alexander Barton [Wed, 29 Dec 2010 12:11:20 +0000 (13:11 +0100)]
Doxygen'ify irc-channel.c

13 years agoDoxygen'ify conn.c
Alexander Barton [Wed, 29 Dec 2010 12:09:01 +0000 (13:09 +0100)]
Doxygen'ify conn.c

13 years agoDoxygen'ify proc.h
Alexander Barton [Mon, 27 Dec 2010 16:37:56 +0000 (17:37 +0100)]
Doxygen'ify proc.h

13 years agoDoxygen'ify parse.h
Alexander Barton [Mon, 27 Dec 2010 16:34:26 +0000 (17:34 +0100)]
Doxygen'ify parse.h

13 years agoDoxygen'ify and update comments in ngircd.{c|h}
Alexander Barton [Mon, 27 Dec 2010 16:31:19 +0000 (17:31 +0100)]
Doxygen'ify and update comments in ngircd.{c|h}

13 years agoDoxygen'ify and update comments in match.c
Alexander Barton [Mon, 27 Dec 2010 16:28:30 +0000 (17:28 +0100)]
Doxygen'ify and update comments in match.c

13 years agoUpdate and translate comments in hash.c
Alexander Barton [Mon, 27 Dec 2010 16:27:21 +0000 (17:27 +0100)]
Update and translate comments in hash.c

13 years agoDoxygen'ify conf.h
Alexander Barton [Mon, 27 Dec 2010 16:25:48 +0000 (17:25 +0100)]
Doxygen'ify conf.h

13 years agoAdd missong Doxygen @file tags to ngircd.h and irc-op.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

13 years agoCode cleanup: mostly removing empty lines
Alexander Barton [Mon, 27 Dec 2010 16:20:46 +0000 (17:20 +0100)]
Code cleanup: mostly removing empty lines

13 years agoDoxygen: define ZLIB, PAM, and ZEROCONF
Alexander Barton [Mon, 27 Dec 2010 16:15:37 +0000 (17:15 +0100)]
Doxygen: define ZLIB, PAM, and ZEROCONF

13 years agoAdd Doxygen @file documentation to each source and header file
Alexander Barton [Mon, 27 Dec 2010 16:14:14 +0000 (17:14 +0100)]
Add Doxygen @file documentation to each source and header file

13 years agoUpdated Doxygen configuration 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.

13 years agoDoxygen: remove own header and CSS file
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.

13 years agoMake write buffers bigger, but flush early
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).

13 years agoEnhance logging on "write buffer overflow"
Alexander Barton [Sat, 12 Feb 2011 22:24:26 +0000 (23:24 +0100)]
Enhance logging on "write buffer overflow"

13 years agoClean up Validate_Prefix(); don't send punctuation in ERROR commands
Alexander Barton [Sat, 29 Jan 2011 15:05:55 +0000 (16:05 +0100)]
Clean up Validate_Prefix(); don't send punctuation in ERROR commands

13 years agoBetter check for invalid IRC+ PASS command
Alexander Barton [Sun, 23 Jan 2011 17:38:36 +0000 (18:38 +0100)]
Better check for invalid IRC+ PASS command

Don't do a NULL-pointer dereference when a remote server using the
IRC+ protocol sends an invalid PASS command without the required
<serverversion> parameter ...

13 years agoRead_Request(): don't access possibly free'd CLIENT structure
Alexander Barton [Sun, 23 Jan 2011 14:14:18 +0000 (15:14 +0100)]
Read_Request(): don't access possibly free'd CLIENT structure

Handle_Buffer() can shut down connections and remove clients, so after
calling it, we have to make sure that our CLIENT pointer is still valid.

13 years agongircd-test2.conf: really disable Ident and PAM ...
Alexander Barton [Wed, 19 Jan 2011 00:19:40 +0000 (01:19 +0100)]
ngircd-test2.conf: really disable Ident and PAM ...

13 years agoLog "Can't read MOTD file" as "configuration error"
Alexander Barton [Tue, 18 Jan 2011 22:44:07 +0000 (23:44 +0100)]
Log "Can't read MOTD file" as "configuration error"

Now this error message is displayed in the console without debug prefix
when running the configuration test (--configtest).

13 years agoAllow "Port = 0" in [Server] blocks
Alexander Barton [Tue, 18 Jan 2011 21:45:01 +0000 (22:45 +0100)]
Allow "Port = 0" in [Server] blocks

Port number 0 marks remote servers that try to connect to this
daemon, but where this daemon never tries to establis a connection
on its own: only incoming connections are allowed.

13 years agoconf: fix 'Value of "..." is not a number!' for negative values
Alexander Barton [Tue, 18 Jan 2011 21:41:27 +0000 (22:41 +0100)]
conf: fix 'Value of "..." is not a number!' for negative values

Don't use isdigit() function any more, because it only checks the
first character of the variable value and because it doesn't know
about the minus sign which is required e.g. for "Group = -1".

13 years agoDon't read MOTD file twice
Alexander Barton [Tue, 18 Jan 2011 21:01:27 +0000 (22:01 +0100)]
Don't read MOTD file twice

The MOTD file is read in Read_Config(), so don't read it when handling
the "MotdFile" configuration variable. Instead make sure that it is
initialized properly when (re-)reading the configuration.

13 years agoAdd [Features] section to ngircd-test{1|2}.conf
Alexander Barton [Tue, 18 Jan 2011 20:39:48 +0000 (21:39 +0100)]
Add [Features] section to ngircd-test{1|2}.conf

Fix commit 5a34bb203a:
It is not enough to strip the "No" prefix from "Ident" and "PAM",
but we have to introduce the new [Features] section to fix all
warning messages of ngIRCd.

Variables "Ident" and "PAM" in [Global] are completely wrong :-(

13 years agoEnable WHOIS command to return information about services
Alexander Barton [Tue, 18 Jan 2011 20:04:55 +0000 (21:04 +0100)]
Enable WHOIS command to return information about services

13 years agoUpdate testsuite configuration: strip No... prefixes
Alexander Barton [Tue, 18 Jan 2011 13:28:39 +0000 (14:28 +0100)]
Update testsuite configuration: strip No... prefixes

13 years agoAdd connection/socket information to some log messages
Alexander Barton [Sun, 16 Jan 2011 22:24:41 +0000 (23:24 +0100)]
Add connection/socket information to some log messages

13 years agoImplement channel mode 'O': "IRC operators only"
Alexander Barton [Mon, 10 Jan 2011 11:15:05 +0000 (12:15 +0100)]
Implement channel mode 'O': "IRC operators only"

This channel mode is used on DALnet (bahamut), for example.

13 years agoRemove ZeroConf variable from sample-ngircd.conf
Alexander Barton [Sun, 9 Jan 2011 23:10:01 +0000 (00:10 +0100)]
Remove ZeroConf variable from sample-ngircd.conf

13 years agoRemove support for ZeroConf/Bonjour/Rendezvous service registration
Alexander Barton [Sun, 9 Jan 2011 22:51:30 +0000 (23:51 +0100)]
Remove support for ZeroConf/Bonjour/Rendezvous service registration

13 years agoTOPIC command: test for channel admin rights correctly
Alexander Barton [Sun, 9 Jan 2011 22:08:15 +0000 (23:08 +0100)]
TOPIC command: test for channel admin rights correctly

This enables other servers, services and IRC operators to change
channel topics, even when the client is not joined to this channel.

Now the handler for TOPIC behaves like the one for MODE.

13 years agoChannel_CheckAdminRights(): test if client can admin a channel
Alexander Barton [Sun, 9 Jan 2011 21:40:11 +0000 (22:40 +0100)]
Channel_CheckAdminRights(): test if client can admin a channel

This generic function tests if a client is allowed to do administrative
tasks to a specific channel:

 - servers and services are always truested ("allowed everything"),
 - channel operators are allowed,
 - IRC operarors are allowed if OperCanUseMode is set in the config.

13 years agoconf: fix 'unknown section' FEATURES parse error
Florian Westphal [Sun, 9 Jan 2011 21:19:17 +0000 (22:19 +0100)]
conf: fix 'unknown section' FEATURES parse error

pointed out by Alex:
ngircd.conf, line 105: Unknown section "[Features]"!