From 7260153439e5ec264b8eb5f7364bd2c73fdb0e39 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Fri, 31 Jul 2015 16:38:25 +0800 Subject: [PATCH] add log for possible ip fragmentation --- src/udprelay.c | 14 ++++++-------- src/udprelay.h | 4 ++-- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/udprelay.c b/src/udprelay.c index a9cb2de7..9d3fa677 100644 --- a/src/udprelay.c +++ b/src/udprelay.c @@ -639,10 +639,9 @@ static void remote_recv_cb(EV_P_ ev_io *w, int revents) goto CLEAN_UP; } - // Drop large packets > default MTU - if (buf_len > MTU) { - LOGE("[udp] drop large packets, size: %d", (int)buf_len); - goto CLEAN_UP; + // packet size > default MTU + if (verbose && buf_len > MTU) { + LOGE("[udp] possible ip fragment, size: %d", (int)buf_len); } #ifdef UDPRELAY_LOCAL @@ -833,10 +832,9 @@ static void server_recv_cb(EV_P_ ev_io *w, int revents) #endif #endif - // Drop large packets > default MTU - if (buf_len > MTU) { - LOGE("[udp] drop large packets, size: %d", (int)buf_len); - goto CLEAN_UP; + // packet size > default MTU + if (verbose && buf_len > MTU) { + LOGE("[udp] possible ip fragment, size: %d", (int)buf_len); } /* diff --git a/src/udprelay.h b/src/udprelay.h index b6879ab6..e48da211 100644 --- a/src/udprelay.h +++ b/src/udprelay.h @@ -37,9 +37,9 @@ #include "common.h" -#define MAX_UDP_PACKET_SIZE (2 * 1024) // large enough for a typical MTU 1500 +#define MAX_UDP_PACKET_SIZE (65507) -#define MTU 1421 // 1492 - 1 - 28 - 2 - 40 = 1421, the default MTU for UDP relay +#define MTU 1397 // 1492 - 1 - 28 - 2 - 64 = 1397, the default MTU for UDP relay struct server_ctx { ev_io io;