void processPackets(Queue<PingReply> pendingReplies) {
while (true) {
try {
DatagramPacket packet = m_socket.receive();
PingReply reply = IcmpMessenger.createPingReply(packet);
if (reply.isEchoReply() && reply.getIdentity() == FILTER_ID) {
LogUtils.debugf(this, "Found an echo packet addr = %s, port = %d, length = %d, created reply %s", packet.getAddress(), packet.getPort(), packet.getLength(), reply);
pendingReplies.offer(reply);
}
} catch (IOException e) {
LogUtils.errorf(this, e, "I/O Error occurred reading from ICMP Socket");
} catch (IllegalArgumentException e) {
} catch (IndexOutOfBoundsException e) {
} catch (Throwable e) {
LogUtils.errorf(this, e, "Unexpected Exception processing reply packet!");
}
}
}