/* Default Handover version */
#define HANDOVER_VERSION 0x12
+#define HANDOVER_MAJOR(version) (((version) >> 4) & 0xf)
+#define HANDOVER_MINOR(version) ((version) & 0xf)
+
/* General Handover Request/Select record */
struct near_ndef_ho_payload {
/* Version is the first mandatory field of hr payload */
ho_payload->version = payload[offset];
- if (ho_payload->version > HANDOVER_VERSION) {
+
+ /* If major is different, reply with an empty Hs */
+ if (HANDOVER_MAJOR(ho_payload->version) !=
+ HANDOVER_MAJOR(HANDOVER_VERSION)) {
near_error("Unsupported version (%d)", ho_payload->version);
- goto fail;
+ /* Skip parsing and return an empty record */
+ return ho_payload;
}
offset = offset + 1;