mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-25 02:33:24 -03:00
zmq: enable tcp keepalive
This commit is contained in:
parent
e74649e951
commit
c276df7759
2 changed files with 22 additions and 0 deletions
14
doc/zmq.md
14
doc/zmq.md
|
@ -98,6 +98,20 @@ ZMQ_SUBSCRIBE option set to one or either of these prefixes (for
|
|||
instance, just `hash`); without doing so will result in no messages
|
||||
arriving. Please see `contrib/zmq/zmq_sub.py` for a working example.
|
||||
|
||||
The ZMQ_PUB socket's ZMQ_TCP_KEEPALIVE option is enabled. This means that
|
||||
the underlying SO_KEEPALIVE option is enabled when using a TCP transport.
|
||||
The effective TCP keepalive values are managed through the underlying
|
||||
operating system configuration and must be configured prior to connection establishment.
|
||||
|
||||
For example, when running on GNU/Linux, one might use the following
|
||||
to lower the keepalive setting to 10 minutes:
|
||||
|
||||
sudo sysctl -w net.ipv4.tcp_keepalive_time=600
|
||||
|
||||
Setting the keepalive values appropriately for your operating environment may
|
||||
improve connectivity in situations where long-lived connections are silently
|
||||
dropped by network middle boxes.
|
||||
|
||||
## Remarks
|
||||
|
||||
From the perspective of bitcoind, the ZeroMQ socket is write-only; PUB
|
||||
|
|
|
@ -86,6 +86,14 @@ bool CZMQAbstractPublishNotifier::Initialize(void *pcontext)
|
|||
return false;
|
||||
}
|
||||
|
||||
const int so_keepalive_option {1};
|
||||
rc = zmq_setsockopt(psocket, ZMQ_TCP_KEEPALIVE, &so_keepalive_option, sizeof(so_keepalive_option));
|
||||
if (rc != 0) {
|
||||
zmqError("Failed to set SO_KEEPALIVE");
|
||||
zmq_close(psocket);
|
||||
return false;
|
||||
}
|
||||
|
||||
rc = zmq_bind(psocket, address.c_str());
|
||||
if (rc != 0)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue