Commit Graph

56 Commits

Author SHA1 Message Date
Jilles Tjoelker 57fe1cf10e openssl: Avoid cutting off OpenSSL errors at 119 chars.
ERR_error_string() is just broken, as it returns at most 119 chars
which means error messages are frequently truncated.
Allow for 511 chars using ERR_error_string_n().
2010-05-09 00:30:51 +02:00
Jilles Tjoelker dce31e2723 Fix --disable-balloc.
libratbox r26769
2010-03-05 17:28:47 +01:00
Jilles Tjoelker ed1dc6b379 gnutls: I guess a gnutls_x509_crt_deinit() is needed to avoid memory leak. 2010-02-22 19:16:37 +01:00
William Pitcock 0a62583676 gnutls: Add support for certfp gathering. 2010-02-22 11:13:59 -06:00
Jilles Tjoelker 6af7e4faa6 Fix a memory leak with client certificates. 2010-02-19 16:55:15 +01:00
William Pitcock b3fa6c9dc6 Fix libtool build issue. 2010-02-18 18:11:23 -06:00
William Pitcock 1800d9737b Run autoreconf. 2010-02-17 23:12:45 -06:00
Jilles Tjoelker 360a73dc94 Add new function rb_get_ssl_certfp() to export-syms.txt. 2010-02-07 20:38:37 +01:00
Jilles Tjoelker a099270d45 Add certfp support to libratbox and ssld.
This lets a user connect with a client certificate, and
passes the certificate's fingerprint to ircd, which
currently just notices it to the user.

A new ssld->ircd message 'F' is used to pass on the
fingerprint.

This is only for OpenSSL for now, not GNUTLS.
2010-01-31 19:04:20 +01:00
Jilles Tjoelker 8b4cf5c15b Fix memory leak and bad error reporting with posix_spawn():
* an initialized posix_spawnattr_t must be destroyed
* posix_spawn() returns an error number instead of setting errno

