mirror of
https://github.com/shadowsocks/shadowsocks-libev.git
synced 2026-10-21 22:43:48 +00:00
fix redir
This commit is contained in:
+6
-6
@@ -152,7 +152,7 @@ static void server_recv_cb (EV_P_ ev_io *w, int revents) {
|
||||
}
|
||||
} else if(s < r) {
|
||||
remote->buf_len = r - s;
|
||||
memcpy(remote->buf, remote->buf + s, remote->buf_len);
|
||||
bufcpy(remote->buf, remote->buf + s, remote->buf_len);
|
||||
ev_io_stop(EV_A_ &server_recv_ctx->io);
|
||||
ev_io_start(EV_A_ &remote->send_ctx->io);
|
||||
return;
|
||||
@@ -183,7 +183,7 @@ static void server_send_cb (EV_P_ ev_io *w, int revents) {
|
||||
} else if (s < server->buf_len) {
|
||||
// partly sent, move memory, wait for the next time to send
|
||||
server->buf_len -= s;
|
||||
memcpy(server->buf, server->buf + s, server->buf_len);
|
||||
bufcpy(server->buf, server->buf + s, server->buf_len);
|
||||
return;
|
||||
} else {
|
||||
// all sent out, wait for reading
|
||||
@@ -268,7 +268,7 @@ static void remote_recv_cb (EV_P_ ev_io *w, int revents) {
|
||||
}
|
||||
} else if (s < r) {
|
||||
server->buf_len = r - s;
|
||||
memcpy(server->buf, server->buf + s, server->buf_len);
|
||||
bufcpy(server->buf, server->buf + s, server->buf_len);
|
||||
ev_io_stop(EV_A_ &remote_recv_ctx->io);
|
||||
ev_io_start(EV_A_ &server->send_ctx->io);
|
||||
return;
|
||||
@@ -297,9 +297,9 @@ static void remote_send_cb (EV_P_ ev_io *w, int revents) {
|
||||
|
||||
// handle IP V4 only
|
||||
size_t in_addr_len = sizeof(struct in_addr);
|
||||
memcpy(addr_to_send + addr_len, &server->destaddr.sin_addr, in_addr_len);
|
||||
bufcpy(addr_to_send + addr_len, &server->destaddr.sin_addr, in_addr_len);
|
||||
addr_len += in_addr_len;
|
||||
memcpy(addr_to_send + addr_len, &server->destaddr.sin_port, 2);
|
||||
bufcpy(addr_to_send + addr_len, &server->destaddr.sin_port, 2);
|
||||
addr_len += 2;
|
||||
encrypt_ctx(addr_to_send, addr_len, server->e_ctx);
|
||||
|
||||
@@ -342,7 +342,7 @@ static void remote_send_cb (EV_P_ ev_io *w, int revents) {
|
||||
} else if (s < remote->buf_len) {
|
||||
// partly sent, move memory, wait for the next time to send
|
||||
remote->buf_len -= s;
|
||||
memcpy(remote->buf, remote->buf + s, remote->buf_len);
|
||||
bufcpy(remote->buf, remote->buf + s, remote->buf_len);
|
||||
return;
|
||||
} else {
|
||||
// all sent out, wait for reading
|
||||
|
||||
Reference in New Issue
Block a user