mirror of
https://github.com/shadowsocks/shadowsocks-libev.git
synced 2026-10-28 03:33:42 +00:00
Fix server buffer #1245
This commit is contained in:
+4
-2
@@ -549,15 +549,17 @@ server_recv_cb(EV_P_ ev_io *w, int revents)
|
||||
remote_t *remote = NULL;
|
||||
|
||||
buffer_t *buf = server->buf;
|
||||
size_t len = server->buf->len;
|
||||
|
||||
if (server->stage == STAGE_STREAM) {
|
||||
remote = server->remote;
|
||||
buf = remote->buf;
|
||||
len = 0;
|
||||
|
||||
ev_timer_again(EV_A_ & server->recv_ctx->watcher);
|
||||
}
|
||||
|
||||
ssize_t r = recv(server->fd, buf->data, BUF_SIZE, 0);
|
||||
ssize_t r = recv(server->fd, buf->data + len, BUF_SIZE - len, 0);
|
||||
|
||||
if (r == 0) {
|
||||
// connection closed
|
||||
@@ -581,7 +583,7 @@ server_recv_cb(EV_P_ ev_io *w, int revents)
|
||||
}
|
||||
|
||||
tx += r;
|
||||
buf->len = r;
|
||||
buf->len += r;
|
||||
|
||||
int err = crypto->decrypt(buf, server->d_ctx, BUF_SIZE);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user