]> jfr.im git - solanum.git/log
solanum.git
8 years agotools/mkpasswd: functions that call exit(3) should be marked noreturn
Aaron Jones [Wed, 1 Jun 2016 20:38:54 +0000 (20:38 +0000)] 
tools/mkpasswd: functions that call exit(3) should be marked noreturn

8 years agobandb/bandb: functions that call exit(3) should be marked noreturn, avoid sign overfl...
Aaron Jones [Wed, 1 Jun 2016 20:37:51 +0000 (20:37 +0000)] 
bandb/bandb: functions that call exit(3) should be marked noreturn, avoid sign overflow in integer function argument

8 years agobandb/bantool: a function that calls exit(3) should be marked noreturn
Aaron Jones [Wed, 1 Jun 2016 20:34:51 +0000 (20:34 +0000)] 
bandb/bantool: a function that calls exit(3) should be marked noreturn

8 years agoauthd/res: make function used only within this unit static, remove unused macros
Aaron Jones [Wed, 1 Jun 2016 20:32:12 +0000 (20:32 +0000)] 
authd/res: make function used only within this unit static, remove unused macros

8 years agoauthd/provider: remove shadowed double variable decl
Aaron Jones [Wed, 1 Jun 2016 20:29:35 +0000 (20:29 +0000)] 
authd/provider: remove shadowed double variable decl

8 years agoauthd/authd: a function that calls exit(3) should be marked noreturn
Aaron Jones [Wed, 1 Jun 2016 20:27:19 +0000 (20:27 +0000)] 
authd/authd: a function that calls exit(3) should be marked noreturn

8 years agowsockd: various fixes
Aaron Jones [Wed, 1 Jun 2016 20:23:13 +0000 (20:23 +0000)] 
wsockd: various fixes

* Use correct sign for comparing data lengths
* Don't return a void statement in a void function
* Remove unused functions and macros

8 years agossld: remove unused macros, avoid sign overflow in integer function argument
Aaron Jones [Wed, 1 Jun 2016 20:17:09 +0000 (20:17 +0000)] 
ssld: remove unused macros, avoid sign overflow in integer function argument

8 years agowsproc: compile out dead code
Aaron Jones [Wed, 1 Jun 2016 20:15:07 +0000 (20:15 +0000)] 
wsproc: compile out dead code

Investigation is required to determine if this function should
actually be used

8 years agorestart: functions that call exit(3) should be marked noreturn
Aaron Jones [Wed, 1 Jun 2016 20:14:09 +0000 (20:14 +0000)] 
restart: functions that call exit(3) should be marked noreturn

8 years agoircd_signal: a function that tailcalls a noreturn function should be marked noreturn
Aaron Jones [Wed, 1 Jun 2016 20:11:46 +0000 (20:11 +0000)] 
ircd_signal: a function that tailcalls a noreturn function should be marked noreturn

8 years agoircd: functions that call exit(3) should be marked noreturn
Aaron Jones [Wed, 1 Jun 2016 20:05:56 +0000 (20:05 +0000)] 
ircd: functions that call exit(3) should be marked noreturn

8 years agogetopt: a function that calls exit(3) should be marked noreturn
Aaron Jones [Wed, 1 Jun 2016 20:03:52 +0000 (20:03 +0000)] 
getopt: a function that calls exit(3) should be marked noreturn

8 years agodns: make function used only within this unit static
Aaron Jones [Wed, 1 Jun 2016 20:02:57 +0000 (20:02 +0000)] 
dns: make function used only within this unit static

8 years agoclass: remove unused macros
Aaron Jones [Wed, 1 Jun 2016 20:01:51 +0000 (20:01 +0000)] 
class: remove unused macros

8 years agochmode: remove unreachable break statement
Aaron Jones [Wed, 1 Jun 2016 20:00:48 +0000 (20:00 +0000)] 
chmode: remove unreachable break statement

