public ArrayList<DatagramPacket> read(DatagramPacket msg) throws InterruptedException, ExecutionException,
IOException {
log.trace("DtlsEngine read " + msg);
rawTransport.enqueue(msg);
ArrayList<DatagramPacket> packets = new ArrayList<>();
if (encTransport != null) {
byte buf[] = new byte[encTransport.getReceiveLimit()];
while (rawTransport.hasPackets()) {
int bytesRead = encTransport.receive(buf, 0, buf.length, 100);
if (bytesRead > 0) {
packets.add(new DatagramPacket(Unpooled.copiedBuffer(buf, 0, bytesRead), rawTransport
.getRemoteAddress()));
}
}
}
return packets;
}