Commit Graph

274 Commits

Author SHA1 Message Date
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
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
Emiel Bruijntjes c52e8ff0b2 added ConnectionHandler::onAttached() and ConnectionHandler::onDetached() methods 2018-10-28 10:04:34 +01:00
Emiel Bruijntjes 11af8a7f6b
Merge pull request #218 from RZRCDR/fix_msvc_compiler_warnings
Fix msvc compiler warnings
2018-10-27 12:52:07 +02: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
Emiel Bruijntjes 025fdb5530
Merge pull request #134 from mgibula/master
Add Publisher Confirms support
2018-05-14 22:42:56 +02:00
Marcin Gibula cab0602dbf Forgot to set ChannelImpl::_confirm 2018-05-14 22:36:49 +02:00
Marcin Gibula 578abbf973 Update src/CMakeLists.txt 2018-05-14 21:44:01 +02:00
Marcin Gibula 2aa55b83c7 Replace old API with DeferredConfirm class 2018-05-14 21:12:34 +02:00
Marcin Gibula bf1caa1eae Add DeferredConfirm class 2018-05-14 21:05:49 +02:00
Marcin Gibula eeee1c3c5f Rename setConfirmMode() to confirmSelect() 2018-05-14 12:59:20 +02:00
Marcin Gibula e0b04ad7e0 Remove messageCounter() 2018-05-14 12:55:15 +02:00
Emiel Bruijntjes 5d69cc567c more calls to openssl::err_clear_error() to prevent that the error queue contains errors that are not related to the operations that is being checked 2018-04-27 12:38:06 +02:00
Trevor Perrin 416e244b31 Clear SSL Error Queue
The OpenSSL documentation states that the error queue for the current
thread needs to be emptied prior to the next TLS/SSL I/O operation,
or the call to SSL_get_error() will not be reliable.
2018-04-26 15:50:32 -05:00
Dirkco du Plessis 1479922901 Fix MSVC compile warning C4800 for bitwise operation resulting in int to boolean assignment.
Fix MSVC compile warning C4244 possible loss of data. Possible data loss from uint64_t to uint32_t.
2018-04-22 15:53:52 +01:00
Marcin Gibula bfd91b6ab5 Merge with upstream 2018-04-10 10:30:01 +02:00
Emiel Bruijntjes 69a201e741 optimizid dealing with ssl connections by not going back to the event loop that often, and prevented that object was staying in send state if it was endlessly sending data and not receiving anything, found this out when working on issue #207 2018-04-05 11:10:55 +02:00
Emiel Bruijntjes b26058f3e2 renamed bytesQueued() to queued() 2018-04-01 22:34:15 +02:00
Mike Playle 8800d2917e Add method to return the amount of queued outgoing data 2018-04-01 10:54:05 +01:00
tilsche ec21091080 Make sure ssl files are included in the library and add missing libraries for linking the examples 2018-03-12 10:46:32 +01:00
Emiel Bruijntjes f1c32242f7 Merge branch 'master' of github.com:CopernicaMarketingSoftware/AMQP-CPP 2018-03-10 14:56:18 +01:00
Emiel Bruijntjes d2b2d5af14 shared-ptr has been turned into a unique-ptr for the tcp-state 2018-03-10 14:55:57 +01:00
Emiel Bruijntjes d81565fe6a fixed that stream operator of address wrote the port number when the default amqps port was used 2018-03-10 10:31:40 +01:00
Emiel Bruijntjes 367de51d77 added method to intercept tls handshakes, and to verify certificates 2018-03-10 00:59:14 +01:00
Emiel Bruijntjes 4c2b8ff68e added ability to set the handle to the openssl library (so that programs that load openssl via dlopen() can still use amqp-cpp) 2018-03-09 15:08:52 +01:00
Emiel Bruijntjes 28b6c903e1 finished implementing amqps:// support 2018-03-09 13:55:49 +01:00
Emiel Bruijntjes c26005ddfb work in progress on setting up tls connections to rabbitmq 2018-03-08 14:00:44 +01:00
Emiel Bruijntjes e39ca5b012 ssl connection fixes 2018-03-08 13:36:56 +01:00
Emiel Bruijntjes 872d4e9a11 implemented flushing for ssl connections 2018-03-08 13:09:56 +01:00
Emiel Bruijntjes bc4db8d8fe elegant shutdown for ssl connections 2018-03-08 12:11:45 +01:00