if (length < 3)
goto trunc;
if (*data && (*data <=0x1F) )
- ND_PRINT((ndo, "Tag[%u] ", *data));
+ ND_PRINT((ndo, "Tag[%u] ", EXTRACT_U_1(data)));
else
ND_PRINT((ndo, "Tag[Unused] "));
data++;
length--;
- ND_PRINT((ndo, "Salt %u ", EXTRACT_BE_16BITS(data)));
+ ND_PRINT((ndo, "Salt %u ", EXTRACT_BE_U_2(data)));
data+=2;
length-=2;
break;
if (length < 1)
goto trunc;
if (*data)
- ND_PRINT((ndo, "Tag[%u] ", *data));
+ ND_PRINT((ndo, "Tag[%u] ", EXTRACT_U_1(data)));
else
ND_PRINT((ndo, "Tag[Unused] "));
data++;
if (length < 1)
goto trunc;
ND_PRINT((ndo, "%s (0x%02x) ",
- tok2str(rfc4675_tagged,"Unknown tag",EXTRACT_8BITS(data)),
- *data));
+ tok2str(rfc4675_tagged,"Unknown tag",EXTRACT_U_1(data)),
+ EXTRACT_U_1(data)));
data++;
length--;
break;
}
- for (i=0; i < length && *data; i++, data++)
- ND_PRINT((ndo, "%c", (*data < 32 || *data > 126) ? '.' : *data));
+ for (i=0; i < length && EXTRACT_U_1(data); i++, 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);
- vendor_id = EXTRACT_BE_32BITS(data);
+ 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_length = *(data+1);
+ 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 (!*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_24BITS(data);
+ data_value = EXTRACT_BE_U_3(data);
}
else
{
- data_value = EXTRACT_BE_32BITS(data);
+ data_value = EXTRACT_BE_U_4(data);
}
if ( data_value <= (uint32_t)(attr_type[attr_code].siz_subtypes - 1 +
attr_type[attr_code].first_subtype) &&
switch(attr_code) /* Be aware of special cases... */
{
case FRM_IPX:
- if (EXTRACT_BE_32BITS(data) == 0xFFFFFFFE )
+ if (EXTRACT_BE_U_4(data) == 0xFFFFFFFE )
ND_PRINT((ndo, "NAS Select"));
else
- ND_PRINT((ndo, "%d", EXTRACT_BE_32BITS(data)));
+ ND_PRINT((ndo, "%d", EXTRACT_BE_U_4(data)));
break;
case SESSION_TIMEOUT:
case ACCT_DELAY:
case ACCT_SESSION_TIME:
case ACCT_INT_INTERVAL:
- timeout = EXTRACT_BE_32BITS(data);
+ timeout = EXTRACT_BE_U_4(data);
if ( timeout < 60 )
ND_PRINT((ndo, "%02d secs", timeout));
else
break;
case FRM_ATALK_LINK:
- if (EXTRACT_BE_32BITS(data))
- ND_PRINT((ndo, "%d", EXTRACT_BE_32BITS(data)));
+ if (EXTRACT_BE_U_4(data))
+ ND_PRINT((ndo, "%d", EXTRACT_BE_U_4(data)));
else
ND_PRINT((ndo, "Unnumbered"));
break;
case FRM_ATALK_NETWORK:
- if (EXTRACT_BE_32BITS(data))
- ND_PRINT((ndo, "%d", EXTRACT_BE_32BITS(data)));
+ if (EXTRACT_BE_U_4(data))
+ ND_PRINT((ndo, "%d", EXTRACT_BE_U_4(data)));
else
ND_PRINT((ndo, "NAS assigned"));
break;
case TUNNEL_PREFERENCE:
if (*data)
- ND_PRINT((ndo, "Tag[%d] ", *data));
+ ND_PRINT((ndo, "Tag[%d] ", EXTRACT_U_1(data)));
else
ND_PRINT((ndo, "Tag[Unused] "));
data++;
- ND_PRINT((ndo, "%d", EXTRACT_BE_24BITS(data)));
+ ND_PRINT((ndo, "%d", EXTRACT_BE_U_3(data)));
break;
case EGRESS_VLAN_ID:
ND_PRINT((ndo, "%s (0x%02x) ",
- tok2str(rfc4675_tagged,"Unknown tag",EXTRACT_8BITS(data)),
- *data));
+ tok2str(rfc4675_tagged,"Unknown tag",EXTRACT_U_1(data)),
+ EXTRACT_U_1(data)));
data++;
- ND_PRINT((ndo, "%d", EXTRACT_BE_24BITS(data)));
+ ND_PRINT((ndo, "%d", EXTRACT_BE_U_3(data)));
break;
default:
- ND_PRINT((ndo, "%d", EXTRACT_BE_32BITS(data)));
+ ND_PRINT((ndo, "%d", EXTRACT_BE_U_4(data)));
break;
} /* switch */
return;
}
- ND_TCHECK2(data[0],4);
+ ND_TCHECK_4(data);
switch(attr_code)
{
case FRM_IPADDR:
case LOG_IPHOST:
- if (EXTRACT_BE_32BITS(data) == 0xFFFFFFFF )
+ if (EXTRACT_BE_U_4(data) == 0xFFFFFFFF )
ND_PRINT((ndo, "User Selected"));
else
- if (EXTRACT_BE_32BITS(data) == 0xFFFFFFFE )
+ if (EXTRACT_BE_U_4(data) == 0xFFFFFFFE )
ND_PRINT((ndo, "NAS Select"));
else
ND_PRINT((ndo, "%s",ipaddr_string(ndo, data)));
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_32BITS(data);
+ attr_time = EXTRACT_BE_U_4(data);
strlcpy(string, ctime(&attr_time), sizeof(string));
/* Get rid of the newline */
string[24] = '\0';
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);
+ ND_TCHECK_1(data);
if (*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_32BITS(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)));
break;
}
ND_TCHECK2(*dat, MIN_RADIUS_LEN);
rad = (const struct radius_hdr *)dat;
- len = EXTRACT_BE_16BITS(&rad->len);
+ len = EXTRACT_BE_U_2(&rad->len);
if (len < MIN_RADIUS_LEN)
{