diff --git a/src/syncterm/rlogin.c b/src/syncterm/rlogin.c index 432b470a0240f27e635f038456c6f5aac00e11ee..961ec341356a07101fa411c4733bf2fe7548fa8f 100644 --- a/src/syncterm/rlogin.c +++ b/src/syncterm/rlogin.c @@ -29,13 +29,13 @@ rlogin_input_thread(void *args) rd = recv(rlogin_sock, conn_api.rd_buf, conn_api.rd_buf_size, 0); if (rd <= 0) break; - } - buffered = 0; - while (rlogin_sock != INVALID_SOCKET && buffered < rd) { - pthread_mutex_lock(&(conn_inbuf.mutex)); - buffer = conn_buf_wait_free(&conn_inbuf, rd - buffered, 1000); - buffered += conn_buf_put(&conn_inbuf, conn_api.rd_buf + buffered, buffer); - pthread_mutex_unlock(&(conn_inbuf.mutex)); + buffered = 0; + while (rlogin_sock != INVALID_SOCKET && buffered < rd) { + pthread_mutex_lock(&(conn_inbuf.mutex)); + buffer = conn_buf_wait_free(&conn_inbuf, rd - buffered, 1000); + buffered += conn_buf_put(&conn_inbuf, conn_api.rd_buf + buffered, buffer); + pthread_mutex_unlock(&(conn_inbuf.mutex)); + } } } conn_api.input_thread_running = 2;