Commit Graph

91 Commits

Author SHA1 Message Date
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
Emiel Bruijntjes 3f32e8773d fixed typo and possible (but unlikely) crash in the tcp-resolver 2018-10-28 18:52:41 +01:00
Emiel Bruijntjes 62a4262a58 the TcpConnection::close() method now supports an "immediate" parameter to skip the official amqp handshake for closing down 2018-10-28 18:13:13 +01:00
Emiel Bruijntjes 8546f52cd0 added onAttached() and onDetached() to the TcpHandler interface 2018-10-28 10:22:01 +01:00
Peter A. Bigot adf4fb3bc1 TcpResolver: reduce risk of accessing destructed TcpConnection
Invoking TcpHandler::onError might result in the connection being
destroyed.  Though the reference to it in TcpClosed() is likely benign,
it's safer to follow the standard practice of returning a nullptr to
indicate that the connection is known to be destroyed.
2018-06-24 10:31:21 -05:00
Emiel Bruijntjes e665916b85 Merge branch 'master' of github.com:CopernicaMarketingSoftware/AMQP-CPP 2018-06-15 09:19:37 +02:00
Emiel Bruijntjes 80ce6327bb fixed ssl handling: the sslconnected class incorrectly cached the readability/writability state of a socket, even after it already did a read- or write-operation, which could lead to the system getting to read mode when no data was expected 2018-06-15 09:19:27 +02:00
Emiel Bruijntjes 2430da76c3 refactored code 2018-06-10 20:46:11 +02:00
xqing2003 e40006058e
fix memory leak
fix memory leak when channel error
2018-06-06 22:11:55 +08:00
xqing2003 7737917886
solve memory leak 2018-06-01 23:30:30 +08:00