ngircd-alex.git
9 years agoNot only check for poll(), make sure poll.h exists as well
Alexander Barton [Fri, 25 Nov 2011 20:56:33 +0000 (21:56 +0100)]
Not only check for poll(), make sure poll.h exists as well

This fixes building ngIRCd on Debian GNU/Linux 1.3 "Bo" :-)

9 years agowhois-test: handle local hostname = "localhost.localdomain"
Alexander Barton [Thu, 10 Nov 2011 10:54:22 +0000 (11:54 +0100)]
whois-test: handle local hostname = "localhost.localdomain"

Use the pattern "localhost*" for valid local hostnames.

9 years agosample-ngircd.conf: show correct default for "PAM" variable
Alexander Barton [Tue, 8 Nov 2011 20:12:01 +0000 (21:12 +0100)]
sample-ngircd.conf: show correct default for "PAM" variable

The default of "PAM" is "yes" when ngIRCd has been configured to use it,
so show the correct default value in the sample configuration file.

Closes #119.

9 years agoUpdate GPL 2 license text to current version
Alexander Barton [Sun, 6 Nov 2011 20:51:48 +0000 (21:51 +0100)]
Update GPL 2 license text to current version

See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.

9 years agoTest for gai_strerror()
Alexander Barton [Sun, 6 Nov 2011 13:16:59 +0000 (14:16 +0100)]
Test for gai_strerror()

If gai_strerror() isn't available, use a macro that simply returns
a static error message (regardless of the real error code).

For example, GNU libc 2.0.7 doesn't implement gai_strerror().

9 years agoOnly use AI_NUMERICHOST if it is #define'd
Alexander Barton [Sun, 6 Nov 2011 13:13:49 +0000 (14:13 +0100)]
Only use AI_NUMERICHOST if it is #define'd

It isn't using GNU libc 2.0.7, for example ...

9 years agodefines.h: fix comment: "lenth" -> "length"
Alexander Barton [Fri, 4 Nov 2011 23:35:18 +0000 (00:35 +0100)]
defines.h: fix comment: "lenth" -> "length"

Reported by Christoph Biedl in #ngircd. Thanks!

9 years agoInit_Server_Struct(): correctly zero Server->bind_addr
Alexander Barton [Fri, 4 Nov 2011 23:21:19 +0000 (00:21 +0100)]
Init_Server_Struct(): correctly zero Server->bind_addr

Don't use the size of the pointer, use the size of the variable!

9 years agoClean up and fix comments of Check_ArgIsTrue()
Alexander Barton [Thu, 3 Nov 2011 08:54:28 +0000 (09:54 +0100)]
Clean up and fix comments of Check_ArgIsTrue()

Thanks to kaFux for pointing this out!
And fix code formatting as well ...

9 years agoUpdate doc/GIT.txt
Alexander Barton [Wed, 7 Sep 2011 13:39:41 +0000 (15:39 +0200)]
Update doc/GIT.txt

9 years agoOnly close "unrelated" sockets in forked child processes
Alexander Barton [Wed, 7 Sep 2011 12:51:16 +0000 (14:51 +0200)]
Only close "unrelated" sockets in forked child processes

This fixes the problem that ngIRCd can't do any IDENT lookups because
of the socket has already been closed in the child process.

