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