Reply with error status on receiving message with incorrect preamble
Change-Id: I0d17dc74c817546f221fbcade1d5642c8f29b0fe
diff --git a/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/InternalMessage.java b/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/InternalMessage.java
index e02ecc8..0d96c09 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/InternalMessage.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/InternalMessage.java
@@ -42,24 +42,31 @@
/**
* Response status signifying an exception handling the message.
*/
- ERROR_HANDLER_EXCEPTION
+ ERROR_HANDLER_EXCEPTION,
+
+ /**
+ * Reponse status signifying invalid message structure.
+ */
+ PROTOCOL_EXCEPTION
// NOTE: For backwards compatibility it important that new enum constants
// be appended.
// FIXME: We should remove this restriction in the future.
}
+ private final int preamble;
private final long id;
private final Endpoint sender;
private final String type;
private final byte[] payload;
private final Status status;
- public InternalMessage(long id, Endpoint sender, String type, byte[] payload) {
- this(id, sender, type, payload, Status.OK);
+ public InternalMessage(int preamble, long id, Endpoint sender, String type, byte[] payload) {
+ this(preamble, id, sender, type, payload, Status.OK);
}
- public InternalMessage(long id, Endpoint sender, String type, byte[] payload, Status status) {
+ public InternalMessage(int preamble, long id, Endpoint sender, String type, byte[] payload, Status status) {
+ this.preamble = preamble;
this.id = id;
this.sender = sender;
this.type = type;
@@ -67,6 +74,10 @@
this.status = status;
}
+ public int preamble() {
+ return preamble;
+ }
+
public long id() {
return id;
}