The bug has been introduced starting with ngIRCd 17 ... :-(
(commit ID 6ebb31ab35e)

9 years agoAdded doc/Modes.txt: document modes supported by ngIRCd
Alexander Barton [Fri, 26 Aug 2011 14:16:53 +0000 (16:16 +0200)]
Added doc/Modes.txt: document modes supported by ngIRCd

9 years agoImplemented user mode "R" and channel mode "R"
Alexander Barton [Fri, 26 Aug 2011 13:26:38 +0000 (15:26 +0200)]
Implemented user mode "R" and channel mode "R"

 - User mode "R": indicates that the nick name of this user is "registered".
   This mode isn't handled by ngIRCd itself, but must be set and unset by
   IRC services like Anope.

 - Channel mode "R": only registered users (having the user mode "R" set)
   are allowed to join this channel.

9 years agoUse Proc_Close() to remove no longer unused pipes to child processes
Alexander Barton [Tue, 23 Aug 2011 10:32:05 +0000 (12:32 +0200)]
Use Proc_Close() to remove no longer unused pipes to child processes

This removes spurious (but harmless) debug messages.

9 years agoNew function Proc_Close() to shutdown pipes to child processes
Alexander Barton [Tue, 23 Aug 2011 10:31:17 +0000 (12:31 +0200)]
New function Proc_Close() to shutdown pipes to child processes

9 years agoIntroduce DEBUG_BUFFER, rework some debug messages
Alexander Barton [Tue, 23 Aug 2011 10:28:04 +0000 (12:28 +0200)]
Introduce DEBUG_BUFFER, rework some debug messages

DEBUG_BUFFER is off by default and therefore disables these messages:
 - "Handle_Write() called for connection XX, YY bytes pending ..."
 - "Connection XX: ZZ bytes left in read buffer."

9 years agoTestsuite: bind to loopback (127.0.0.1) interface only
Alexander Barton [Mon, 22 Aug 2011 14:54:24 +0000 (16:54 +0200)]
Testsuite: bind to loopback (127.0.0.1) interface only

9 years agodoc/Platforms.txt: ngIRCd 18 on Nexenta works
Alexander Barton [Fri, 19 Aug 2011 13:51:56 +0000 (15:51 +0200)]
doc/Platforms.txt: ngIRCd 18 on Nexenta works

Thanks to Götz Hoffart for testing!

9 years agoNew 2nd message "Nickname too long" for error code 432
Alexander Barton [Fri, 19 Aug 2011 09:09:40 +0000 (11:09 +0200)]
New 2nd message "Nickname too long" for error code 432

9 years agoClient_CheckNick(), Client_IsValidNick(): code cleanup
Alexander Barton [Fri, 19 Aug 2011 08:44:26 +0000 (10:44 +0200)]
Client_CheckNick(), Client_IsValidNick(): code cleanup

9 years agoMerge branch 'ServerMode'
Alexander Barton [Sat, 13 Aug 2011 19:04:01 +0000 (21:04 +0200)]
Merge branch 'ServerMode'

* ServerMode:
  Handle channel user modes 'a', 'h', and 'q' from remote servers
  Handle unknown channel modes on server links
  Handle unknown user modes on server links
  IRC_MODE(), Client_Mode(): code cleanup [2/2]
  Enlarge client user mode buffer, reduce client flags buffer
  Infom clients when other servers change their user modes
  IRC_MODE(), Client_Mode(): code cleanup [1/2]

9 years agoMerge branch 'bug113-SrvPrefix'
Alexander Barton [Tue, 9 Aug 2011 08:16:56 +0000 (10:16 +0200)]
Merge branch 'bug113-SrvPrefix'

* bug113-SrvPrefix:
  Slightly change (and document!) IRC_KILL() calling convention
  Spoofed prefixes: close connection on non-server links only

9 years agoXcode: update project file to Xcode 3.2 or newer
Alexander Barton [Sun, 7 Aug 2011 12:42:49 +0000 (14:42 +0200)]
Xcode: update project file to Xcode 3.2 or newer

Xcode requires Mac OS X 10.6 or newer; Xcode 4 supports this project
format as well, so effectively you can use Mac OS X 10.6.x or 10.7.x
for building ngIRCd with the Apple Xcode IDE.

9 years agoXcode: Mac OS X config.h: support 10.5 as well as 10.6/10.7 SDK
Alexander Barton [Sun, 7 Aug 2011 12:41:11 +0000 (14:41 +0200)]
Xcode: Mac OS X config.h: support 10.5 as well as 10.6/10.7 SDK

9 years agoXcode: exclude more Xcode 4 specific directories in ".gitignore"
Alexander Barton [Tue, 2 Aug 2011 14:04:23 +0000 (16:04 +0200)]
Xcode: exclude more Xcode 4 specific directories in ".gitignore"

9 years agoCast getpid() and time() results for srand() input
Alexander Barton [Tue, 2 Aug 2011 11:21:54 +0000 (13:21 +0200)]
Cast getpid() and time() results for srand() input

This fixes:

src/ngircd/ngircd.c:596: warning: implicit conversion
 shortens 64-bit value into a 32-bit value

(i686-apple-darwin11-llvm-gcc-4.2)

9 years agoXcode: update and add missing files to project
Alexander Barton [Tue, 2 Aug 2011 11:16:28 +0000 (13:16 +0200)]
Xcode: update and add missing files to project

9 years agoIRC_QUIT(): disconnect directly linked servers sending QUIT
Alexander Barton [Mon, 1 Aug 2011 22:56:49 +0000 (00:56 +0200)]
IRC_QUIT(): disconnect directly linked servers sending QUIT

Without this patch, the server becomes removed from the network and
the client structures, but the connection isn't shut down at all ...

9 years agocontrib/ngindent: detect "gindent" as GNU indent
Alexander Barton [Mon, 1 Aug 2011 21:39:29 +0000 (23:39 +0200)]
contrib/ngindent: detect "gindent" as GNU indent

9 years agoHandle channel user modes 'a', 'h', and 'q' from remote servers ServerMode
Alexander Barton [Mon, 1 Aug 2011 21:30:55 +0000 (23:30 +0200)]
Handle channel user modes 'a', 'h', and 'q' from remote servers

These channel user modes aren't used for anything at the moment, but
ngIRCd knows that these three modes are "channel user modes" and not
"channel modes", that is that these modes take an "nick name" argument.

Like unknown user and channel modes, these modes are saved and forwarded,
but ignored otherwise.

9 years agoHandle unknown channel modes on server links
Alexander Barton [Mon, 1 Aug 2011 20:30:00 +0000 (22:30 +0200)]
Handle unknown channel modes on server links

9 years agoHandle unknown user modes on server links
Alexander Barton [Mon, 1 Aug 2011 20:09:40 +0000 (22:09 +0200)]
Handle unknown user modes on server links

9 years agoIRC_MODE(), Client_Mode(): code cleanup [2/2]
Alexander Barton [Mon, 1 Aug 2011 19:51:31 +0000 (21:51 +0200)]
IRC_MODE(), Client_Mode(): code cleanup [2/2]

9 years agoEnlarge client user mode buffer, reduce client flags buffer
Alexander Barton [Mon, 1 Aug 2011 19:21:01 +0000 (21:21 +0200)]
Enlarge client user mode buffer, reduce client flags buffer

We have to enlage our user mode buffer, so we can handle even unknown
user modes in the future; and reduce the client flags buffer, because
I can't imagine why we ever would need ~100 flags!?

Now we support up to 15 user modes (was: 8) and up to 15 flags (was: 99).

So in the end, we even save 99-15+8-15=77 bytes for each client structure!

9 years agoInfom clients when other servers change their user modes
Alexander Barton [Mon, 1 Aug 2011 19:10:16 +0000 (21:10 +0200)]
Infom clients when other servers change their user modes

9 years agodoc/Platforms.txt: re-add mipsel/unknown/linux-gnu with gcc 4.1.2
Alexander Barton [Mon, 1 Aug 2011 08:42:22 +0000 (10:42 +0200)]
doc/Platforms.txt: re-add mipsel/unknown/linux-gnu with gcc 4.1.2

9 years agoUpdated doc/Platforms.txt: mipsel/unknown/linux-gnu
Alexander Barton [Mon, 1 Aug 2011 07:08:14 +0000 (09:08 +0200)]
Updated doc/Platforms.txt: mipsel/unknown/linux-gnu

9 years agoIRC_MODE(), Client_Mode(): code cleanup [1/2]
Alexander Barton [Mon, 1 Aug 2011 07:07:32 +0000 (09:07 +0200)]
IRC_MODE(), Client_Mode(): code cleanup [1/2]

9 years agoSlightly change (and document!) IRC_KILL() calling convention bug113-SrvPrefix
Alexander Barton [Sat, 30 Jul 2011 17:47:59 +0000 (19:47 +0200)]
Slightly change (and document!) IRC_KILL() calling convention

9 years agoTestsuite: make getpid.sh work even when run as root
Alexander Barton [Sat, 30 Jul 2011 16:47:58 +0000 (18:47 +0200)]
Testsuite: make getpid.sh work even when run as root

Use ps(1) flag "-a" (as well as "-f"):
"Select all processes except both session leaders (see getsid(2)) and
processes not associated with a terminal."

Thanks to Götz Hoffart for reporting this problem!

9 years agoSpoofed prefixes: close connection on non-server links only
Alexander Barton [Tue, 19 Jul 2011 14:00:55 +0000 (16:00 +0200)]
Spoofed prefixes: close connection on non-server links only

On server-links, spoofed prefixes can happen because of the asynchronous
nature of the IRC protocol. So don't break server-links, only log a message
and ignore the command.

This fixes bug 113, see:
<https://arthur.barton.de/bugzilla/show_bug.cgi?id=113>

9 years agoFix typo in doc/Platforms.txt; make Linux footnote more generic
Alexander Barton [Sun, 10 Jul 2011 20:32:29 +0000 (22:32 +0200)]
Fix typo in doc/Platforms.txt; make Linux footnote more generic

9 years agongIRCd release 18 rel-18
Alexander Barton [Sun, 10 Jul 2011 18:05:16 +0000 (20:05 +0200)]
ngIRCd release 18

9 years agoUpdate ChangeLog and NEWS for ngIRCd release 18
Alexander Barton [Sun, 10 Jul 2011 18:02:01 +0000 (20:02 +0200)]
Update ChangeLog and NEWS for ngIRCd release 18

9 years agoUpdated doc/Platforms.txt for ngIRCd release 18
Alexander Barton [Sun, 10 Jul 2011 17:58:41 +0000 (19:58 +0200)]
Updated doc/Platforms.txt for ngIRCd release 18

9 years agoMorePrivacy: Don't register WHOWAS information
Alexander Barton [Sun, 10 Jul 2011 12:45:33 +0000 (14:45 +0200)]
MorePrivacy: Don't register WHOWAS information

Citing an email from Florian to the ngIRCd mailing list:

"I wonder what the expected behaviour is when Conf_MorePrivacy is changed
 from 'yes' to 'no' and the config is reloaded.

 At the moment, WHOWAS will start giving out information on Users that
 were connected during Conf_MorePrivacy=yes period.  If this is not
 wanted, Client_RegisterWhowas() should be changed to not store a record
 when Conf_MorePrivacy is enabled."

And I think it is "not wanted" :-)

