rpc: further constrain the libevent workaround

The bug was introduced in 2.1.6-beta, versions before that don't need the
workaround.
This commit is contained in:
Cory Fields 2017-11-02 14:37:33 -04:00
parent 6b58360f9b
commit 97932cd268

View File

@ -241,7 +241,7 @@ static std::string RequestMethodString(HTTPRequest::RequestMethod m)
static void http_request_cb(struct evhttp_request* req, void* arg) static void http_request_cb(struct evhttp_request* req, void* arg)
{ {
// Disable reading to work around a libevent bug, fixed in 2.2.0. // Disable reading to work around a libevent bug, fixed in 2.2.0.
if (event_get_version_number() < 0x02020001) { if (event_get_version_number() >= 0x02010600 && event_get_version_number() < 0x02020001) {
evhttp_connection* conn = evhttp_request_get_connection(req); evhttp_connection* conn = evhttp_request_get_connection(req);
if (conn) { if (conn) {
bufferevent* bev = evhttp_connection_get_bufferevent(conn); bufferevent* bev = evhttp_connection_get_bufferevent(conn);
@ -617,7 +617,7 @@ void HTTPRequest::WriteReply(int nStatus, const std::string& strReply)
evhttp_send_reply(req_copy, nStatus, nullptr, nullptr); evhttp_send_reply(req_copy, nStatus, nullptr, nullptr);
// Re-enable reading from the socket. This is the second part of the libevent // Re-enable reading from the socket. This is the second part of the libevent
// workaround above. // workaround above.
if (event_get_version_number() < 0x02020001) { if (event_get_version_number() >= 0x02010600 && event_get_version_number() < 0x02020001) {
evhttp_connection* conn = evhttp_request_get_connection(req_copy); evhttp_connection* conn = evhttp_request_get_connection(req_copy);
if (conn) { if (conn) {
bufferevent* bev = evhttp_connection_get_bufferevent(conn); bufferevent* bev = evhttp_connection_get_bufferevent(conn);