aboutsummaryrefslogtreecommitdiff
path: root/src/proone-htbtclient.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/proone-htbtclient.c')
-rw-r--r--src/proone-htbtclient.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/proone-htbtclient.c b/src/proone-htbtclient.c
index 1f855e0..e2ae61f 100644
--- a/src/proone-htbtclient.c
+++ b/src/proone-htbtclient.c
@@ -1639,17 +1639,23 @@ static bool run_relay (const uint16_t msgid) {
pfd[0].fd = STDIN_FILENO;
pfd[1].fd = prog_g.net.ctx.fd;
+ pfd[0].events = pfd[1].events = POLLIN;
while (pfd[0].fd >= 0 || pfd[1].fd >= 0) {
- pfd[0].events = pfd[1].events = POLLIN;
+ pfd[0].revents = pfd[1].revents = 0;
- f_ret = poll(pfd, 2, -1);
- if (f_ret < 0) {
- ret = false;
- perror("poll()");
- break;
+ if (mbedtls_ssl_check_pending(&prog_g.ssl.ctx)) {
+ pfd[1].revents = POLLIN;
+ }
+ else {
+ f_ret = poll(pfd, 2, -1);
+ if (f_ret < 0) {
+ ret = false;
+ perror("poll()");
+ break;
+ }
+ assert(f_ret != 0);
}
- assert(f_ret != 0);
if (pfd[0].revents != 0 && !run_sendstd(msgid, &pfd[0].fd)) {
ret = false;