mirror of
https://github.com/wahyd4/pinpoint.git
synced 2026-08-17 00:36:02 +10:00
[강운덕] [PINPOINT-244] udp l4 패킷이 왔을 경우 무시하는 로직추가
git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-server/trunk@3031 84d0f5b1-2673-498c-a247-62c4ff18d310
This commit is contained in:
@@ -19,6 +19,7 @@ import com.nhn.pinpoint.rpc.server.PinpointServerSocket;
|
||||
import com.nhn.pinpoint.rpc.server.ServerMessageListener;
|
||||
import com.nhn.pinpoint.rpc.server.ServerStreamChannel;
|
||||
import com.nhn.pinpoint.rpc.server.SocketChannel;
|
||||
import com.nhn.pinpoint.thrift.io.L4Packet;
|
||||
import com.nhn.pinpoint.thrift.io.SafeHeaderTBaseSerializer;
|
||||
import org.apache.thrift.TBase;
|
||||
import org.apache.thrift.TException;
|
||||
@@ -160,6 +161,14 @@ public class TCPReceiver {
|
||||
SocketAddress remoteAddress = socketChannel.getRemoteAddress();
|
||||
try {
|
||||
TBase<?, ?> tBase = deserializer.deserialize(bytes);
|
||||
if (tBase instanceof L4Packet) {
|
||||
// 동적으로 패스가 가능하도록 보완해야 될듯 하다.
|
||||
if (logger.isDebugEnabled()) {
|
||||
L4Packet packet = (L4Packet) tBase;
|
||||
logger.debug("tcp l4 packet {}", packet.getHeader());
|
||||
}
|
||||
return;
|
||||
}
|
||||
TBase result = dispatchHandler.dispatch(tBase, bytes, Header.HEADER_SIZE, bytes.length);
|
||||
if (result != null) {
|
||||
SafeHeaderTBaseSerializer serializer = new SafeHeaderTBaseSerializer();
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.nhn.pinpoint.thrift.io.Header;
|
||||
import com.nhn.pinpoint.thrift.io.HeaderTBaseDeserializer;
|
||||
import com.nhn.pinpoint.common.util.ExecutorFactory;
|
||||
import com.nhn.pinpoint.rpc.util.CpuUtils;
|
||||
import com.nhn.pinpoint.thrift.io.L4Packet;
|
||||
import org.apache.thrift.TBase;
|
||||
import org.apache.thrift.TException;
|
||||
import org.slf4j.Logger;
|
||||
@@ -123,6 +124,12 @@ public class UDPReceiver implements DataReceiver {
|
||||
if (packet == null) {
|
||||
continue;
|
||||
}
|
||||
if (packet.getLength() == 0) {
|
||||
if (debugEnabled) {
|
||||
logger.debug("length is 0 ip:{}, port:{}", packet.getAddress(), packet.getPort());
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (debugEnabled) {
|
||||
logger.debug("pool getActiveCount:{}", worker.getActiveCount());
|
||||
}
|
||||
@@ -263,6 +270,14 @@ public class UDPReceiver implements DataReceiver {
|
||||
TBase<?, ?> tBase = null;
|
||||
try {
|
||||
tBase = deserializer.deserialize(packet.getData());
|
||||
if (tBase instanceof L4Packet) {
|
||||
// 동적으로 패스가 가능하도록 보완해야 될듯 하다.
|
||||
if (logger.isDebugEnabled()) {
|
||||
L4Packet packet = (L4Packet) tBase;
|
||||
logger.debug("udp l4 packet {}", packet.getHeader());
|
||||
}
|
||||
return;
|
||||
}
|
||||
// dispatch는 비지니스 로직 실행을 의미.
|
||||
dispatchHandler.dispatch(tBase, packet.getData(), Header.HEADER_SIZE, packet.getLength());
|
||||
} catch (TException e) {
|
||||
|
||||
Reference in New Issue
Block a user