Commit Graph

100 Commits

Author SHA1 Message Date
Thomas Niederberger 592a8bf691 Fix typo 2021-08-01 11:20:28 +02:00
Raoul Wols 2f26928e3e
docblock 2021-07-13 13:27:19 +02:00
Raoul Wols 477243d3f3
Handle newlines better in sslerrorprinter.cpp
According to 4cedf30e99/crypto/err/err_prn.c (L20)
the ERR_print_errors_cb function already adds newlines to the end
of each line. So we can just append right away. We do remove the
last newline as normally error messages don't end with a newline.
Also we may return 0 instead of 1.
2021-07-13 13:25:39 +02:00
Raoul Wols 40d2af913e
docblock 2021-07-13 13:19:32 +02:00
Raoul Wols 3ca1ef73ad
Lookup function in shared library 2021-07-13 13:12:32 +02:00
Raoul Wols df78574034
docblocks 2021-07-13 12:32:17 +02:00
Raoul Wols faa491ce65
remove BIO stuff completely, replace with callback 2021-07-13 12:31:04 +02:00
Raoul Wols 4d49b44283
separate cpp file 2021-07-13 11:37:31 +02:00
Raoul Wols d5819ef2dc
docblock 2021-07-13 11:24:08 +02:00
Raoul Wols 3bc7b62567
separate class for extracting errors 2021-07-13 11:23:08 +02:00
Raoul Wols 2f6451a9aa
Print a better error message
This is still missing the dlsym wrappers.
2021-07-12 18:44:16 +02:00
Emiel Bruijntjes 3dbd045d06 allow user space programs to initialize the SSL structure before a connection is set up 2021-01-01 18:52:54 +01:00
Bas van Berckel 77d74bff93
SslHandshake set default verify path (#385)
Set default verify paths for SSLHandshake to prevent secure connections from being marked as unverified.
Co-authored-by: Bas van Berckel <bas.vanberckel@copernica.com>
2020-12-07 16:36:32 +01:00
Michael van der Werve e4ec629d62 signals can interrupt poll, which is now taken as a failure but should be retried 2020-11-23 09:57:35 +01:00
Mikhail Basanets ced0de4eda Added check if the connectionOrder receives nullptr and not a valid string. This can be a case if address.option(connectionOrder) returns nullptr. 2020-11-16 19:56:28 +02:00
Emiel Bruijntjes bca39d8f29 simplified code, split up long methods in separate methods 2020-11-16 18:22:00 +01:00
aljar f9d85f5d01 Use address to pass the option and add some extra options for sorting ips. 2020-11-16 16:30:29 +01:00
aljar fe1538e8ae Set option via address. 2020-11-13 18:05:07 +01:00
aljar 11f1eaf2c3 Don't use the old random_shuffle and don't set a global seed. 2020-11-13 17:49:14 +01:00
aljar 4570496547 Add option to select an IP randomly instead of using the order provided by getaddrinfo, which is proximity based. 2020-11-13 17:10:30 +01:00
Michael van der Werve 537ee3f440 select only supports upto fd 1024, and we need to support any possible fd 2020-10-30 11:51:29 +01:00
RafalGoslawski 42aec54333 Change windows line endings to unix ones and fix whitespace (spaces not tabs). 2020-10-05 15:44:33 +02:00
Michael van der Werve 103fa130f7 {auto} implement timeout on initial connection instead of being subjected to kernel 2020-09-29 13:51:54 +02:00
Michael van der Werve 2496dbbd4e make sure onLost and onDetached are always called 2020-09-28 16:37:12 +02:00
Michael van der Werve 1c08399ab0 valid file descriptors that can be closed are >= 0 2020-05-08 13:30:08 +02:00
Michael van der Werve ab0a292a0e file descriptor should not be monitored any more when the tcp connection is destructed. 2020-05-08 13:20:10 +02:00
Emiel Bruijntjes e7f76bc75d the TcpConnection class no longer calls back to userspace / to the user-supplied handler if user-space explicitly destructs the object 2020-04-30 21:41:41 +02:00
Emiel Bruijntjes a75b3d5d18 fix compiling on freebsd (fixes #300) 2020-04-20 17:34:41 +02:00
Peter A. Bigot a6930f5c36 linux_tcp/poll: fix undefined behavior in select
The select(2) system call on Linux now includes the restrict qualifier
on the fd_set pointers passed in, causing a diagnostic in gcc9 for the
call blocking for both read and write.  Pass a pointer to a temporary
copy of the set when two references are required.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2019-05-30 10:53:09 -05:00
weili-jiang fc22637578 Check pipe writes in linux_tcp to suppress Wunused-result in GCC 2019-02-05 08:33:28 +13:00
Emiel Bruijntjes e10fd61ac8 slightly prettified the code 2019-01-10 08:25:31 +01:00
Michael van der Werve a774e6c10c on ssl error, make sure that it is found out 2019-01-08 13:14:42 +01:00
Michael van der Werve 63d4acdce3 should be in working order now 2019-01-08 12:58:38 +01:00
Emiel Bruijntjes 03ca83cb50 handle case when tcp connection is lost during reading, that should report an error back to user-space too (fixes #266) 2018-12-03 08:29:17 +01:00
Emiel Bruijntjes d2e3792abc fixed issue when end-of-file was encountered, this fixes #266 2018-11-30 06:42:54 +01:00
Emiel Bruijntjes 45ca61cc43 added TcpConnection::closed() 2018-11-14 14:15:52 +01:00
Emiel Bruijntjes a80847dc5e fixed a couple of todos, make sure that onError() is always called 2018-11-12 12:12:04 +01:00
Emiel Bruijntjes 6f81b0a097 when tcp connection is lost, the pending operations are now reported with an error 2018-11-11 23:46:58 +01:00
Emiel Bruijntjes e83a07f871 renamed onClosed to onLost to prevent confusion between TcpHandler::onClosed() and ConnectionHandler::onClosed() 2018-11-08 09:58:36 +01:00
Emiel Bruijntjes da6744bf4d renamed ConnectionHandler::onConnectedO() to ConnectionHandler::onReady() 2018-11-08 08:34:58 +01:00
Emiel Bruijntjes 34f84e1ab7 handle unlikely error when ssl-handshake could not be started 2018-11-07 23:44:24 +01:00
Emiel Bruijntjes 06dc23190d added ConnectionHandler::onProperties and TcpConnectionHandler::onProperties 2018-11-07 23:22:25 +01:00
Emiel Bruijntjes 428219ad83 simplified and improved the close procedure 2018-11-07 15:04:08 +01:00
Emiel Bruijntjes 64c876e65a removed support for TcpConnection::flush() and removed internal TcpShutdown state 2018-11-06 18:11:27 +01:00
Emiel Bruijntjes 6ea2d8dffd removed unneeded comment 2018-11-05 17:18:24 +01:00
Emiel Bruijntjes 9330231a69 fixed assigning the new state 2018-11-05 17:11:21 +01:00
Emiel Bruijntjes 54049f9e8e improved the tcp handler, added more methods to monitor whether a connection is connected, logged on and in an error state 2018-11-05 16:49:55 +01:00
Emiel Bruijntjes 359eec189f work in progress, simplified the tcp and ssl states 2018-11-05 16:18:20 +01:00
Emiel Bruijntjes e617161c8c the state::abort() method is no longer needed 2018-11-05 15:49:22 +01:00
Emiel Bruijntjes b81bc340b5 work in progress on refactored tcp handling, to solve various issues, like the one that lost connections do not trigger operations to fail 2018-11-04 23:34:31 +01:00