10 years agongIRCd release 15
Alexander Barton [Sat, 7 Nov 2009 12:57:15 +0000 (13:57 +0100)]
ngIRCd release 15

10 years agoconfigtest: print ssl config options even when unset
Florian Westphal [Sat, 17 Oct 2009 12:31:27 +0000 (14:31 +0200)]
configtest: print ssl config options even when unset

Print "SSLOptionVar =" instead of omitting the option when
running --configtest with ssl enabled.
This better matches the behaviour of other options, e.g.  ChrootDir.

10 years agongIRCd release 15~rc1 rel-15-rc1
Alexander Barton [Thu, 15 Oct 2009 08:04:34 +0000 (10:04 +0200)]
ngIRCd release 15~rc1

10 years agoUpdated NEWS and ChangeLog files
Alexander Barton [Sat, 3 Oct 2009 14:45:09 +0000 (16:45 +0200)]
Updated NEWS and ChangeLog files

10 years agoMake sure forwarded CONNECT commands are handled correctly bug73-SQUIT
Alexander Barton [Wed, 9 Sep 2009 21:00:45 +0000 (23:00 +0200)]
Make sure forwarded CONNECT commands are handled correctly

10 years agoGenerate WALLOPS message on operator-generated SQUIT
Alexander Barton [Tue, 19 May 2009 21:06:28 +0000 (23:06 +0200)]
Generate WALLOPS message on operator-generated SQUIT

10 years agoEnable SQUIT command for IRC Operators
Alexander Barton [Tue, 19 May 2009 20:41:45 +0000 (22:41 +0200)]
Enable SQUIT command for IRC Operators

This patch enables IRC Operators to use the SQUIT command as specified in
RFC 2812, section 3.1.8 "Squit".

When forwarding SQUIT commands, the server connected to the target will
drop the connection (not the target server itself!).

Please note:

 - the configuration option "AllowRemoteOper" mus be enabled on the
   server disconnecting the target to allow forwarding of SQUIT commands.
 - if the remote server is configured to establish the connection, it
   will just do this; so the disconnect is not permanent in this case!

10 years agoXcode: added new op.{c|h} to project file
Alexander Barton [Fri, 24 Apr 2009 22:37:27 +0000 (00:37 +0200)]
Xcode: added new op.{c|h} to project file

10 years agoUse functions provided by op.c "module"
Alexander Barton [Wed, 22 Apr 2009 21:24:15 +0000 (23:24 +0200)]
Use functions provided by op.c "module"

Local functions Check_Oper() and No_Privileges() have been replaced by
global functions in op.c "module": Op_Check() and Op_NoPrivileges().

10 years agoNew "module" op.c/op.h for IRC operator related functions
Alexander Barton [Wed, 22 Apr 2009 21:17:25 +0000 (23:17 +0200)]
New "module" op.c/op.h for IRC operator related functions

The new "module" op.c is used to implement functions related to IRC Ops.
At the moment, these two functions are available:

 - Op_Check() to check for a valid IRC Op, and
 - Op_NoPrivileges() to generate "permission denied" messages.

10 years agoAllow forwarding of CONNECT commands.
Alexander Barton [Tue, 22 Jul 2008 16:38:05 +0000 (18:38 +0200)]
Allow forwarding of CONNECT commands.

The syntax of the CONNECT command now is:

  - CONNECT <server-id>
  - CONNECT <server-id> <port>
  - CONNECT <server-id> <port> <target>
  - CONNECT <server-id> <port> <host> <my-pwd> <peer-pwd>
  - CONNECT <server-id> <port> <host> <my-pwd> <peer-pwd> <target>

Note: the configuration option "AllowRemoteOper" mus be enabled on the
target server to allow forwarding of CONNECT commands.

10 years agoCheck_Oper(): check origin of forwarded messages instead of server.
Alexander Barton [Tue, 22 Jul 2008 16:35:35 +0000 (18:35 +0200)]
Check_Oper(): check origin of forwarded messages instead of server.

