This is an automated email from the ASF dual-hosted git repository.

bohdan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git

commit a00d70db4c3d63eeaec03deb94070ff494a12b64
Author: Charles Givre <[email protected]>
AuthorDate: Tue Dec 31 18:55:59 2019 -0500

    DRILL-7505: PCAP Plugin Fails on IPv6 Packets
    
    closes #1946
---
 .../main/java/org/apache/drill/exec/store/pcap/decoder/Packet.java    | 4 +++-
 .../org/apache/drill/exec/store/pcap/decoder/PacketConstants.java     | 3 +++
 .../org/apache/drill/exec/store/pcapng/decoder/PacketDecoder.java     | 2 +-
 .../test/java/org/apache/drill/exec/store/pcap/TestPcapDecoder.java   | 1 -
 4 files changed, 7 insertions(+), 3 deletions(-)

diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/pcap/decoder/Packet.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/pcap/decoder/Packet.java
index 148f94f..befa7d9 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/pcap/decoder/Packet.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/pcap/decoder/Packet.java
@@ -513,12 +513,14 @@ public class Packet implements Comparable<Packet> {
         case PacketConstants.AUTHENTICATION_V6:
         case PacketConstants.ENCAPSULATING_SECURITY_V6:
         case PacketConstants.MOBILITY_EXTENSION_V6:
+        case PacketConstants.HOST_IDENTITY_PROTOCOL:
+        case PacketConstants.SHIM6_PROTOCOL:
           nextHeader = getByte(raw, ipOffset + headerLength);
           headerLength += (getByte(raw, ipOffset + headerLength) + 1) * 8;
           break;
         default:
           //noinspection ConstantConditions
-          Preconditions.checkState(false, "Unknown V6 extension or protocol: 
", nextHeader);
+          logger.warn("Unknown V6 extension or protocol: {}", nextHeader);
           return getByte(raw, ipOffset + headerLength);
       }
     }
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/pcap/decoder/PacketConstants.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/pcap/decoder/PacketConstants.java
index 6f29253..9525d3e 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/pcap/decoder/PacketConstants.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/pcap/decoder/PacketConstants.java
@@ -41,6 +41,9 @@ public final class PacketConstants {
   public static final int AUTHENTICATION_V6 = 51;
   public static final int ENCAPSULATING_SECURITY_V6 = 50;
   public static final int MOBILITY_EXTENSION_V6 = 135;
+  public static final int HOST_IDENTITY_PROTOCOL = 139;
+  public static final int SHIM6_PROTOCOL = 140;
+
   public static final int NO_NEXT_HEADER = 59;
   public static final int UDP_HEADER_LENGTH = 8;
   public static final int VER_IHL_OFFSET = 14;
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/pcapng/decoder/PacketDecoder.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/pcapng/decoder/PacketDecoder.java
index ea5d831..6845c43 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/pcapng/decoder/PacketDecoder.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/pcapng/decoder/PacketDecoder.java
@@ -54,7 +54,7 @@ public class PacketDecoder extends Packet {
   protected int processIpV6Packet() {
     try {
       return super.processIpV6Packet();
-    } catch (IllegalStateException ise) {
+    } catch (IllegalStateException | ArrayIndexOutOfBoundsException e) {
       return -1;
     }
   }
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/exec/store/pcap/TestPcapDecoder.java
 
b/exec/java-exec/src/test/java/org/apache/drill/exec/store/pcap/TestPcapDecoder.java
index 54021d2..1a29902 100644
--- 
a/exec/java-exec/src/test/java/org/apache/drill/exec/store/pcap/TestPcapDecoder.java
+++ 
b/exec/java-exec/src/test/java/org/apache/drill/exec/store/pcap/TestPcapDecoder.java
@@ -211,7 +211,6 @@ public class TestPcapDecoder extends BaseTestQuery {
     logger.info("\n\n\n");
   }
 
-
   /**
    * Creates an ephemeral file of about a GB in size
    *

Reply via email to