#include "extract.h"
#include "addrtoname.h"
-static const char *corrupt_str = "(corrupt)";
-static const char *trunc_str = "[|ahcp]";
+static const char tstr[] = " [|ahcp]";
+static const char cstr[] = "(corrupt)";
#define AHCP_MAGIC_NUMBER 43
#define AHCP_VERSION_1 1
return 0;
corrupt:
- printf(": %s", corrupt_str);
+ printf(": %s", cstr);
TCHECK2(*cp, ep - cp);
return 0;
trunc:
- printf(" %s", trunc_str);
+ printf("%s", tstr);
return -1;
}
return 0;
corrupt:
- printf(": %s", corrupt_str);
+ printf(": %s", cstr);
TCHECK2(*cp, ep - cp);
return 0;
trunc:
- printf(" %s", trunc_str);
+ printf("%s", tstr);
return -1;
}
if (cp + 16 > ep)
goto corrupt;
TCHECK2(*cp, 16);
- printf("%s%s", sep, ip6addr_string(cp));
+ printf("%s%s", sep,
+#ifdef INET6
+ ip6addr_string(cp)
+#else
+ "(compiled w/o IPv6)"
+#endif /* INET6 */
+ );
cp += 16;
sep = ", ";
}
return 0;
corrupt:
- printf(": %s", corrupt_str);
+ printf(": %s", cstr);
TCHECK2(*cp, ep - cp);
return 0;
trunc:
- printf(" %s", trunc_str);
+ printf("%s", tstr);
return -1;
}
return 0;
corrupt:
- printf(": %s", corrupt_str);
+ printf(": %s", cstr);
TCHECK2(*cp, ep - cp);
return 0;
trunc:
- printf(" %s", trunc_str);
+ printf("%s", tstr);
return -1;
}
if (cp + 17 > ep)
goto corrupt;
TCHECK2(*cp, 17);
- printf("%s%s/%u", sep, ip6addr_string(cp), *(cp + 16));
+ printf("%s%s/%u", sep,
+#ifdef INET6
+ ip6addr_string(cp),
+#else
+ "(compiled w/o IPv6)",
+#endif /* INET6 */
+ *(cp + 16));
cp += 17;
sep = ", ";
}
return 0;
corrupt:
- printf(": %s", corrupt_str);
+ printf(": %s", cstr);
TCHECK2(*cp, ep - cp);
return 0;
trunc:
- printf(" %s", trunc_str);
+ printf("%s", tstr);
return -1;
}
return 0;
corrupt:
- printf(": %s", corrupt_str);
+ printf(": %s", cstr);
TCHECK2(*cp, ep - cp);
return 0;
trunc:
- printf(" %s", trunc_str);
+ printf("%s", tstr);
return -1;
}
/* Data decoders signal truncated data with -1. */
static int
(* const data_decoders[AHCP1_OPT_MAX + 1])(const u_char *, const u_char *) = {
- [AHCP1_OPT_ORIGIN_TIME] = ahcp_time_print,
- [AHCP1_OPT_EXPIRES] = ahcp_seconds_print,
- [AHCP1_OPT_MY_IPV6_ADDRESS] = ahcp_ipv6_addresses_print,
- [AHCP1_OPT_MY_IPV4_ADDRESS] = ahcp_ipv4_addresses_print,
- [AHCP1_OPT_IPV6_PREFIX] = ahcp_ipv6_prefixes_print,
- [AHCP1_OPT_IPV6_ADDRESS] = ahcp_ipv6_addresses_print,
- [AHCP1_OPT_IPV4_ADDRESS] = ahcp_ipv4_addresses_print,
- [AHCP1_OPT_IPV6_PREFIX_DELEGATION] = ahcp_ipv6_prefixes_print,
- [AHCP1_OPT_IPV4_PREFIX_DELEGATION] = ahcp_ipv4_prefixes_print,
- [AHCP1_OPT_NAME_SERVER] = ahcp_ipv6_addresses_print,
- [AHCP1_OPT_NTP_SERVER] = ahcp_ipv6_addresses_print,
+ /* [AHCP1_OPT_PAD] = */ NULL,
+ /* [AHCP1_OPT_MANDATORY] = */ NULL,
+ /* [AHCP1_OPT_ORIGIN_TIME] = */ ahcp_time_print,
+ /* [AHCP1_OPT_EXPIRES] = */ ahcp_seconds_print,
+ /* [AHCP1_OPT_MY_IPV6_ADDRESS] = */ ahcp_ipv6_addresses_print,
+ /* [AHCP1_OPT_MY_IPV4_ADDRESS] = */ ahcp_ipv4_addresses_print,
+ /* [AHCP1_OPT_IPV6_PREFIX] = */ ahcp_ipv6_prefixes_print,
+ /* [AHCP1_OPT_IPV4_PREFIX] = */ NULL,
+ /* [AHCP1_OPT_IPV6_ADDRESS] = */ ahcp_ipv6_addresses_print,
+ /* [AHCP1_OPT_IPV4_ADDRESS] = */ ahcp_ipv4_addresses_print,
+ /* [AHCP1_OPT_IPV6_PREFIX_DELEGATION] = */ ahcp_ipv6_prefixes_print,
+ /* [AHCP1_OPT_IPV4_PREFIX_DELEGATION] = */ ahcp_ipv4_prefixes_print,
+ /* [AHCP1_OPT_NAME_SERVER] = */ ahcp_ipv6_addresses_print,
+ /* [AHCP1_OPT_NTP_SERVER] = */ ahcp_ipv6_addresses_print,
};
static void
return;
corrupt:
- printf(" %s", corrupt_str);
+ printf(" %s", cstr);
TCHECK2(*cp, ep - cp);
return;
trunc:
- printf(" %s", trunc_str);
+ printf("%s", tstr);
}
static void
return;
corrupt:
- printf(" %s", corrupt_str);
+ printf(" %s", cstr);
TCHECK2(*cp, ep - cp);
return;
trunc:
- printf(" %s", trunc_str);
+ printf("%s", tstr);
}
void
return;
corrupt:
- printf(" %s", corrupt_str);
+ printf(" %s", cstr);
TCHECK2(*cp, ep - cp);
return;
trunc:
- printf(" %s", trunc_str);
+ printf("%s", tstr);
}