8 years agochmode: silence harmless uninitialised variable warning
Aaron Jones [Wed, 1 Jun 2016 20:00:11 +0000 (20:00 +0000)] 
chmode: silence harmless uninitialised variable warning

8 years agochannel: silence harmless uninitialised variable warning
Aaron Jones [Wed, 1 Jun 2016 19:58:53 +0000 (19:58 +0000)] 
channel: silence harmless uninitialised variable warning

8 years agobandbi: a function that calls exit(3) should be marked noreturn
Aaron Jones [Wed, 1 Jun 2016 19:56:47 +0000 (19:56 +0000)] 
bandbi: a function that calls exit(3) should be marked noreturn

8 years agoauthproc: don't shadow variable decls, avoid reserved name
Aaron Jones [Wed, 1 Jun 2016 19:55:35 +0000 (19:55 +0000)] 
authproc: don't shadow variable decls, avoid reserved name

8 years agolibrb: silence some fairly harmless compiler warnings
Aaron Jones [Wed, 1 Jun 2016 19:50:09 +0000 (19:50 +0000)] 
librb: silence some fairly harmless compiler warnings

These include warnings about "break" statements that will never be
executed (because they are after "return" statements), unused macros
(lost to code refactoring or never even used in the first place),
functions that call abort() or loop indefinitely but aren't marked with
the "noreturn" attribute, and use of variables possibly uninitialised
(a false positive).

8 years agoopenssl: use snprintf(3) instead of rb_snprintf()
Aaron Jones [Wed, 1 Jun 2016 18:04:23 +0000 (18:04 +0000)] 
openssl: use snprintf(3) instead of rb_snprintf()

8 years agoopenssl: More LibreSSL compatibility
Aaron Jones [Wed, 1 Jun 2016 17:54:43 +0000 (17:54 +0000)] 
openssl: More LibreSSL compatibility

LibreSSL does not have the new version macros & functions that OpenSSL
1.1.0 implements. This causes a compile-time failure against LibreSSL.

Further, the runtime function for returning the library version returns
the wrong number (the hardcoded constant number SSLEAY_VERSION_NUMBER
aka OPENSSL_VERSION_NUMBER, instead of LIBRESSL_VERSION_NUMBER).

Add more ifdef soup to remedy the situation.

8 years agoopenssl: change how we load DH parameters
Aaron Jones [Wed, 25 May 2016 21:46:34 +0000 (21:46 +0000)] 
openssl: change how we load DH parameters

The code already assumes the presence of fopen(3) and errno, and, by
extension, fclose(3) and strerror(3), so just use those instead of the
BIO wrappers.

Additionally, don't fail to initialise if the DH file does exist but
parsing it fails, as per the pre-existing comment about them being
optional.

8 years agostrcpy: mass-migrate to strlcpy where appropriate
Aaron Jones [Sun, 15 May 2016 03:57:16 +0000 (03:57 +0000)] 
strcpy: mass-migrate to strlcpy where appropriate

8 years agoappveyor: correct version
Aaron Jones [Sun, 15 May 2016 01:14:08 +0000 (01:14 +0000)] 
appveyor: correct version

[ci skip]

8 years agoircd_lexer: fix another crash with the same cause
Aaron Jones [Sun, 15 May 2016 00:57:16 +0000 (00:57 +0000)] 
ircd_lexer: fix another crash with the same cause

8 years agoircd_lexer: fix crash with very large config option strings
Aaron Jones [Sun, 15 May 2016 00:00:23 +0000 (00:00 +0000)] 
ircd_lexer: fix crash with very large config option strings

8 years agominor spring cleaning: remove/relocate duplicate/unused includes & macros
Aaron Jones [Sat, 14 May 2016 23:29:33 +0000 (23:29 +0000)] 
minor spring cleaning: remove/relocate duplicate/unused includes & macros

[ci skip]

8 years agomakerelease: fix DATECODE output
William Pitcock [Sat, 14 May 2016 22:28:49 +0000 (17:28 -0500)] 
makerelease: fix DATECODE output