10 years agoNo_Privileges(): handle forwarded messages.
Alexander Barton [Tue, 22 Jul 2008 16:33:44 +0000 (18:33 +0200)]
No_Privileges(): handle forwarded messages.

10 years agoIRC_SendWallops(): support format string and variable parameter lists.
Alexander Barton [Tue, 22 Jul 2008 14:54:12 +0000 (16:54 +0200)]
IRC_SendWallops(): support format string and variable parameter lists.

10 years agoCONNECT, DISCONNECT: generate WALLOPS messages
Alexander Barton [Tue, 6 May 2008 15:51:45 +0000 (17:51 +0200)]

10 years agoNew function IRC_SendWallops().
Alexander Barton [Tue, 6 May 2008 13:30:29 +0000 (15:30 +0200)]
New function IRC_SendWallops().

Implement new global function IRC_SendWallops() that can be called by
other functions to generate WALLOPS messages to users with +w mode.

10 years agoCode cleanup of IRC_DISCONNECT().
Alexander Barton [Sun, 13 Apr 2008 01:19:29 +0000 (03:19 +0200)]
Code cleanup of IRC_DISCONNECT().

10 years agoCode cleanup of IRC_SQUIT() in preparation to deal with bug #73.
Alexander Barton [Wed, 9 Apr 2008 17:49:34 +0000 (19:49 +0200)]
Code cleanup of IRC_SQUIT() in preparation to deal with bug #73.

10 years agoNew local functions Check_Oper() and No_Privileges().
Alexander Barton [Sun, 13 Apr 2008 17:25:46 +0000 (19:25 +0200)]
New local functions Check_Oper() and No_Privileges().

10 years agoBad_OperPass(): code cleanup.
Alexander Barton [Sun, 13 Apr 2008 15:30:04 +0000 (17:30 +0200)]
Bad_OperPass(): code cleanup.

10 years agoNew configuration option "AllowRemoteOper"
Alexander Barton [Sun, 13 Apr 2008 14:39:08 +0000 (16:39 +0200)]
New configuration option "AllowRemoteOper"

Added new configuration option "AllowRemoteOper" to control whether
remote IRC operators are allowed to use administrative commands that
affect this server or not

This commit introduces the configuration variable, but actually no
function is using it. That's up for the next patches to come ...

10 years agofix assertion failure in ng_ipaddr.c
Florian Westphal [Sat, 26 Sep 2009 09:12:47 +0000 (11:12 +0200)]
fix assertion failure in ng_ipaddr.c

when building with debugging enabled, but without ipv6 support,
ngircd dumped core when loading a config file that specified an ipv6
listen address.

