Commit Graph

489 Commits

Author SHA1 Message Date
Arnaud Cornet c0fafe669d
Simplify autotools configuration. 2018-12-10 00:03:50 +01:00
Arnaud Cornet 4d7f243777 Close descriptor when SSL reports a system error.
Avoids leaking fd when connections are closed abruptly.
2018-12-09 14:27:59 -05:00
Arnaud Cornet 2fd3418a9e Add CFLAGS needed for openssl.
Otherwise building fails in platforms with esoteric openssl locations.
2018-12-09 14:04:43 -05:00
Arnaud Cornet fbde155287 Add missing OpenSSL CFLAGS/LDFLAGs to build.
Those were removed by mistake in the previous autotool refactor.
2018-11-18 15:37:46 -05:00
Arnaud Cornet 012b21a68b Remove OIDENTD build options.
Instead support a runtime option.
Note that existing oidentd users will have to add write_oidentd = true
in their config to keep existing behavior.
2018-11-18 15:07:16 -05:00
Arnaud Cornet 40233ff938 Fewer configure options.
Use pkg-config to detect openssl.
Eagerly use backtrace if provided by libc.
2018-11-18 14:30:17 -05:00
Arnaud Cornet 27f1cf988b Simplify autotools configuration. 2018-11-18 09:10:16 -05:00
Arnaud Cornet aa35b372b4
Add unit tests.
Add an optional build dependency on check and add an initial test case.
2018-11-14 02:26:39 +01:00
Arnaud Cornet 34711f7653
Move automake file in src subdir, isolate main.
In preparation for adding a unit test directory, move Makefile.am in
src, and build a static libbip before linking a binary.
2018-11-14 02:26:27 +01:00
Arnaud Cornet 53dafd9590 Add unit tests.
Add an optional build dependency on check and add an initial test case.
2018-11-13 08:25:46 -05:00
Arnaud Cornet 057107a233 Move automake file in src subdir, isolate main.
In preparation for adding a unit test directory, move Makefile.am in
src, and build a static libbip before linking a binary.
2018-11-11 18:18:21 -05:00
Pierre-Louis Bonicoli eaed46da14
Merge branch 'path_test_use_stat' 2018-03-22 02:37:38 +01:00
Pierre-Louis Bonicoli 025689d807
Merge branch 'dh_param_not_mandatory' 2018-03-22 02:37:23 +01:00
Pierre-Louis Bonicoli 7834471f78
default value isn't used when path doesn't exist 2018-03-22 02:33:25 +01:00
Pierre-Louis Bonicoli 13b2e37635
DH parameters are not always required
for example ECDHE ciphers doesn't require DH parameters.

Closes #499
2018-03-22 02:33:19 +01:00
Pierre-Louis Bonicoli 3afb16d795
checking path: use stat
fopen was used because it's stdlib but stat is already used in other
parts
2018-03-21 11:54:20 +01:00
Pierre-Louis Bonicoli 348737fab5
Fix path construction
Thanks to Renzokuken for pointing that !
Closes #610
2018-03-21 11:09:48 +01:00
Pierre-Louis Bonicoli 96f0403a2a
remove useless calls to FREE
MOVE_STRING macro is used in order to initialize parameters, this
macro calls free when necessary.
2018-02-19 20:08:26 +01:00
Pierre-Louis Bonicoli 83d7f2acbe
Add missing call to MAYFREE 2018-02-19 20:07:38 +01:00
Pierre-Louis Bonicoli dbe19d9387
Handle no defined users 2018-02-19 20:05:32 +01:00
Adam Williamson 2ecd82f011
Fix some 'const const char' declarations
That's one two many consts...recent GCC blips on this.

Signed-off-by: Pierre-Louis Bonicoli <pierre-louis.bonicoli@libregerbil.fr>
2017-07-26 02:46:26 +02:00
Pierre-Louis Bonicoli 2e81cca480 Check value returned by X509_OBJECT_new()
Reported by Alexander Couzens, thanks to him !
2016-11-12 01:09:40 +01:00
Pierre-Louis Bonicoli e452c023ad X509_OBJECT_new: call X509err
mimic behavior of X509_OBJECT_new provided by OpenSSL >= 1.1
2016-11-12 01:09:40 +01:00
Pierre-Louis Bonicoli 6b38449875 Allow to set DH parameters 2016-11-07 17:50:20 +01:00
Pierre-Louis Bonicoli 5db61f3982 Allow to set oidentd path 2016-11-07 11:26:22 +01:00
Pierre-Louis Bonicoli e8b5d02f13 Add missing call to SSL_CTX_free 2016-11-07 11:25:47 +01:00
Pierre-Louis Bonicoli 406ebacfe5 check value returned by SSL_CTX_new 2016-11-07 11:25:44 +01:00
Pierre-Louis Bonicoli ab8e5eece1 Add cipher specifications setting
Allow to configure cipher specifications for the listening bip
connection and for each outgoing IRC connection.

