From 21c2fd72818ff4246f7220fe28fc4abc15b635d0 Mon Sep 17 00:00:00 2001
From: Jacob Chappell <chappellind@gmail.com>
Date: Fri, 26 Jun 2015 17:27:59 -0400
Subject: [PATCH] Change magic constant from int to byte array.

---
 .../java/net/floodlightcontroller/packet/SPUD.java    | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/main/java/net/floodlightcontroller/packet/SPUD.java b/src/main/java/net/floodlightcontroller/packet/SPUD.java
index 2ba23068a..d443d59da 100644
--- a/src/main/java/net/floodlightcontroller/packet/SPUD.java
+++ b/src/main/java/net/floodlightcontroller/packet/SPUD.java
@@ -1,12 +1,14 @@
 package net.floodlightcontroller.packet;
 
 import java.nio.ByteBuffer;
+import java.util.Arrays;
 
 /**
  * @author Jacob Chappell (jacob.chappell@uky.edu)
  */
 public class SPUD extends BasePacket {
-    public static final int MAGIC_CONSTANT = 0xd80000d8;
+    public static final byte[] MAGIC_CONSTANT =
+        { (byte) 0xd8, 0x00, 0x00, (byte) 0xd8 };
     public static final int HEADER_LENGTH = 13;
     public static final byte COMMAND_DATA = 0x0;
     public static final byte COMMAND_OPEN = 0x1;
@@ -74,7 +76,7 @@ public class SPUD extends BasePacket {
         int length = HEADER_LENGTH + ((payloadData == null) ? 0 : payloadData.length);
         byte[] data = new byte[length];
         ByteBuffer bb = ByteBuffer.wrap(data);
-        bb.putInt(MAGIC_CONSTANT);
+        bb.put(MAGIC_CONSTANT);
         bb.putLong(tubeID);
         byte adecBit = (byte) ((adec) ? 1 : 0);
         byte pdecBit = (byte) ((pdec) ? 1 : 0);
@@ -91,8 +93,9 @@ public class SPUD extends BasePacket {
     public IPacket deserialize(byte[] data, int offset, int length)
             throws PacketParsingException {
         ByteBuffer bb = ByteBuffer.wrap(data, offset, length);
-        int magicConstant = bb.getInt();
-        if (magicConstant != MAGIC_CONSTANT) {
+        byte[] magicConstant = new byte[MAGIC_CONSTANT.length];
+        bb.get(magicConstant, 0, MAGIC_CONSTANT.length);
+        if (!Arrays.equals(magicConstant, MAGIC_CONSTANT)) {
             throw new PacketParsingException("Magic constant is incorrect.");
         }
         tubeID = bb.getLong();
-- 
GitLab