Skip to content

Stop looping in "consider_reading" if reading is suspended. #63

Closed
wants to merge 2 commits into from
View
6 bufferevent_openssl.c
@@ -574,6 +574,9 @@ do_read(struct bufferevent_openssl *bev_ssl, int n_to_read) {
struct evbuffer_iovec space[2];
int result = 0;
+ if (bev_ssl->bev.read_suspended)
+ return 0;
+
atmost = bufferevent_get_read_max_(&bev_ssl->bev);
if (n_to_read > atmost)
n_to_read = atmost;
@@ -786,6 +789,9 @@ consider_reading(struct bufferevent_openssl *bev_ssl)
if (r & (OP_BLOCKED|OP_ERR))
break;
+ if (bev_ssl->bev.read_suspended)
+ break;
+
/* Read all pending data. This won't hit the network
* again, and will (most importantly) put us in a state
* where we don't need to read anything else until the
Something went wrong with that request. Please try again.