8 years agoNEWS: document websocket availability
William Pitcock [Sat, 14 May 2016 22:24:56 +0000 (17:24 -0500)] 
NEWS: document websocket availability

8 years agoconfig: document websocket options
William Pitcock [Sat, 14 May 2016 22:24:20 +0000 (17:24 -0500)] 
config: document websocket options

8 years agonewconf: ensure wsock and defer_accept are default-to-disable for now, for consistenc...
William Pitcock [Sat, 14 May 2016 22:23:51 +0000 (17:23 -0500)] 
newconf: ensure wsock and defer_accept are default-to-disable for now, for consistency sake on rehashes

8 years agostarttls: Allow command usage with backends other than OpenSSL
Aaron Jones [Sat, 14 May 2016 00:26:03 +0000 (00:26 +0000)] 
starttls: Allow command usage with backends other than OpenSSL

8 years agom_alias: correctly construct string to be sent
Simon Arlott [Thu, 12 May 2016 18:44:45 +0000 (19:44 +0100)] 
m_alias: correctly construct string to be sent

8 years agobandb: sqlite3: use getpagesize() on FreeBSD
Simon Arlott [Thu, 12 May 2016 11:42:03 +0000 (12:42 +0100)] 
bandb: sqlite3: use getpagesize() on FreeBSD

8 years agowsockd: include stdinc.h so that sys/types.h is included on FreeBSD 4.8
Simon Arlott [Thu, 12 May 2016 11:39:46 +0000 (12:39 +0100)] 
wsockd: include stdinc.h so that sys/types.h is included on FreeBSD 4.8

8 years agolibrb: define UINT32_MAX for FreeBSD 4.8
Simon Arlott [Thu, 12 May 2016 11:35:06 +0000 (12:35 +0100)] 
librb: define UINT32_MAX for FreeBSD 4.8

8 years agolibrb: support rb_path_to_self on FreeBSD 4.8
Simon Arlott [Thu, 12 May 2016 11:33:20 +0000 (12:33 +0100)] 
librb: support rb_path_to_self on FreeBSD 4.8

8 years agoclient: call authd_abort_client with the client that is exiting, not the originator
Simon Arlott [Thu, 12 May 2016 09:06:31 +0000 (10:06 +0100)] 
client: call authd_abort_client with the client that is exiting, not the originator

8 years agoMerge pull request #191 from GLolol/patch-1
William Pitcock [Thu, 12 May 2016 04:46:10 +0000 (23:46 -0500)] 
Merge pull request #191 from GLolol/patch-1

doc: add extensions/chm_nonotice to example confs

8 years agodoc: add extensions/chm_nonotice to example confs
James Lu [Thu, 12 May 2016 04:39:42 +0000 (21:39 -0700)] 
doc: add extensions/chm_nonotice to example confs

8 years ago[Documentation] Increase bitlength recommendation for DH parameters
Aaron Jones [Thu, 5 May 2016 04:18:31 +0000 (04:18 +0000)] 
[Documentation] Increase bitlength recommendation for DH parameters

Also clarify the behaviour of TLS backends and the consequences for
not providing any parameters at all.

[ci skip]

8 years ago[Documentation] Reflect that ssl_private_key is now optional
Aaron Jones [Thu, 5 May 2016 04:15:46 +0000 (04:15 +0000)] 
[Documentation] Reflect that ssl_private_key is now optional

[ci skip]

8 years ago[sslproc] Use certificate file if key file is not present
Aaron Jones [Thu, 5 May 2016 04:10:57 +0000 (04:10 +0000)] 
[sslproc] Use certificate file if key file is not present

8 years agoTravis CI: Build against sqlite3 library
Aaron Jones [Thu, 5 May 2016 03:54:38 +0000 (03:54 +0000)] 
Travis CI: Build against sqlite3 library

