Commit Graph

311 Commits

Author SHA1 Message Date
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
Bas van Berckel 0d42234a3d convert dos line endings 2020-09-24 12:30:04 +02:00
Emiel Bruijntjes 69026c31a3 fixed crash because the wrong size was passed 2020-08-18 12:33:38 +02:00
Emiel Bruijntjes 5d95ba824f moved the ReceivedFrame class to the src-directory, as it is of no use for userspace applications 2020-08-14 12:24:40 +02:00
Emiel Bruijntjes 92d21c5ddd the ReceivedFrame class has been split into a InBuffer base class to make it easier to store messages without having to construct a full frame, this commit adds the newly introduced classes 2020-08-14 12:20:58 +02:00
Emiel Bruijntjes b03cc6ff1c the ReceivedFrame class has been split into a InBuffer base class to make it easier to store messages without having to construct a full frame 2020-08-14 12:20:22 +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
Emiel Bruijntjes da26b1112e prevent crash when channelimpl unregistered from the connectionimpl, (hopefully) fixes #299 and fixes #326 2020-03-13 09:44:29 +01:00
Emiel Bruijntjes f3ba779e67 deferred-chain was in kept in scope by a consumer-operation, this fixes #323 2020-02-28 12:45:45 +01:00
LAD Martin 022bd87ac1 Adds channel callbacks checking 2019-11-05 13:39:45 +00:00
Emiel Bruijntjes 5a648fe2d8
Merge pull request #298 from CopernicaMarketingSoftware/synchronous-fix
fix for incorrect handling of synchronous flag
2019-06-19 10:56:52 +02:00
Michael van der Werve 7b79b7c6e2 now we always flush when a success is reported, and the funcction is renamed to flush 2019-06-19 10:54:50 +02:00
Emiel Bruijntjes f107b4aa3e
Merge pull request #288 from metricq/master
fix access to free'd memory in case of errors
2019-06-19 10:49:43 +02:00
Michael van der Werve c82fce8ec9 fix for incorrect handling of synchronous flag 2019-06-19 09:38:56 +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
tilsche d3f35fb524 fix duplicate _connection->remove call on ConnectionImpl objects that were already destroyed, but didn't detach in case of errors 2019-03-04 16:53:31 +01: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 20d4104d18
Merge pull request #271 from CopernicaMarketingSoftware/heartbeats
Implemented custom heartbeats in Livev
2018-12-13 23:41:20 +01:00
Youri Moll a92dc27653 Implemented custom heartbeats in Livev 2018-12-13 13:01: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 53f994d61d when user calls connection.heartbeat() we now always send out the heartbeat (AMQP-CPP no longer tries to be smart about skipping heartbeats, because that could lead to timeouts if the user is a little late with its call, or when there is network congestion) 2018-11-28 13:52:00 +01:00
Emiel Bruijntjes ec31f5ad11 added Channel implementation file (fixes #267) 2018-11-25 12:46:12 +01:00
Emiel Bruijntjes 91a23d5737 Merge branch 'master' of github.com:CopernicaMarketingSoftware/AMQP-CPP 2018-11-23 11:16:03 +01:00
Emiel Bruijntjes ee60aeb025 The Channel constructor now throws an exception if the max number of channels has been reached 2018-11-23 11:15:51 +01:00
Emiel Bruijntjes 799583ea39 Merge branch 'master' of github.com:CopernicaMarketingSoftware/AMQP-CPP 2018-11-21 13:56:53 +01:00
Emiel Bruijntjes 8eed709988 Connection::fail() will now also call the channel::onError method 2018-11-21 13:56:44 +01:00
Emiel Bruijntjes 45ca61cc43 added TcpConnection::closed() 2018-11-14 14:15:52 +01:00
Emiel Bruijntjes 888dc8c40b added channel::usable() to replace channel::connected() 2018-11-12 15:24:25 +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 bb417e89c2 add support for ConnectionHandler::onAttached() and ConnectionHandler::onDetached() 2018-11-05 16:19:48 +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