ngircd: ng_ipaddr.c:45: ng_ipaddr_init: Assertion `sizeof(*addr) >=
res0->ai_addrlen' failed.

10 years agoconfigtest: complain when ssl keys are not readable
Florian Westphal [Sun, 20 Sep 2009 18:43:12 +0000 (20:43 +0200)]
configtest: complain when ssl keys are not readable

10 years agoCheck for sockaddr_in.sin_len and initialize it
Alexander Barton [Sun, 13 Sep 2009 23:23:19 +0000 (01:23 +0200)]
Check for sockaddr_in.sin_len and initialize it

Test for sockaddr_in.sin_len and initialize it to the correct value
which some systems (notably Mac OS X) require.

Note: this code path is only relevant when not using getaddrinfo().

10 years agoAlways use get{addr|name}info() when available
Alexander Barton [Sun, 13 Sep 2009 22:25:48 +0000 (00:25 +0200)]
Always use get{addr|name}info() when available

Both getaddrinfo() and getnameinfo() are now used always when available, and
not only when compiling ngIRCd with support for IPv6.

This not only enables ngIRCd to handle multiple addresses per hostname when
compiled without support for IPv6, but fixes binding ngIRCd to IP addresses
on Mac OS X (and probably other BSD-based systems) as well: these systems
require that sockaddr_in is zeroed out and sockaddr_in.sin_len is set to
sizeof(sockaddr_in) like that:

  src/ipaddr/ng_ipaddr.c, line 54:

      + memset(addr, 0, sizeof *addr);
      + addr->sin4.sin_len = sizeof(addr->sin4);
        addr->sin4.sin_family = AF_INET;

But this would break all the systems not using sockaddr_in.sin_len, for
example Linux -- so we assume that all these systems provide getaddrinfo()
and use that for now.

10 years agoXcode: add "debug" configuration to project
Alexander Barton [Sun, 13 Sep 2009 22:21:25 +0000 (00:21 +0200)]
Xcode: add "debug" configuration to project

10 years agoFix cb_connserver() to handle aborted outgoing connections
Alexander Barton [Fri, 11 Sep 2009 22:17:42 +0000 (00:17 +0200)]
Fix cb_connserver() to handle aborted outgoing connections

A configured server could have been removed while a connection apptempt
is still in progress. So the cb_connserver() callback has to test if the
server configuration record is still valid.

10 years agoconn.c: fix more sizeof(..dst_addr) misuse
Florian Westphal [Fri, 11 Sep 2009 21:30:42 +0000 (23:30 +0200)]
conn.c: fix more sizeof(..dst_addr)  misuse

the wrong sizeof() usage fixed in
(conn.c: fix resolver server address backlog) was a bit more
widespread, fix all others, too.

10 years agoresolve.c: fix valgrind 'uninitialized memory' warning
Florian Westphal [Fri, 11 Sep 2009 21:09:11 +0000 (23:09 +0200)]
resolve.c: fix valgrind 'uninitialized memory' warning

fix the following warning generated by valgrind if ipv6 is enabled:

Syscall param write(buf) points to uninitialised byte(s)
   at 0x4000982: (within /lib/
   by 0x80681A8: Resolve_Name (resolve.c:477)
   by 0x805439F: Conn_Handler (conn.c:1658)
   by 0x804AA7C: main (ngircd.c:331)

The warning is because ng_ipaddr_t can be a union, and only the
necessary parts are initialised.  The callers know what part
of the union is valid, so this is not a bug.

10 years agoconn.c: fix resolver server address backlog
Florian Westphal [Fri, 11 Sep 2009 20:51:00 +0000 (22:51 +0200)]
conn.c: fix resolver server address backlog

if more than one ip address is returned for a single host
name, ngircd is supposed to try other addresses in case
connect() to the first address returned fails for some

Alexander Barton noticed that this did not work at all,
as the additional results were not stored.

10 years agoFix "implicit conversion shortens 64-bit value" warning
Alexander Barton [Fri, 11 Sep 2009 20:52:12 +0000 (22:52 +0200)]
Fix "implicit conversion shortens 64-bit value" warning

This patch fixes the following gcc warning in our sources:
"implicit conversion shortens 64-bit value into a 32-bit value"

10 years agoXcode: use gcc 4.0 for Mac OS X 10.4 compatibility
Alexander Barton [Fri, 11 Sep 2009 18:19:51 +0000 (20:19 +0200)]
Xcode: use gcc 4.0 for Mac OS X 10.4 compatibility

10 years agoChannel_Mode(): fix return code of function
Alexander Barton [Thu, 10 Sep 2009 22:44:41 +0000 (00:44 +0200)]
Channel_Mode(): fix return code of function

Fix error handling of Channel_Mode() to return the correct connection
status ("connected"/"disconnected") insted of always returning success.

10 years agoIRC_SERVER(): code cleanup, remove unneeded variable
Alexander Barton [Thu, 10 Sep 2009 22:41:12 +0000 (00:41 +0200)]
IRC_SERVER(): code cleanup, remove unneeded variable

10 years agoIRC_PASS(): remove unnecessary variable initialization
Alexander Barton [Thu, 10 Sep 2009 09:50:43 +0000 (11:50 +0200)]
IRC_PASS(): remove unnecessary variable initialization

10 years agoConn_Close(): remove unused variable "txt"
Alexander Barton [Thu, 10 Sep 2009 09:49:39 +0000 (11:49 +0200)]
Conn_Close(): remove unused variable "txt"

10 years agoMac OS X: fix test for packagemaker(1) tool in Makefile
Alexander Barton [Thu, 10 Sep 2009 09:48:14 +0000 (11:48 +0200)]
Mac OS X: fix test for packagemaker(1) tool in Makefile

10 years agoFix --with-{openssl|gnutls} to accept path names
Alexander Barton [Wed, 2 Sep 2009 12:28:09 +0000 (14:28 +0200)]
Fix --with-{openssl|gnutls} to accept path names

This patch fixes --with-openssl and --with-gnutls and enables both to
accept path names, so that you can use "./configure --with-XXX=/path".
All the other --with-XXX parameters support this already.

10 years agodo not add default listening port if ssl ports were specified
Florian Westphal [Mon, 31 Aug 2009 17:42:59 +0000 (19:42 +0200)]
do not add default listening port if ssl ports were specified

Cosmo Kastemaa reported that its impossible to create an ssl-only setup,
as ngircd binds to port 6667 by default, even if setting "Ports =".

Only add the default port if _both_ "Ports" and "SSLPorts" are

Fixes bugzilla #98.

10 years agoFix LSB header of Debian init script
Alexander Barton [Sat, 29 Aug 2009 21:57:39 +0000 (23:57 +0200)]
Fix LSB header of Debian init script

10 years agoUse AM_SILENT_RULES([yes]), if available
Alexander Barton [Sun, 16 Aug 2009 14:08:21 +0000 (16:08 +0200)]
Use AM_SILENT_RULES([yes]), if available

Starting with GNU automake 1.11 "AM_SILENT_RULES([yes])" is available to
make the build process less verbose ("Linux 2.6 style") which helps to
spot warning and error messages.

So we use it if it is available.

10 years agoUpdate NEWS and ChangeLog for next release
Alexander Barton [Wed, 12 Aug 2009 12:48:33 +0000 (14:48 +0200)]
Update NEWS and ChangeLog for next release

10 years agoUpdated doc/Platforms.txt
Alexander Barton [Tue, 4 Aug 2009 20:53:38 +0000 (22:53 +0200)]
Updated doc/Platforms.txt

10 years agoNew script contrib/
Alexander Barton [Tue, 4 Aug 2009 20:30:59 +0000 (22:30 +0200)]
New script contrib/

This script analyzes the build process of ngIRCd and generates output
suitable for inclusion in doc/Platforms.txt.

10 years agodoc/Platforms.txt: ngircd builds on hppa2.0w-hp-hpux11.11 target
Florian Westphal [Wed, 22 Jul 2009 20:06:36 +0000 (22:06 +0200)]
doc/Platforms.txt: ngircd builds on hppa2.0w-hp-hpux11.11 target

Goetz Hoffart reports successful compile on HPUX/HPPA (on ngircd mailing list):

             Target: hppa2.0w-hp-hpux11.11
           Compiler: gcc
     Compiler flags: -g -O2 -pipe -W -Wall -Wpointer-arith -Wstrict-prototypes -fstack-protector -D_XOPEN_SOURCE_EXTENDED
          Libraries: -lz -lnsl

     Syslog support: yes     Enable debug code: no
   zlib compression: yes           IRC sniffer: no
   Use TCP Wrappers: no        Strict RFC mode: no
   Zeroconf support: no          IRC+ protocol: yes
      IDENT support: no            I/O backend: "poll()"
      IPv6 protocol: no            SSL support: no

10 years agoClient_CheckID(): fix connection information
Alexander Barton [Fri, 17 Jul 2009 14:16:04 +0000 (16:16 +0200)]
Client_CheckID(): fix connection information

This patch fixes the following silly log messages:
'ID "XXX" already registered (on connection -1)!'

If the ID is already registered on a local connection, the local
connection ID is printed; and if the ID is connected via a remote
server, "via network" is displayed.

10 years agoFix return code of Conf_EnableServer()
Alexander Barton [Fri, 17 Jul 2009 12:55:30 +0000 (14:55 +0200)]
Fix return code of Conf_EnableServer()

Conf_EnableServer() only reports success if all required variables,
including host name and port, are set for the specific server.

10 years agoAUTHORS: update my email address
Florian Westphal [Mon, 8 Jun 2009 10:25:35 +0000 (12:25 +0200)]
AUTHORS: update my email address

10 years agoadd section and rfc number to comment about QUIT error
Florian Westphal [Thu, 4 Jun 2009 23:39:33 +0000 (01:39 +0200)]
add section and rfc number to comment about QUIT error

10 years agoenforce upper limit on maximum number of handled commands
Florian Westphal [Mon, 25 May 2009 20:25:18 +0000 (22:25 +0200)]
enforce upper limit on maximum number of handled commands

reported on #ngircd: pasting lots of lines into a channel can kill off
many people on the channel if the read buffer is drained quickly enough
and the client-side TCP can't keep up with the incoming data.

This implements a throttling scheme:
- an irc client may send up to 3 commands per second before a one second
pause is enforced.
- an irc client may send up to 256 bytes per second before a one second
pause is enforced.

After discussion with Alexander Barton, server <-> server links are
treated specially: There is no artificial limit on the number of bytes
sent per second, and up to 10 commands are processed per second before
a pause is enforced.

It may be neccessary to make those limits tuneable to accomondate larger
networks, but for now they are compile time values.

10 years agoconn.c: fix NumConnections imbalance
Florian Westphal [Sun, 17 May 2009 19:32:53 +0000 (21:32 +0200)]
conn.c: fix NumConnections imbalance

New_Server() can call Conn_Close() in its error paths,
but that function decrements the number of current active
connections. Thus we need to increment it earlier.

10 years agoSSL/TLS: fix error handling when ssl ctx init for outgoing server link fails
Florian Westphal [Sun, 17 May 2009 19:27:27 +0000 (21:27 +0200)]
SSL/TLS: fix error handling when ssl ctx init for outgoing server link fails

10 years agoSSL/TLS: fix error path in gnutls ssl ctx allocation
Florian Westphal [Sun, 17 May 2009 19:18:04 +0000 (21:18 +0200)]
SSL/TLS: fix error path in gnutls ssl ctx allocation

10 years agomanpage: move SSLConnect option to the right section
Florian Westphal [Sat, 16 May 2009 23:22:18 +0000 (01:22 +0200)]
manpage: move SSLConnect option to the right section

10 years agoSSL/TLS: remove redundant asserts/ifdefs
Florian Westphal [Fri, 15 May 2009 21:28:59 +0000 (23:28 +0200)]
SSL/TLS: remove redundant asserts/ifdefs

10 years agoSSL/TLS: proper indentation, remove erroneous comment
Florian Westphal [Wed, 13 May 2009 15:29:10 +0000 (17:29 +0200)]
SSL/TLS: proper indentation, remove erroneous comment

10 years agoUpdate copyright notice, it's 2009 already!
Alexander Barton [Tue, 5 May 2009 15:08:48 +0000 (17:08 +0200)]
Update copyright notice, it's 2009 already!

10 years agoUpdated Debian "changelog" file for ngIRCd 14.1 rel-14-1
Alexander Barton [Tue, 5 May 2009 11:14:23 +0000 (13:14 +0200)]
Updated Debian "changelog" file for ngIRCd 14.1

10 years agongIRCd release 14.1
Alexander Barton [Tue, 5 May 2009 10:58:51 +0000 (12:58 +0200)]
ngIRCd release 14.1

10 years agoAdded start/stop script for Red Hat based distributions
Alexander Barton [Tue, 5 May 2009 10:50:55 +0000 (12:50 +0200)]
Added start/stop script for Red Hat based distributions

Script contributed by Naoya Nakazawa <>.

10 years agoRenamed contrib/ to contrib/
Alexander Barton [Tue, 5 May 2009 09:41:26 +0000 (11:41 +0200)]
Renamed contrib/ to contrib/

10 years agosecurity: fix remotely triggerable crash in SSL/TLS code
Florian Westphal [Mon, 4 May 2009 21:51:24 +0000 (23:51 +0200)]
security: fix remotely triggerable crash in SSL/TLS code

When a server is running with SSL/TLS support compiled in,
it is trivial to crash the server by sending an MOTD request
via another server in the network.

- ONLY servers without ssl/tls support compiled in are not affected.
  Disabling SSL in the configuration (no ssl listening ports, etc)
  does NOT help.
- servers that are running standalone (i.e., not connected to any
  other servers) are not affected, either.

This affects all ngircd releases since ngircd 13 (earlier versions
have no SSL/TLS support).

10 years agoFixed "Conflicts:" line in debian/control: missing comma
Alexander Barton [Mon, 4 May 2009 09:23:19 +0000 (11:23 +0200)]
Fixed "Conflicts:" line in debian/control: missing comma

10 years agoDebian: build ngircd-full-dbg package
Alexander Barton [Wed, 29 Apr 2009 00:13:27 +0000 (02:13 +0200)]
Debian: build ngircd-full-dbg package

In addition to the "ngircd" and "ngircd-full" packages a new package named
"ngircd-full-dbg" is build: this package contains all the features of the
"full" package but includes debug code and both the --debug and --sniffer
options and the resulting binaries are _not_ stripped.

10 years agodebian/rules: whitespace fixes
Alexander Barton [Wed, 29 Apr 2009 00:12:56 +0000 (02:12 +0200)]
debian/rules: whitespace fixes

10 years agoFix server list announcement
Tassilo Schweyer [Sat, 25 Apr 2009 22:23:40 +0000 (00:23 +0200)]
Fix server list announcement

When ngircd announces the list of currently known servers
to a new (connecting) server, it sent the introducer of
the servers instead of the top server.

Assuming this network:
|    `
|         `

When irc4 connects to irc3, irc3 tells irc4 that irc5 was
connected to irc2. (irc2 had introduced irc5 to irc3; but thats
not what ngircd should have sent to the new server).

This also placed users on the wrong servers.

10 years agoDoxygen: update source code repository link to GIT
Alexander Barton [Fri, 24 Apr 2009 22:53:47 +0000 (00:53 +0200)]
Doxygen: update source code repository link to GIT

10 years agoallow ping timeout quit messages to show the timeout value
David Kingston [Fri, 24 Apr 2009 05:01:37 +0000 (00:01 -0500)]
allow ping timeout quit messages to show the timeout value

10 years agoirc-server: do not remove hostnames from info text
Florian Westphal [Wed, 22 Apr 2009 21:15:17 +0000 (23:15 +0200)]
irc-server: do not remove hostnames from info text

that code does not really make sense -- the info
text is freely cofngiureable and des not follow a specific

Also, that "+2" might have caused invalid memory accesses.

10 years agoconn-zip: fix error handling
Florian Westphal [Tue, 21 Apr 2009 17:49:15 +0000 (19:49 +0200)]
conn-zip: fix error handling

callers of (Un)Zip_Buffer() assume that
the function closes the connection on error.

However, this was not always the case.

10 years agoremove or translate old comments
Florian Westphal [Tue, 21 Apr 2009 06:40:10 +0000 (08:40 +0200)]
remove or translate old comments

10 years agoclient.c: remove unecessary comments
Florian Westphal [Mon, 20 Apr 2009 06:34:09 +0000 (08:34 +0200)]
client.c: remove unecessary comments

10 years agoadd const qualifier to pointers where possible
Florian Westphal [Sat, 11 Apr 2009 23:09:42 +0000 (01:09 +0200)]
add const qualifier to pointers where possible

10 years agongIRCd release 14 rel-14
Alexander Barton [Mon, 20 Apr 2009 09:36:27 +0000 (11:36 +0200)]
ngIRCd release 14

10 years agoDisplay IPv6 addresses as "[<addr>]" when accepting connections.
Alexander Barton [Fri, 10 Apr 2009 11:22:03 +0000 (13:22 +0200)]
Display IPv6 addresses as "[<addr>]" when accepting connections.

With this patch ngIRCd displays IPv6 addresses as "[<addr>]:<port>" when
accepting new connections and later, if no successful DNS lookup could
be made (or DNS is disabled altogether).

10 years agoXcode: #define include __DATE__ in VERSION
Alexander Barton [Fri, 10 Apr 2009 11:08:04 +0000 (13:08 +0200)]
Xcode: #define include __DATE__ in VERSION

Change VERSION to include the __DATE__ when compiling from within Xcode.

When building using "make xcode" or "make osxpkg" VERSION already is defined
to the "real" version number set in

10 years agoFix ChangeLog: Local channels are already implemented in Release 13
Alexander Barton [Thu, 9 Apr 2009 13:17:44 +0000 (15:17 +0200)]
Fix ChangeLog: Local channels are already implemented in Release 13

10 years agoFix up last Debian changelog entry
Alexander Barton [Mon, 30 Mar 2009 11:44:04 +0000 (13:44 +0200)]
Fix up last Debian changelog entry

10 years agongIRCd release 14~rc1 rel-14-rc1
Alexander Barton [Sun, 29 Mar 2009 15:16:02 +0000 (17:16 +0200)]
ngIRCd release 14~rc1

10 years agoUpdated NEWS and ChangeLog files
Alexander Barton [Sun, 29 Mar 2009 15:05:37 +0000 (17:05 +0200)]
Updated NEWS and ChangeLog files

10 years agoUpdated Debian/Linux init script
Alexander Barton [Sun, 29 Mar 2009 14:37:06 +0000 (16:37 +0200)]
Updated Debian/Linux init script

- PidFile, ServerUID and ServerGID are read from actual server configuration
- Exit code and behaviour is more LSB compliant
- New "status" and "test" sub-functions

10 years agomisspelling in ERR_NORECIPIENT reply
Dana Dahlstrom [Wed, 25 Mar 2009 19:44:40 +0000 (20:44 +0100)]
misspelling in ERR_NORECIPIENT reply

10 years agoAdd missing contributors to AUTHORS file
Alexander Barton [Wed, 11 Mar 2009 10:51:59 +0000 (11:51 +0100)]
Add missing contributors to AUTHORS file

10 years agotestsuite: add more predefined channels to server config
Florian Westphal [Fri, 6 Mar 2009 23:30:11 +0000 (00:30 +0100)]
testsuite: add more predefined channels to server config

make sure it creates & and +, and accepts channel names without
a special character (ngircd should treat
'Name = chan' as 'Name = #chan').

10 years agoallow creation of persistent modeless channels
Florian Westphal [Fri, 6 Mar 2009 23:21:43 +0000 (00:21 +0100)]
allow creation of persistent modeless channels

10 years agoadd and use Channel_IsModeless()
Florian Westphal [Fri, 6 Mar 2009 23:13:25 +0000 (00:13 +0100)]
add and use Channel_IsModeless()

avoid "name[0] == '+'" where possible, having Channel_IsModeless()
makes things much more obvious.

10 years agoEnhance INFO command to report compile time, if available
Alexander Barton [Thu, 5 Mar 2009 15:04:36 +0000 (16:04 +0100)]
Enhance INFO command to report compile time, if available

10 years agoUpdate NEWS and ChangeLog files
Alexander Barton [Tue, 3 Mar 2009 16:59:43 +0000 (17:59 +0100)]
Update NEWS and ChangeLog files

10 years agoChannel mode changes: break on error
Alexander Barton [Tue, 3 Mar 2009 15:33:40 +0000 (16:33 +0100)]
Channel mode changes: break on error

Don't echo multiple syntax error messages (461) on invalid commands,
but break after the first one.
In addition, this solves corrupted 'Unknown mode "+' messages.

10 years agoChannel_Mode(): code cleanup (no functional changes)
Alexander Barton [Tue, 3 Mar 2009 14:06:34 +0000 (15:06 +0100)]
Channel_Mode(): code cleanup (no functional changes)

11 years agoTLS/SSL: remove useless error message when ssl connection is closed
Florian Westphal [Thu, 5 Feb 2009 22:42:56 +0000 (23:42 +0100)]
TLS/SSL: remove useless error message when ssl connection is closed

When using OpenSSL, the following annoying "error" message was logged whenever
an encrypted connection was shut down in a orderly fashion:
TLS/SSL Connection shutdown: ConnSSL_Read: Unable to determine error

of course, this isn't an error at all.

11 years agoupdate ChangeLog.
Florian Westphal [Wed, 4 Feb 2009 22:33:46 +0000 (23:33 +0100)]
update ChangeLog.

11 years agoSSL/TLS: clear all ssl realted flags on shutdown
Florian Westphal [Wed, 4 Feb 2009 22:23:12 +0000 (23:23 +0100)]
SSL/TLS: clear all ssl realted flags on shutdown

one ssl related flags was not cleared on ssl shutdown.
introduce and use CONN_SSL_FLAGS_ALL to zap them all.

11 years agoTLS/SSL: fix memory leak when using compressed server links with ssl
Florian Westphal [Wed, 4 Feb 2009 22:01:53 +0000 (23:01 +0100)]
TLS/SSL: fix memory leak when using compressed server links with ssl

commit 6bc2d3d06e9cb4da68ea4b63d9b6b219d88ab927
(New connection option CONN_RFC1459) forgot to adjust the ssl bitmasks.

The result is that when a compressed AND encrypted server link goes down
the memory allocated by zlib and the r/w buffers are no longer
free'd as the previous ConnSSL_Free() would then also remove the CONN_ZIP flag
from the flag mask.

11 years agoFix spelling of log message: "channek" vs. "channel" ... ChannelKeyFile
Alexander Barton [Fri, 9 Jan 2009 19:18:23 +0000 (20:18 +0100)]
Fix spelling of log message: "channek" vs. "channel" ...

11 years agoChannel key file: store file name and open on each access.
Alexander Barton [Sun, 4 Jan 2009 16:26:50 +0000 (17:26 +0100)]
Channel key file: store file name and open on each access.

Store the file name of channel key files and reopen them on each access
(on each JOIN command) insted of just storing the file handles.

This eliminates the special requirements (no delete) and makes sure
that always the actual file contents are used in all circumstances.

11 years agoSupport individual channel keys for pre-defined channels.
Alexander Barton [Thu, 1 Jan 2009 21:26:13 +0000 (22:26 +0100)]
Support individual channel keys for pre-defined channels.

This patch introduces the new configuration variable "KeyFile" for
[Channel] sections in ngircd.conf. Here a file can be configured for each
pre-defined channel which contains individual channel keys for different
users. This file is line-based and must have the following syntax:


<user> and <nick> can contain the wildcard character "*".

Please not that these channel keys are only in effect, when the channel
has a regular key set using channel mode "k"!

11 years agoRFC 2812, sec. 3.3.1: really check for the last dot
Alexander Barton [Tue, 20 Jan 2009 15:49:34 +0000 (16:49 +0100)]
RFC 2812, sec. 3.3.1: really check for the last dot

This fixes commit 5a3128243f4b60 and makes the test suite ("make check")
run again without errors.

11 years agoirc.c: reject masks with wildcard after last dot
Florian Westphal [Sat, 17 Jan 2009 23:33:34 +0000 (00:33 +0100)]
irc.c: reject masks with wildcard after last dot

RFC 2812 says in section 3.3.1 ("Private Messages"):

The mask MUST have at least 1 (one) "." in it and no wildcards
following the last ".".

11 years agoirc.c: Fix handling of channels containing dots
Florian Westphal [Sat, 17 Jan 2009 23:12:28 +0000 (00:12 +0100)]
irc.c: Fix handling of channels containing dots

commit 2546a13ad2949192eb70bf21e114ec60af287ee4
('Cumulative Message Patch') broke PRIVMSG to channels
containing dots.

Fix this by switching evaluation order:
Check first if the target matches a existing channel and only do a check
for target masks if that failed.

PRIVMSG with host/server masks is described in RFC 2812, section 3.3.1.

Makes one wonder how a server is _really_ supposed to tell the difference
between hostmasks and channel names.