9 years agoAdd preliminary ngIRCd protocol module for Anope 1.9
Alexander Barton [Sun, 10 Jul 2011 12:20:48 +0000 (14:20 +0200)]
Add preliminary ngIRCd protocol module for Anope 1.9

See contrib/Anope/README and doc/Services.txt for more details
and installation instructions!

9 years agoUpdate timestamp of ngircd(8) manual page
Alexander Barton [Sat, 2 Jul 2011 20:02:43 +0000 (22:02 +0200)]
Update timestamp of ngircd(8) manual page

9 years agongIRCd release 18~rc2 rel-18-rc2
Alexander Barton [Wed, 29 Jun 2011 08:22:46 +0000 (10:22 +0200)]
ngIRCd release 18~rc2

9 years agoGnuTLS: use 1024 (DH_BITS_MIN) as minimum size of the DH prime
Alexander Barton [Tue, 28 Jun 2011 11:48:33 +0000 (13:48 +0200)]
GnuTLS: use 1024 (DH_BITS_MIN) as minimum size of the DH prime

For outgoing connections, we use 2048 (DH_BITS) since commit 49b2d0e.

This patch enables ngIRCd to accept incoming connections from other servers
and clients that use at least 1024 bits (and no longer requires 2048 for
incoming connections, too).

