From a58cb6404b9a9db643347d4e37721a5c21b2fdb4 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Wed, 1 Jan 2014 11:24:34 +0800 Subject: [PATCH] fix the incorrect udp buf_len --- src/udprelay.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/udprelay.c b/src/udprelay.c index e923dd5d..b6184038 100644 --- a/src/udprelay.c +++ b/src/udprelay.c @@ -701,7 +701,7 @@ static void server_recv_cb (EV_P_ ev_io *w, int revents) goto CLEAN_UP; } - struct query_ctx *query_ctx = new_query_ctx(query, buf, buf_len); + struct query_ctx *query_ctx = new_query_ctx(query, buf + addr_header_len, buf_len - addr_header_len); query_ctx->server_ctx = server_ctx; query_ctx->addr_header_len = addr_header_len; query_ctx->src_addr = src_addr; @@ -713,7 +713,7 @@ static void server_recv_cb (EV_P_ ev_io *w, int revents) else { - int s = sendto(remote_ctx->fd, buf, buf_len, 0, &remote_ctx->dst_addr, sizeof(remote_ctx->dst_addr)); + int s = sendto(remote_ctx->fd, buf + addr_header_len, buf_len - addr_header_len, 0, &remote_ctx->dst_addr, sizeof(remote_ctx->dst_addr)); if (s == -1) {