8 years ago[mbedtls] Various fixes and improvements
Aaron Jones [Thu, 5 May 2016 03:31:32 +0000 (03:31 +0000)] 
[mbedtls] Various fixes and improvements

* Move certificate, key, DH parameters and configuration to heap
  (Documentation states that setting new configuration, e.g.
   during a rehash, is unsupported while connections using that
   configuration are active)

  This is the same approach as the fix for #186

  Refcount these structures so as to not introduce a memory leak

  On rehash, it will use new structures only if there are no
  errors in constructing them

* Make fingerprint generation work for TLS connections

  See the comments in the newly created file for an explanation

* Fix memory leak when generating a fingerprint from a file

* Add better error-reporting (strings in addition to numbers)
  where possible

* Coalesce several connection memory allocations into one function

* Reduce boilerplate where possible (Charybdis targets C99)

* Support private key being in certificate file, and having no
  DH parameters file

* Correct erroneous closing comment

8 years ago[TLS Backends] Make version strings more useful and consistent
Aaron Jones [Thu, 5 May 2016 03:28:58 +0000 (03:28 +0000)] 
[TLS Backends] Make version strings more useful and consistent

8 years ago[TLS Backends] Allow absense of private key file
Aaron Jones [Thu, 5 May 2016 03:43:15 +0000 (03:43 +0000)] 
[TLS Backends] Allow absense of private key file

Use the certificate file instead

8 years ago[sslproc] Allow absense of private key file
Aaron Jones [Thu, 5 May 2016 03:25:59 +0000 (03:25 +0000)] 
[sslproc] Allow absense of private key file

Backends can then assume that the private key is in the certificate file

8 years agoFix possible crash when DH parameters are not provided
Aaron Jones [Tue, 3 May 2016 17:47:29 +0000 (17:47 +0000)] 
Fix possible crash when DH parameters are not provided

This has ssld calling strlen() on a NULL value

[ci ckip]

8 years agorandom_ping: stop producing negative values that become 16 chars
Simon Arlott [Mon, 2 May 2016 20:14:16 +0000 (21:14 +0100)] 
random_ping: stop producing negative values that become 16 chars

8 years agoauthd: fix reference far off the end of the array on shutdown
Simon Arlott [Sun, 1 May 2016 10:50:26 +0000 (11:50 +0100)] 
authd: fix reference far off the end of the array on shutdown

When authd has no more input it tries to reject all current clients with
an id of UINT32_MAX.

8 years agoauthd: remove unused variable id from accept_client
Simon Arlott [Sun, 1 May 2016 10:44:04 +0000 (11:44 +0100)] 
authd: remove unused variable id from accept_client

8 years agoauthd: allocate the correct size of auth_client_data
Simon Arlott [Sun, 1 May 2016 10:38:32 +0000 (11:38 +0100)] 
authd: allocate the correct size of auth_client_data

If there are holes in the auth_providers ID numbers, the array allocated
based on list length won't be large enough to handle all the IDs.

(auth->data could be converted to a dlink_list)

8 years agoauthd: Only use refcount for reference counting
Simon Arlott [Sun, 1 May 2016 10:31:05 +0000 (11:31 +0100)] 
authd: Only use refcount for reference counting

Use providers_active for provider activity tracking.

8 years agoauthd: fix auth->cid type sizes
Simon Arlott [Sun, 1 May 2016 10:12:34 +0000 (11:12 +0100)] 
authd: fix auth->cid type sizes

* long is too small on 32-bit systems, use unsigned long long if we want
  to check for out of range values
* UINT32_MAX is a valid cid, and 0 isn't
* make auth->cid a uint32_t not uint16_t

8 years agoauthd: fix memory leak in start_auth
Simon Arlott [Sun, 1 May 2016 09:59:22 +0000 (10:59 +0100)] 
authd: fix memory leak in start_auth

8 years agoauthd: don't call cancel_providers recursively
Simon Arlott [Sun, 1 May 2016 09:53:34 +0000 (10:53 +0100)] 
authd: don't call cancel_providers recursively