Closes #301
2016-11-07 11:25:37 +01:00
Pierre-Louis Bonicoli 20f39abc56 bipdir improvements
- more documentation
- don't die if environment variable $HOME isn't defined but '-s'
  parameter is used
- oidentd: change path, file is located in bipdir
2016-11-07 11:25:34 +01:00
Pierre-Louis Bonicoli 39414f8ff9 Handle OpenSSL version 1.1
adding forward-compatible code to older versions
2016-06-29 19:40:32 +02:00
Pierre-Louis Bonicoli 148b38a953 Prefixes and usermodes were inverted 2015-09-11 11:31:37 +02:00
Pierre-Louis Bonicoli 209b9a7cd7 Add missing terminating null byte
Reported by Trou, thanks to him !
Closes #477
2015-09-11 11:31:32 +02:00
Pierre-Louis Bonicoli 5594e69bf6 Use a new logfile when day changed 2015-09-11 11:22:32 +02:00
Pierre-Louis Bonicoli bdec94020e Use monotonic time 2015-09-11 11:22:21 +02:00
Pierre-Louis Bonicoli 34baf6e841 Always call bip_tick when select timeout 2015-09-11 11:21:52 +02:00
Pierre-Louis Bonicoli 4eec084452 Allow to configure the delay before a reconnection
Initial patch submitted by Romain Gayon, thanks to him !
2014-12-11 18:19:11 +01:00
Pierre-Louis Bonicoli 73483ff088 Handle PREFIX defined in ISUPPORT
ISUPPORT is a de facto standard extension to IRC.
Available prefixes and usermodes are handled at the connection
level (link_level struct).
2014-12-11 16:50:18 +01:00
Pierre-Louis Bonicoli e88d7da760 Handle CHANMODES defined in ISUPPORT
ISUPPORT is a de facto standard extension to IRC.
chanmodes are handled at the connection level (link_level struct).
2014-12-11 16:50:17 +01:00
Pierre-Louis Bonicoli fda9fccb85 Handle unlikely case: "CAPAB" present twice
If "CAPAB" element were present twice, a wrong element would be removed.
2014-12-11 16:50:17 +01:00
Pierre-Louis Bonicoli db27168c76 Avoid unnecessary test
The first element is "005", it cannot be "CAPAB".
2014-12-11 16:50:05 +01:00
Pierre-Louis Bonicoli f7ace64abe Remove dead links from the list of all links
Fix segfault that occurs when bip admin users use:
/BIP DEL_CONN <connection name>
/BIP ADD_CONN <connection name> <network>

Closes #325
2014-12-11 16:40:28 +01:00
Adam Williamson 88242715f4 allow for certificate store to be unspecified in CA mode
In many cases, using OpenSSL's default certificate store is fine
and even preferred. If your OpenSSL provider (e.g. your
distribution) is competent, they will manage this database
better than you likely will. With this change, bip will
attempt to use the default certificate store if you set
CA mode but do not specify a certificate store location.

This could be refined to test after enabling the default paths
whether the certificate store is empty, and error/warn if
so.
2014-12-11 14:50:02 +01:00
Adam Williamson 89295ca4b2 check whether trust store is a file or directory in CHECK_CA
The existing code only allows you to provide a set of trusted
CA certificates as an openssl 'CApath'-type directory. Fedora,
RHEL (and derived distros) and probably other distros provide
a system-wide database of trusted CA certs in various bundle
formats, but not as a CApath-type directory. This checks whether
check_store is a file or directory and loads it appropriately,
when initializing an SSL connection.

Note that there is code elsewhere which assumes the trust store
will be a file, but that code is hit only in CHECK_BASIC mode.
This change applies only to CHECK_CA mode.
2014-12-11 14:49:53 +01:00
Pierre-Louis Bonicoli e0b63528f2 Channel modes: 'Type B' flags always have a value
even when removed.
Refs #345
2014-09-04 10:32:04 +02:00
Pierre-Louis Bonicoli d2fa844960 Channel mode: handle flags 'f' and 'j'
Closes #345
2014-09-04 10:32:00 +02:00
Pierre-Louis Bonicoli 8d3539a7d0 Fix --without-openssl build
Reported & fixed by Whoopie, thanks to him !
Closes #313
2013-11-04 08:49:06 +01:00
Marc Dequènes (Duck) 8b98c3746e Compatibility fix with bison 2.6
Bison 2.6 now declares yyparse in the generated header. This fix
ensure it still works for older versions.

