diff --git a/network.cpp b/network.cpp index 188666c..f9a091c 100644 --- a/network.cpp +++ b/network.cpp @@ -841,8 +841,16 @@ int pre_recv_raw_packet() if(g_packet_buf_len==max_data_len+1) { + if(g_fix_gro==0) + { mylog(log_warn,"huge packet, data_len %d > %d(max_data_len),dropped\n",g_packet_buf_len,max_data_len); return -1; + } + else + { + mylog(log_debug,"huge packet, data_len %d > %d(max_data_len),not dropped\n",g_packet_buf_len,max_data_len); + g_packet_buf_len=max_data_len; + } } if(g_packet_buf_len> single_max_data_len+1)