Patch proposed by Florian Westphal.

9 years agongircd.8: document debugging options
Alexander Barton [Tue, 28 Jun 2011 11:45:16 +0000 (13:45 +0200)]
ngircd.8: document debugging options

9 years agongircd.conf.5: strip "SSL" prefix from variables in [SSL] section
Alexander Barton [Tue, 28 Jun 2011 11:21:38 +0000 (13:21 +0200)]
ngircd.conf.5: strip "SSL" prefix from variables in [SSL] section

9 years agoFix some wording, use spellchecker ;-)
Alexander Barton [Tue, 28 Jun 2011 11:12:06 +0000 (13:12 +0200)]
Fix some wording, use spellchecker ;-)

9 years agodoc/SSL.txt: adopt to new configuration file layout
Alexander Barton [Tue, 28 Jun 2011 11:11:14 +0000 (13:11 +0200)]
doc/SSL.txt: adopt to new configuration file layout

9 years agongIRCd release 18~rc1 rel-18-rc1
Alexander Barton [Mon, 27 Jun 2011 21:00:30 +0000 (23:00 +0200)]
ngIRCd release 18~rc1

9 years agohash: Use UINT32 instead of uint32_t
Alexander Barton [Mon, 27 Jun 2011 08:27:07 +0000 (10:27 +0200)]
hash: Use UINT32 instead of uint32_t