Reported in Debian#710614
2013-10-18 17:31:47 +02:00
Nathan Phillip Brink 71801fb3d2 Throttle almost everything (except PING, PONG, and certain QUIT messages) sent to the IRCd.
Fixes being killed for Excess Flooding on freenode by using the
existing fakelag mechanism. The existing fakelag works great but
was just not hooked into earlier.

Closes #191
2013-10-18 17:22:08 +02:00
Pierre-Louis Bonicoli 2c390390ed Password cannot contain spaces. Closes #265.
Thanks to Tim Hansen for reporting this bug.
2012-01-25 05:18:59 +01:00
Pierre-Louis Bonicoli df45c4c2d6 Closes #261. Fix by Thijs Alkemade.
- use conf_global_log_file instead of stderr
- when a SSL handshake error occurs, close socket
2012-01-25 05:08:52 +01:00
Pierre-Louis Bonicoli f1bec50a9c Revert f19e1f6. Fix #252.
f19e1f6 introduces a regression (#252) and bug described in commit
message can not be reproduced.
2012-01-25 04:03:18 +01:00
Pierre-Louis Bonicoli 222a33cb84 Buffer Overflow: check against the implicit size of select() arrays
Reported by Julien Tinnes (Fix #269)
exit is called when the listening socket can not be created
2012-01-23 22:38:59 +01:00
Pierre-Louis Bonicoli 975ccac0b1 delete generated file 2011-10-24 23:45:01 +02:00
Arnaud Fontaine a46b8bd2c2 Fix GCC warnings. 2011-10-24 23:44:43 +02:00
Arnaud Fontaine 0da434d126 Fix GCC warnings. 2011-10-04 00:30:07 +02:00
Nathan Phillip Brink 7e1c80a65a Use 'make dist' instead of 'git archive' to create a release or snapshot tarball. 2011-09-14 06:28:14 +02:00
Pierre-Louis Bonicoli 84fa6c7eb0 Fix typo in assertion message 2011-05-23 04:36:58 +02:00
Pierre-Louis Bonicoli b2dde370d6 Improve 'trust ok' command
if a client send "TRUST OK" to bip and all connexions are already trusted,
reply "No untrusted certificates." instead of "Unknown command"
2011-05-23 04:01:27 +02:00
Pierre-Louis Bonicoli 46c599d92e Add -git to version string. 2011-04-12 02:21:25 +02:00
Pierre-Louis Bonicoli e730a96cd8 Update src/version.h and Changelog for release. 2011-04-12 02:21:24 +02:00
Pierre-Louis Bonicoli f19e1f6209 Fix backlog of queries when option 'log' is False
Issue #212
2011-04-12 01:08:41 +02:00
Yoann Guillot 87da44e583 connection: allow to disable / enable log (#211)
add option 'log' (true/false) in connection section,
this option overrides the global 'log' option.
Thanks to jj !
2011-04-07 02:32:44 +02:00
Pierre-Louis Bonicoli 2e49437ed7 revert 4fdabdd166
better quick fix
2011-02-06 21:59:14 +01:00
Pierre-Louis Bonicoli 81b8ed48cf Fix build errors on armel
sys/user.h on armel has a conflicting definition of 'struct user'.
This patch renames bip's structure to avoid the conflict.
Thanks to Philipp Kern and Dann Frazier !
2011-01-15 18:13:26 +01:00
Pierre-Louis Bonicoli 4d4710acb9 Fix "FATAL: list_remove: item not found"
Thanks to Jean-Edouard Babin for reporting it.

How to reproduce:
1) connect to bip with an irc client using username (eg 'Pilou')
2) disconnect irc client
3) in client configuration, change the case of username (eg 'pilou')
4) reconnect to bip -> bip log FATAL message and exit

