From 2d055187980f9db07a2c4ea0a3171a8ad0dc7048 Mon Sep 17 00:00:00 2001 From: Szymon Sasin Date: Tue, 24 Sep 2024 15:02:16 +0300 Subject: [PATCH] fix: correlation-tag option number to be non-critical --- .../main/java/com/mbed/coap/packet/HeaderOptions.java | 11 ++++++++++- .../java/com/mbed/coap/packet/HeaderOptionsTest.java | 7 +++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/coap-core/src/main/java/com/mbed/coap/packet/HeaderOptions.java b/coap-core/src/main/java/com/mbed/coap/packet/HeaderOptions.java index 41cd4bd6..78db289e 100644 --- a/coap-core/src/main/java/com/mbed/coap/packet/HeaderOptions.java +++ b/coap-core/src/main/java/com/mbed/coap/packet/HeaderOptions.java @@ -25,6 +25,15 @@ * - RFC 7959 (Block-Wise Transfers) * - draft-ietf-core-observe-09 * - RFC 9175 (Echo, Request-Tag, and Token Processing) + *

+ * And custom: + *

+ *    +-----+---+---+---+---+----------------+--------+--------+----------+
+ *    | No. | C | U | N | R | Name           | Format | Length | Default  |
+ *    +-----+---+---+---+---+----------------+--------+--------+----------+
+ *    |29644|   |   |   |   | Correlation-tag| opaque | 0-36   | (none)   |
+ *    +-----+---+---+---+---+----------------+--------+--------+----------+
+ * 
*/ public class HeaderOptions extends BasicHeaderOptions { @@ -34,7 +43,7 @@ public class HeaderOptions extends BasicHeaderOptions { private static final byte SIZE_2_RES = 28; private static final int ECHO = 252; private static final int REQUEST_TAG = 292; - private static final int OPEN_COAP_CORRELATION_TAG = 29643; // open-coap specific option for request tracing + public static final int OPEN_COAP_CORRELATION_TAG = 29644; // open-coap specific option for request tracing private Integer observe; private BlockOption block1Req; private BlockOption block2Res; diff --git a/coap-core/src/test/java/com/mbed/coap/packet/HeaderOptionsTest.java b/coap-core/src/test/java/com/mbed/coap/packet/HeaderOptionsTest.java index 9257e2ec..a138686a 100644 --- a/coap-core/src/test/java/com/mbed/coap/packet/HeaderOptionsTest.java +++ b/coap-core/src/test/java/com/mbed/coap/packet/HeaderOptionsTest.java @@ -522,6 +522,13 @@ void shouldUseQueryWithoutValue() throws CoapException, IOException { assertEquals("?param1=val1&q¶m2=val2 Loc:?q", h2.toString()); } + @Test + void correlationOptionShouldBeElectiveAndSafeToForward() { + assertFalse(isCritical(HeaderOptions.OPEN_COAP_CORRELATION_TAG)); + assertFalse(isUnsave(HeaderOptions.OPEN_COAP_CORRELATION_TAG)); + assertFalse(hasNoCacheKey(HeaderOptions.OPEN_COAP_CORRELATION_TAG)); + } + private static byte[] serialize(BasicHeaderOptions hdr) throws IOException, CoapException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); hdr.serialize(baos);