fix the parsing of the 'normal' availability status
diff --git a/src/abis_nm.c b/src/abis_nm.c
index a446f29..33fc0bf 100644
--- a/src/abis_nm.c
+++ b/src/abis_nm.c
@@ -336,6 +336,8 @@
static const char *avail_name(u_int8_t avail)
{
+ if (avail == 0xff)
+ return "OK";
if (avail >= ARRAY_SIZE(avail_names))
return "UNKNOWN";
return avail_names[avail];
@@ -466,7 +468,10 @@
DEBUGPC(DNM, "OP_STATE=%s ", opstate_name(new_state.operational));
}
if (TLVP_PRESENT(&tp, NM_ATT_AVAIL_STATUS)) {
- new_state.availability = *TLVP_VAL(&tp, NM_ATT_AVAIL_STATUS);
+ if (TLVP_LEN(&tp, NM_ATT_AVAIL_STATUS) == 0)
+ new_state.availability = 0xff;
+ else
+ new_state.availability = *TLVP_VAL(&tp, NM_ATT_AVAIL_STATUS);
DEBUGPC(DNM, "AVAIL=%s(%02x) ", avail_name(new_state.availability),
new_state.availability);
}