case TUNNEL_PASS:
if (length < 3)
goto trunc;
- if (*data && (*data <=0x1F) )
- ND_PRINT((ndo, "Tag[%u] ", *data));
+ if (EXTRACT_U_1(data) && (EXTRACT_U_1(data) <= 0x1F))
+ ND_PRINT((ndo, "Tag[%u] ", EXTRACT_U_1(data)));
else
ND_PRINT((ndo, "Tag[Unused] "));
data++;
case TUNNEL_ASSIGN_ID:
case TUNNEL_CLIENT_AUTH:
case TUNNEL_SERVER_AUTH:
- if (*data <= 0x1F)
+ if (EXTRACT_U_1(data) <= 0x1F)
{
if (length < 1)
goto trunc;
- if (*data)
- ND_PRINT((ndo, "Tag[%u] ", *data));
+ if (EXTRACT_U_1(data))
+ ND_PRINT((ndo, "Tag[%u] ", EXTRACT_U_1(data)));
else
ND_PRINT((ndo, "Tag[Unused] "));
data++;
goto trunc;
ND_PRINT((ndo, "%s (0x%02x) ",
tok2str(rfc4675_tagged,"Unknown tag",EXTRACT_U_1(data)),
- *data));
+ EXTRACT_U_1(data)));
data++;
length--;
break;
}
for (i=0; i < length && EXTRACT_U_1(data); i++, data++)
- ND_PRINT((ndo, "%c", (*data < 32 || *data > 126) ? '.' : *data));
+ ND_PRINT((ndo, "%c", ND_ISPRINT(EXTRACT_U_1(data)) ? EXTRACT_U_1(data) : '.'));
return;
if (length < 4)
goto trunc;
- ND_TCHECK2(*data, 4);
+ ND_TCHECK_4(data);
vendor_id = EXTRACT_BE_U_4(data);
data+=4;
length-=4;
vendor_id));
while (length >= 2) {
- ND_TCHECK2(*data, 2);
+ ND_TCHECK_2(data);
- vendor_type = *(data);
+ vendor_type = EXTRACT_U_1(data);
vendor_length = EXTRACT_U_1(data + 1);
if (vendor_length < 2)
vendor_type,
vendor_length));
for (idx = 0; idx < vendor_length ; idx++, data++)
- ND_PRINT((ndo, "%c", (*data < 32 || *data > 126) ? '.' : *data));
+ ND_PRINT((ndo, "%c", ND_ISPRINT(EXTRACT_U_1(data)) ? EXTRACT_U_1(data) : '.'));
length-=vendor_length;
}
return;
return;
}
- ND_TCHECK2(data[0],4);
+ ND_TCHECK_4(data);
/* This attribute has standard values */
if (attr_type[attr_code].siz_subtypes)
{
if ( (attr_code == TUNNEL_TYPE) || (attr_code == TUNNEL_MEDIUM) )
{
- if (!*data)
+ if (!EXTRACT_U_1(data))
ND_PRINT((ndo, "Tag[Unused] "));
else
- ND_PRINT((ndo, "Tag[%d] ", *data));
+ ND_PRINT((ndo, "Tag[%d] ", EXTRACT_U_1(data)));
data++;
data_value = EXTRACT_BE_U_3(data);
}
break;
case TUNNEL_PREFERENCE:
- if (*data)
- ND_PRINT((ndo, "Tag[%d] ", *data));
+ if (EXTRACT_U_1(data))
+ ND_PRINT((ndo, "Tag[%d] ", EXTRACT_U_1(data)));
else
ND_PRINT((ndo, "Tag[Unused] "));
data++;
case EGRESS_VLAN_ID:
ND_PRINT((ndo, "%s (0x%02x) ",
tok2str(rfc4675_tagged,"Unknown tag",EXTRACT_U_1(data)),
- *data));
+ EXTRACT_U_1(data)));
data++;
ND_PRINT((ndo, "%d", EXTRACT_BE_U_3(data)));
break;
return;
}
- ND_TCHECK2(data[0],4);
+ ND_TCHECK_4(data);
switch(attr_code)
{
return;
}
- ND_TCHECK2(data[0], 16);
+ ND_TCHECK_16(data);
ND_PRINT((ndo, "%s", ip6addr_string(ndo, data)));
return;
}
ND_TCHECK2(data[0], length);
- if (data[1] > 128)
+ if (EXTRACT_U_1(data + 1) > 128)
{
- ND_PRINT((ndo, "ERROR: netmask %u not in range (0..128)", data[1]));
+ ND_PRINT((ndo, "ERROR: netmask %u not in range (0..128)", EXTRACT_U_1(data + 1)));
return;
}
if (length > 2)
memcpy(data2, data+2, length-2);
- ND_PRINT((ndo, "%s/%u", ip6addr_string(ndo, data2), data[1]));
+ ND_PRINT((ndo, "%s/%u", ip6addr_string(ndo, data2), EXTRACT_U_1(data + 1)));
- if (data[1] > 8 * (length - 2))
+ if (EXTRACT_U_1(data + 1) > 8 * (length - 2))
ND_PRINT((ndo, " (inconsistent prefix length)"));
return;
return;
}
- ND_TCHECK2(data[0],4);
+ ND_TCHECK_4(data);
attr_time = EXTRACT_BE_U_4(data);
strlcpy(string, ctime(&attr_time), sizeof(string));
return;
}
ND_PRINT((ndo, "User_challenge ("));
- ND_TCHECK2(data[0],8);
+ ND_TCHECK_8(data);
len_data = 8;
PRINT_HEX(len_data, data);
ND_PRINT((ndo, ") User_resp("));
- ND_TCHECK2(data[0],8);
+ ND_TCHECK_8(data);
len_data = 8;
PRINT_HEX(len_data, data);
ND_PRINT((ndo, ")"));
ND_PRINT((ndo, "ERROR: length %u != 14", length));
return;
}
- ND_TCHECK2(data[0],1);
- if (*data)
+ ND_TCHECK_1(data);
+ if (EXTRACT_U_1(data))
ND_PRINT((ndo, "User can change password"));
else
ND_PRINT((ndo, "User cannot change password"));
data++;
- ND_TCHECK2(data[0],1);
- ND_PRINT((ndo, ", Min password length: %d", *data));
+ ND_TCHECK_1(data);
+ ND_PRINT((ndo, ", Min password length: %d", EXTRACT_U_1(data)));
data++;
ND_PRINT((ndo, ", created at: "));
- ND_TCHECK2(data[0],4);
+ ND_TCHECK_4(data);
len_data = 4;
PRINT_HEX(len_data, data);
ND_PRINT((ndo, ", expires in: "));
- ND_TCHECK2(data[0],4);
+ ND_TCHECK_4(data);
len_data = 4;
PRINT_HEX(len_data, data);
ND_PRINT((ndo, ", Current Time: "));
- ND_TCHECK2(data[0],4);
+ ND_TCHECK_4(data);
len_data = 4;
PRINT_HEX(len_data, data);
break;
ND_PRINT((ndo, "ERROR: length %u != 8", length));
return;
}
- ND_TCHECK2(data[0],8);
+ ND_TCHECK_8(data);
len_data = 8;
PRINT_HEX(len_data, data);
break;
ND_PRINT((ndo, "Error: length %u != 4", length));
return;
}
- ND_TCHECK2(data[0],4);
+ ND_TCHECK_4(data);
error_cause_value = EXTRACT_BE_U_4(data);
ND_PRINT((ndo, "Error cause %u: %s", error_cause_value, tok2str(errorcausetype, "Error-Cause %u not known", error_cause_value)));