Also check that they haven't been cancelled while starting up.

8 years agoauthd: use a list for auth_providers
Simon Arlott [Sun, 1 May 2016 09:49:12 +0000 (10:49 +0100)] 
authd: use a list for auth_providers

We only need to iterate over this small fixed size list, so
dictionary iteration will be less efficient.

8 years agom_alias: restore old behaviour of joining all parameters.
Elizabeth Myers [Sun, 1 May 2016 08:43:55 +0000 (03:43 -0500)] 
m_alias: restore old behaviour of joining all parameters.

There are two important caveats here, however:

1) Aliased commands have more than 8 parameters will be truncated;
there's nothing I can do about this.
2) Parameters with colons will not be handled as you expect. Again,
nothing I can do about this.

8 years agostage for charybdis 4-beta1.
William Pitcock [Sun, 1 May 2016 00:58:14 +0000 (19:58 -0500)] 
stage for charybdis 4-beta1.

8 years agolibrb: fix commio build on win32
William Pitcock [Sun, 1 May 2016 00:33:31 +0000 (19:33 -0500)] 
librb: fix commio build on win32

8 years agoauthd: provider: make refcounting system less fragile
William Pitcock [Sun, 1 May 2016 00:26:02 +0000 (19:26 -0500)] 
authd: provider: make refcounting system less fragile

8 years agoRevert "authd: change to lists instead of dictionaries for various things"
William Pitcock [Sun, 1 May 2016 00:20:12 +0000 (19:20 -0500)] 
Revert "authd: change to lists instead of dictionaries for various things"

This reverts commit 49fd293f200e3ecdd5665e62c6fdc18f33a9cdd1.

8 years ago[openssl] Forward-port some more cleanups from fixes to 3.5
Aaron Jones [Sat, 30 Apr 2016 21:45:16 +0000 (21:45 +0000)] 
[openssl] Forward-port some more cleanups from fixes to 3.5

8 years agoauthd: don't decrement refcount twice when accepting the client
Simon Arlott [Sat, 30 Apr 2016 16:06:21 +0000 (17:06 +0100)] 
authd: don't decrement refcount twice when accepting the client

8 years agom_stats: don't try to access bl_stats if it doesn't exist
Simon Arlott [Sat, 30 Apr 2016 12:18:48 +0000 (13:18 +0100)] 
m_stats: don't try to access bl_stats if it doesn't exist

8 years agoauthd_check: don't try to update bl_stats if it doesn't exist
Simon Arlott [Sat, 30 Apr 2016 12:18:06 +0000 (13:18 +0100)] 
authd_check: don't try to update bl_stats if it doesn't exist

This can happen if all the blacklists are removed and then authd
sends a blacklisted response for a client.

8 years agoauthproc: don't try to delete bl_stats if it hasn't been created
Simon Arlott [Sat, 30 Apr 2016 12:11:06 +0000 (13:11 +0100)] 
authproc: don't try to delete bl_stats if it hasn't been created

8 years agolibrb: shutdown() listening sockets pending close() so that listeners can be reopened...
Simon Arlott [Sat, 30 Apr 2016 10:15:03 +0000 (11:15 +0100)] 
librb: shutdown() listening sockets pending close() so that listeners can be reopened reliably

8 years agoopm: use rb_dlinkDelete instead of rb_dlinkFindDelete.
Elizabeth Myers [Sat, 30 Apr 2016 06:58:42 +0000 (01:58 -0500)] 
opm: use rb_dlinkDelete instead of rb_dlinkFindDelete.

8 years agoauthd: change to lists instead of dictionaries for various things
Elizabeth Myers [Sat, 30 Apr 2016 06:56:06 +0000 (01:56 -0500)] 
authd: change to lists instead of dictionaries for various things

Iteration is the primary thing done on these, so using a dictionary
doesn't help a lot. Furthermore (and most importantly), they are not
safe to delete from.

