diff --git a/dap_server.c b/dap_server.c index 2a7475ee479d131e6ac04cd73bf0f15d57e3d5de..e30fd65433bdba0a1d5e95e92f3fe504d92c5cb3 100644 --- a/dap_server.c +++ b/dap_server.c @@ -217,7 +217,8 @@ static void read_write_cb (struct ev_loop* loop, struct ev_io* watcher, int reve } else { - for(size_t total_sent = 0; total_sent < dap_cur->buf_out_size;) { + size_t total_sent = 0; + for(; total_sent < dap_cur->buf_out_size;) { //log_it(DEBUG, "Output: %u from %u bytes are sent ", total_sent, dap_cur->buf_out_size); ssize_t bytes_sent = send(dap_cur->socket, dap_cur->buf_out + total_sent, @@ -230,7 +231,7 @@ static void read_write_cb (struct ev_loop* loop, struct ev_io* watcher, int reve total_sent += (size_t)bytes_sent; dap_cur->download_stat.buf_size_total += (size_t)bytes_sent; } - dap_cur->buf_out_size = 0; + dap_cur->buf_out_size -= total_sent; } }