libratbox trunk r26730
2010-01-22 00:09:56 +01:00
William Pitcock 042acc47bb Run autoreconf. 2010-01-07 16:51:32 -06:00
Jilles Tjoelker 4486c20089 Fix fd passing on FreeBSD/amd64 and possibly Solaris/sparc.
The number of file descriptors in the message was not
determined correctly.
2009-07-10 00:27:01 +02:00
Valeriy Yatsko cb2b4d497e Run automake for libratbox. 2008-12-22 12:50:23 +03:00
Valeriy Yatsko f030cae802 Update libratbox. 2008-12-22 12:49:01 +03:00
Valeriy Yatsko c915c2090e Fix serno.h. 2008-12-22 02:46:26 +03:00
Valeriy Yatsko d56c84364a Remove .hgignore for serno.h, add serno.h for libratbox. 2008-12-22 02:34:40 +03:00
Jilles Tjoelker 7a509a687f Remove additional wrong declaration for rb_kill(). 2008-12-03 22:57:13 +01:00
Valeriy Yatsko 2f6c1ef878 Forgot version.c.SH for libratbox/. 2008-12-03 02:54:08 +03:00
Valeriy Yatsko c7c9aa764d Branch merge. 2008-12-03 02:50:01 +03:00
Valeriy Yatsko 94b4fbf93a Copied libratbox and related stuff from shadowircd upstream. 2008-12-03 02:49:39 +03:00
Valery V Yatsko e6451707d9 branch merge 2008-08-17 09:33:47 +04:00
Valery V Yatsko 40b8b28e1b run autoreconf 2008-08-17 09:27:15 +04:00
Jilles Tjoelker 74e0c6e660 fix a crash in the rb_bh_gc code
from libratbox svn r25871 (androsyn)
2008-08-12 22:37:29 +02:00
Valery V Yatsko 670f0c247e sync with libratbox upstream - r25870 2008-08-11 23:20:24 +04:00
Jilles Tjoelker b62765e9a9 Rerun autoconf. 2008-08-02 02:09:23 +02:00
Jilles Tjoelker 4a387e786a Fix shell syntax. 2008-08-02 02:09:16 +02:00
William Pitcock 63ae37ccd1 Rerun autoconf. 2008-08-01 17:03:18 -05:00
William Pitcock d7e75f0ab9 Add *sunos* conditional to solaris section for opensolaris, and add -D_XPG4_2 -D__EXTENSIONS__ to CFLAGS on these platforms. 2008-08-01 17:02:58 -05:00
William Pitcock 143b6cc1e4 Automated merge with ssh://hg.atheme.org//hg/charybdis 2008-08-01 17:00:41 -05:00
William Pitcock 1f025cc3bf rb_setup_fd_ports(): use correct prototype. 2008-08-01 17:00:00 -05:00
Valery Yatsko 4414eb3c9e libratbox sync - r25796 2008-07-30 02:41:27 +04:00
Valery V Yatsko 033be68727 sync libratbox - r25599 + charybdis packaging patch 2008-06-25 09:28:30 +04:00
Jilles Tjoelker eb66895a34 Rerun autoconf. 2008-06-21 00:27:16 +02:00
Jilles Tjoelker 081f7ac384 Change == in test(1) to =.
libratbox r25570 (jilles)
2008-06-21 00:27:00 +02:00
William Pitcock 1284a4877c Set SONAME to libratbox.so.3. (Again, packaging. Yeah. We know.) 2008-06-10 22:06:54 -05:00
William Pitcock 3ea61d8132 Add libratbox.pc.in for out-of-tree libratbox build (think: packaging). 2008-06-10 22:02:10 -05:00
William Pitcock c7d01d2d7d Make sure x509_cred and dh_params objects are allocated. 2008-06-10 21:24:49 -05:00
William Pitcock af6f5d479f GNUTLS backend. Untested. 2008-06-10 20:33:15 -05:00
William Pitcock dd91040957 Run autoreconf. 2008-06-10 13:45:43 -05:00
William Pitcock 5d92990907 libratbox: Add checks for GnuTLS support. 2008-06-10 13:45:15 -05:00
Jilles Tjoelker 6315153b9c libratbox: Remove static inline symbols from export-syms.txt. 2008-05-17 13:26:42 +02:00
Jilles Tjoelker e0bd36a502 Fix a mistake in kqueue 'overflow' handling.
If there is no space in the output buffer to report an
error adding to the kqueue, kevent(2) will abort and
return the error in errno (I was correct that it does
not tell you where it failed). So do not abort the loop
if kevent(2) fails and do not log (expected) EBADF.
2008-05-14 19:56:41 +02:00
Jilles Tjoelker 9b4f3c47e1 Save connect errno so that we get a correct connect failure reason
libratbox r25358 (androsyn)
2008-05-13 20:21:12 +02:00
Jilles Tjoelker b68b0b2cde Fix a possible crash with SSL connections closing early.
libratbox r25356 (jilles)
2008-05-12 19:54:24 +02:00
Jilles Tjoelker 98686f18e9 Fix kqueue sometimes dropping updates.
(ircd wouldn't read or write anymore to certain clients)
This happens because kqueue.c will often try to add
already closed file descriptors to the kqueue. The kernel
tries to report bad file descriptors in the eventlist; if
the eventlist has no space, processing of the changelist
is silently halted.
The fix:
1. allocate two kqlst things, one for what kqlst currently does
and one as output buffer
this ensures the kevent(2) call in rb_select_kqueue() never
drops updates
2. replace the kevent(2) call in kq_update_events() by a loop
that processes the updates one at a time
that doesn't happen much, and it's the only way to be sure
without also getting events out of the queue we cannot process
at that time
libratbox r25354 (jilles)
2008-05-12 18:54:20 +02:00
Jilles Tjoelker 79c4d759a9 patricia: remove ugly abuse of K&R style function declaration
It left the argument types unspecified in a function
pointer, then called it using different numbers of
arguments.
libratbox r25229
2008-04-13 18:20:18 +02:00
Jilles Tjoelker dcb90e0d86 Remove linebuf's per-line flushing flag, as it's per-head state.
In rare cases, this sharing caused the ircd to skip
part of outgoing traffic, e.g. appearing as "not enough
parameters" errors on the other side.
The purpose of this flag can be fulfilled by the writeofs
in the bufhead.
libratbox r25227
2008-04-13 00:44:21 +02:00
Jilles Tjoelker ec9738cbd8 read/write return type should be ssize_t, not int or size_t.
The writev emulation used size_t, which is unsigned,
preventing negative values to be seen.
libratbox r25225
2008-04-12 16:43:12 +02:00
Jilles Tjoelker c50bb62ccd kqueue: also use EV_ONESHOT for read events
This makes the kernel's state agree with our handler pointer.
SSL may need to suspend selecting for reading to write
something, e.g. with renegotiation.
libratbox r25223
2008-04-11 11:08:37 +02:00
Valery Yatsko 8f40f4bb7f Importing r25217, r25219 and r25221 from ratbox3 2008-04-10 20:37:42 +04:00