8 years agolibrb: rb_path_to_self(): use sysctl(2) interface on freebsd/dragonfly
William Pitcock [Sat, 30 Apr 2016 06:18:42 +0000 (01:18 -0500)] 
librb: rb_path_to_self(): use sysctl(2) interface on freebsd/dragonfly

8 years agoauthproc: don't delete during iteration, this is not safe.
Elizabeth Myers [Sat, 30 Apr 2016 06:11:08 +0000 (01:11 -0500)] 
authproc: don't delete during iteration, this is not safe.

8 years agolibrb: linebuf: don't reinvent rb_dlinkAddTailAlloc().
William Pitcock [Sat, 30 Apr 2016 05:58:39 +0000 (00:58 -0500)] 
librb: linebuf: don't reinvent rb_dlinkAddTailAlloc().

8 years agoauthd: don't try to do anything on exit, it's too precarious
Elizabeth Myers [Sat, 30 Apr 2016 05:46:18 +0000 (00:46 -0500)] 
authd: don't try to do anything on exit, it's too precarious

8 years agotools: fix stub rb_strcasecmp() build
William Pitcock [Sat, 30 Apr 2016 00:52:19 +0000 (19:52 -0500)] 
tools: fix stub rb_strcasecmp() build

8 years agoircd: Channel.bants is not a serial but a timestamp.
William Pitcock [Fri, 29 Apr 2016 23:59:32 +0000 (18:59 -0500)] 
ircd: Channel.bants is not a serial but a timestamp.

Previously, the IRCd would increment bants instead of resyncing the timestamp, causing the potential of
false negatives from the bancache system.

8 years agolibrb: close FDs when they're freed (outside of select handler)
Simon Arlott [Thu, 28 Apr 2016 21:00:54 +0000 (22:00 +0100)] 
librb: close FDs when they're freed (outside of select handler)

8 years agoMention another RFC with regard to deprecating plaintext
Aaron Jones [Fri, 29 Apr 2016 16:28:18 +0000 (16:28 +0000)] 
Mention another RFC with regard to deprecating plaintext

8 years ago[openssl] More improvements to the backend
Aaron Jones [Fri, 29 Apr 2016 16:26:52 +0000 (16:26 +0000)] 
[openssl] More improvements to the backend