9 years agoUpdate NEWS and ChangeLog file for our upcoming next release newconfig
Alexander Barton [Sun, 26 Jun 2011 22:33:58 +0000 (00:33 +0200)]
Update NEWS and ChangeLog file for our upcoming next release

9 years agohash: use more recent lookup3 algorithm instead of lookup2
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.

9 years agoUse srand()/rand() instead of srandom()/random(); seems to be more portable
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

9 years agoMerge branch 'MorePrivacy'
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

9 years agosample-ngircd.conf: remove "SSL" prefix from SSL-related variables
Alexander Barton [Sun, 26 Jun 2011 13:39:39 +0000 (15:39 +0200)]
sample-ngircd.conf: remove "SSL" prefix from SSL-related variables

9 years agoMerge branch 'ScrubCTCP'
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

9 years agoMerge branch 'newconfig'
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]

9 years agosample-ngircd.conf: "SyslogFacility" should be commented out
Alexander Barton [Sat, 25 Jun 2011 22:10:22 +0000 (00:10 +0200)]
sample-ngircd.conf: "SyslogFacility" should be commented out

9 years agoMove SSL-related configuration variables to new [SSL] section
Alexander Barton [Sat, 25 Jun 2011 22:09:36 +0000 (00:09 +0200)]
Move SSL-related configuration variables to new [SSL] section

9 years agoCheckFileReadable(): only check when a filename is given ...
Alexander Barton [Sat, 25 Jun 2011 22:07:47 +0000 (00:07 +0200)]
CheckFileReadable(): only check when a filename is given ...

9 years agoPAM: make clear which "Password" config option is ignored
Alexander Barton [Sat, 25 Jun 2011 21:55:54 +0000 (23:55 +0200)]
PAM: make clear which "Password" config option is ignored

9 years agoReally remove [Features] in our manual pages
Alexander Barton [Sat, 25 Jun 2011 21:54:41 +0000 (23:54 +0200)]
Really remove [Features] in our manual pages

9 years agoAdd documentation for "ScrubCTCP" configuration option ScrubCTCP
xor [Sat, 19 Jun 2010 04:08:33 +0000 (06:08 +0200)]
Add documentation for "ScrubCTCP" configuration option

9 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.

9 years agoNew option to scrub incoming CTCP commands
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.

9 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

9 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

9 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

9 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"

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

9 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().

9 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.

9 years agoNew documentation: "how to contribute"
Alexander Barton [Fri, 24 Jun 2011 19:01:18 +0000 (21:01 +0200)]
New documentation: "how to contribute"

9 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.

9 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.

9 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"

9 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

9 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 ...

9 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.

9 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.

9 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.

9 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

9 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

9 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.

9 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.

9 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.

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

9 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

9 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"

9 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.

9 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

9 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

9 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"

9 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