If old nick and new nick are equal ignoring the case of the characters,
don't delete store associated with old nick: only rename it.
2010-12-28 03:22:19 +01:00
Pierre-Louis Bonicoli ca1b383a74 check return value of hash_get 2010-12-28 03:20:01 +01:00
Pierre-Louis Bonicoli 4fdabdd166 filename is NULL if !store && !conf_log 2010-12-28 03:18:13 +01:00
Arnaud Cornet 0b7a3e6a07 Add -git to version string. 2010-09-12 17:48:00 +01:00
Arnaud Cornet ec078131ea Update src/version.h and Changelog for release. 2010-09-12 17:47:57 +01:00
Arnaud Cornet 7fb0823167 cp 2010-09-12 17:32:55 +01:00
Arnaud Cornet 4822364c0f Fix for null pointer deference
CVE-2010-3071
2010-09-12 16:52:00 +01:00
Arnaud Cornet d0ee9df3ec Add -git to version string. 2010-08-07 12:18:59 +01:00
Arnaud Cornet 3c6d776597 Update src/version.h and Changelog for release. 2010-08-07 12:18:53 +01:00
Trou 7712ae3a92 Fix typo 2010-06-15 23:02:01 +01:00
Zach Wily 4d3ee53e7b RFC 1459 specifies that the PONG message may have 1 or 2 parameters. 2010-04-07 22:12:26 +01:00
Arnaud Cornet f995c1f537 try to mitigate freenode antiflood throttling 2010-02-17 12:34:57 +00:00
Arnaud Cornet 92365874d4 Revert "Fix antiflood. Fixes freenode kicking us out."
This reverts commit 639e929021.
2010-02-17 12:32:22 +00:00
Arnaud Cornet 5c3f22d8a8 Revert "Unbraindead"
This reverts commit b21c658b8c.
2010-02-17 12:32:15 +00:00
Arnaud Cornet b21c658b8c Unbraindead 2010-02-17 12:00:55 +00:00
Arnaud Cornet 5b26dac489 More lose MODE command handling 2010-02-17 10:55:09 +00:00
Mathieu Pillard 5d6b7fedaf backread_hours is in hours, not days 2010-02-16 10:08:27 +00:00
Arnaud Cornet 7c0b6036f2 Ugly header fixups to fix build 2010-02-15 14:22:00 +00:00
Mathieu Pillard 2e5f4287ff With necessary header fix 2010-02-15 14:17:44 +00:00
Mathieu Pillard c0772f54bf Fix time parsing. Fixes backlog replaying one month to many, 2010-02-15 14:16:08 +00:00
Arnaud Cornet 639e929021 Fix antiflood. Fixes freenode kicking us out. 2010-02-15 14:06:50 +00:00
Arnaud Cornet bfe14ebb20 Add -git to version string. 2009-11-15 20:41:59 +00:00
Arnaud Cornet ce506aaec7 Update src/version.h and Changelog for release. 2009-11-15 20:41:56 +00:00
Arnaud Cornet a932cc53a9 [BUILD] Attempt to fix autostuff 2009-11-15 20:40:17 +00:00
Arnaud Cornet 944f18962a Add -git to version string. 2009-11-15 20:21:27 +00:00
Arnaud Cornet 06a67e08af Update src/version.h and Changelog for release. 2009-11-15 20:21:24 +00:00
Arnaud Cornet 03ee43ca89 [BUG] fatal() on nick change on gamesurge network
Some time gamesurge sends a "foo NICK :foo" which we didn't handle
correctly.
2009-11-15 20:14:28 +00:00
Arnaud Cornet 31ae5ac0bf [autostuff] Rewrite. Use non recursive make. Drop src/config.h.in that must be populated by autoheader 2009-08-24 21:26:46 +02:00
Arnaud Cornet 889f3cc1b7 Add -git to version string. 2009-08-24 19:05:48 +02:00
Arnaud Cornet c496bd7027 Update src/version.h and Changelog for release. 2009-08-24 19:05:45 +02:00
Arnaud Cornet 70fbf99c7f Refactor _write_socket
Call real_write_all in write_lines and write_line.
This should fix debian bug #542291.
BIG thanks to Zygo Blaxell.
2009-08-19 22:02:56 +02:00
Arnaud Cornet 7546daa276 [BUG] Handle badly lagging client conns decently. 2009-08-19 02:09:16 +02:00
Arnaud Cornet fa0c70539b Allow parallel build (thks Whoopie and psychon). 2009-07-26 11:38:20 +02:00
Arnaud Cornet 442e4973cd Add -git to version string. 2009-07-17 11:43:34 +02:00
Arnaud Cornet a7c38c17c0 Update src/version.h and Changelog for release. 2009-07-17 11:43:29 +02:00
Arnaud Cornet 213643d5bf size hour array correctly 2009-07-05 19:35:00 +02:00