* Don't manually initialise libssl 1.1.0 -- it does this automatically
* SSL_library_init() should be called first otherwise
* Move SSL_CTX construction to rb_setup_ssl_server()
* Test for all required files (certificate & key) before doing anything
* Free the old CTX before constructing a new one (Fixes #186)
* Don't try to set options / ciphers etc on a NULL CTX
* Clean up ifdef indentation
* Fix DH parameters memory leak

8 years agoopenssl: set ciphers on client connections too
Simon Arlott [Fri, 29 Apr 2016 06:42:12 +0000 (07:42 +0100)] 
openssl: set ciphers on client connections too

8 years agosslproc: don't send updated config to dead/shutdown sslds
Simon Arlott [Fri, 29 Apr 2016 06:35:43 +0000 (07:35 +0100)] 
sslproc: don't send updated config to dead/shutdown sslds

They might be running older versions of the SSL library that
doesn't support the key type or ciphers being configured.

8 years agosslproc: reset ssld_wait/spin_count when explicitly requested to restart ssld
Simon Arlott [Thu, 28 Apr 2016 21:22:37 +0000 (22:22 +0100)] 
sslproc: reset ssld_wait/spin_count when explicitly requested to restart ssld

8 years ago[mbedtls] correct printf argument count
Aaron Jones [Wed, 27 Apr 2016 22:11:19 +0000 (22:11 +0000)] 
[mbedtls] correct printf argument count

[ci skip]

8 years agoPartially revert previous commit
Aaron Jones [Wed, 27 Apr 2016 21:49:55 +0000 (21:49 +0000)] 
Partially revert previous commit

The OpenSSL backend is the only one that assigns a non-constant
value to the length variable. Use the correct type for its
pointer and cast instead.

[ci skip]

8 years ago[TLS backends] Miscellaneous fixes
Aaron Jones [Wed, 27 Apr 2016 21:43:54 +0000 (21:43 +0000)] 
[TLS backends] Miscellaneous fixes

* Certificate fingerprint length functions return an "int", so use an
  int when calculating the length
* Clean up the OpenSSL certificate fingerprint if() and indentation mess

8 years agoopenssl: don't allow certificates outside the validity period
Simon Arlott [Wed, 27 Apr 2016 21:03:49 +0000 (22:03 +0100)] 
openssl: don't allow certificates outside the validity period

8 years agoepoll: don't try to read from closed FDs
Simon Arlott [Wed, 27 Apr 2016 20:16:29 +0000 (21:16 +0100)] 
epoll: don't try to read from closed FDs

8 years ago[openssl] support ECDHE on more than one curve when possible
Aaron Jones [Wed, 27 Apr 2016 16:17:33 +0000 (16:17 +0000)] 
[openssl] support ECDHE on more than one curve when possible

8 years agomkfingerprint: use certfp method names from certfp.h
Simon Arlott [Tue, 26 Apr 2016 19:58:16 +0000 (20:58 +0100)] 
mkfingerprint: use certfp method names from certfp.h

8 years agoadd mkfingerprint program
Simon Arlott [Tue, 26 Apr 2016 19:21:23 +0000 (20:21 +0100)] 
add mkfingerprint program

8 years agocertfp: Move method name/prefix strings to a separate header file
Simon Arlott [Tue, 26 Apr 2016 19:19:59 +0000 (20:19 +0100)] 
certfp: Move method name/prefix strings to a separate header file

8 years agolibrb: gnutls: check return value of fread()
Simon Arlott [Tue, 26 Apr 2016 19:28:12 +0000 (20:28 +0100)] 
librb: gnutls: check return value of fread()

8 years agoircd.conf.example: use certfp_method = spki_sha256
Simon Arlott [Mon, 25 Apr 2016 22:52:18 +0000 (23:52 +0100)] 
ircd.conf.example: use certfp_method = spki_sha256

SHA1 is insecure. SHA2-512 is a bit long. Hashes of the full certificate
are really impractical and people need to stop using them.

8 years agogetopt: don't modify argv as it breaks restart()
Simon Arlott [Mon, 25 Apr 2016 22:21:38 +0000 (23:21 +0100)] 
getopt: don't modify argv as it breaks restart()

8 years agomodules: use exit(EXIT_FAILURE) on failure
Simon Arlott [Mon, 25 Apr 2016 21:27:57 +0000 (22:27 +0100)] 
modules: use exit(EXIT_FAILURE) on failure

This will allow service process monitoring to recognise the difference
between a shutdown and an error of a -foreground ircd, because only
/DIE (or SIGINT) will exit with return code 0.

8 years agoauthd: wait until the ssl connection is "open" before reading
Simon Arlott [Mon, 25 Apr 2016 20:35:58 +0000 (21:35 +0100)] 
authd: wait until the ssl connection is "open" before reading

It's useful to allow authd to run in parallel with ssl negotiation,
but if the ssld connection has plaintext data ready for reading
there's a race condition between authd calling read_packet() and
ssl_process_certfp() storing the certificate fingerprint. This
scenario would be bad for a server connecting because fingerprint
verification will fail.

Allow either operation to complete first, but wait until
ssl_process_open_fd() calls the ssl open callback before calling
read_packet().

8 years agosslproc: simplify ssl open callback
Simon Arlott [Mon, 25 Apr 2016 20:12:44 +0000 (21:12 +0100)] 
sslproc: simplify ssl open callback

Don't use the librb callback type as we're always passing client_p.

Provide a return value so that the connect handler can exit_client()
and the accept handler can opt to use the default dead handler.