Commit Diff


commit - 7249505e3541e039ee31d003ba7eb27e94f31fd5
commit + 55ae6c66b2be05e4355b9434a689b19a31a4d693
blob - ed16ce5e6242c21ae6f5315fcfdbe290376f5467
blob + a0ae4900b9842c21c40778ed3a38eaf24f3e3bd5
--- proxy.c
+++ proxy.c
@@ -55,7 +55,8 @@ proxy_tls_readcb(int fd, short event, void *d)
 	switch (ret = tls_read(c->proxyctx, buf, howmuch)) {
 	case TLS_WANT_POLLIN:
 	case TLS_WANT_POLLOUT:
-		goto retry;
+		event_add(&bufev->ev_read, NULL);
+		return;
 	case -1:
 		what |= EVBUFFER_ERROR;
 		goto err;
@@ -81,10 +82,6 @@ proxy_tls_readcb(int fd, short event, void *d)
 
 	if (bufev->readcb != NULL)
 		(*bufev->readcb)(bufev, bufev->cbarg);
-	return;
-
-retry:
-	event_add(&bufev->ev_read, NULL);
 	return;
 
 err:
@@ -111,7 +108,8 @@ proxy_tls_writecb(int fd, short event, void *d)
 		switch (ret) {
 		case TLS_WANT_POLLIN:
 		case TLS_WANT_POLLOUT:
-			goto retry;
+			event_add(&bufev->ev_write, NULL);
+			return;
 		case -1:
 			what |= EVBUFFER_ERROR;
 			goto err;
@@ -129,10 +127,6 @@ proxy_tls_writecb(int fd, short event, void *d)
 		(*bufev->writecb)(bufev, bufev->cbarg);
 	return;
 
-retry:
-	event_add(&bufev->ev_write, NULL);
-	return;
-
 err:
 	(*bufev->errorcb)(bufev, what, bufev->cbarg);
 }