#undef HAVE_LIBCRYPTO
#endif
-#include <tcpdump-stdinc.h>
+#include <netdissect-stdinc.h>
#include <string.h>
-#include "interface.h"
+#include "netdissect.h"
#include "addrtoname.h"
-#include "extract.h" /* must come after interface.h */
+#include "extract.h"
#include "ip.h"
-#ifdef INET6
#include "ip6.h"
-#endif
/* refer to RFC 2408 */
IV2_T_PRF = 2,
IV2_T_INTEG= 3,
IV2_T_DH = 4,
- IV2_T_ESN = 5,
+ IV2_T_ESN = 5
};
/* 3.4. Key Exchange Payload */
ID_IPV6_ADDR=5,
ID_DER_ASN1_DN=9,
ID_DER_ASN1_GN=10,
- ID_KEY_ID=11,
+ ID_KEY_ID=11
};
struct ikev2_id {
struct isakmp_gen h;
enum ikev2_auth_type {
IV2_RSA_SIG = 1,
IV2_SHARED = 2,
- IV2_DSS_SIG = 3,
+ IV2_DSS_SIG = 3
};
/* refer to RFC 2409 */
int ninitiator = 0;
union inaddr_u {
struct in_addr in4;
-#ifdef INET6
struct in6_addr in6;
-#endif
};
struct {
cookie_t initiator;
{
int i;
const struct ip *ip;
-#ifdef INET6
const struct ip6_hdr *ip6;
-#endif
i = cookie_find(in);
if (0 <= i) {
UNALIGNED_MEMCPY(&cookiecache[ninitiator].iaddr.in4, &ip->ip_src, sizeof(struct in_addr));
UNALIGNED_MEMCPY(&cookiecache[ninitiator].raddr.in4, &ip->ip_dst, sizeof(struct in_addr));
break;
-#ifdef INET6
case 6:
ip6 = (const struct ip6_hdr *)bp2;
cookiecache[ninitiator].version = 6;
UNALIGNED_MEMCPY(&cookiecache[ninitiator].iaddr.in6, &ip6->ip6_src, sizeof(struct in6_addr));
UNALIGNED_MEMCPY(&cookiecache[ninitiator].raddr.in6, &ip6->ip6_dst, sizeof(struct in6_addr));
break;
-#endif
default:
return;
}
cookie_sidecheck(int i, const u_char *bp2, int initiator)
{
const struct ip *ip;
-#ifdef INET6
const struct ip6_hdr *ip6;
-#endif
ip = (const struct ip *)bp2;
switch (IP_V(ip)) {
return 1;
}
break;
-#ifdef INET6
case 6:
if (cookiecache[i].version != 6)
return 0;
return 1;
}
break;
-#endif /* INET6 */
default:
break;
}
#endif
case 2:
{
- const struct ipsecdoi_id *p;
- struct ipsecdoi_id id;
+ const struct ipsecdoi_id *doi_p;
+ struct ipsecdoi_id doi_id;
struct protoent *pe;
- p = (const struct ipsecdoi_id *)ext;
- ND_TCHECK(*p);
- UNALIGNED_MEMCPY(&id, ext, sizeof(id));
- ND_PRINT((ndo," idtype=%s", STR_OR_ID(id.type, ipsecidtypestr)));
+ doi_p = (const struct ipsecdoi_id *)ext;
+ ND_TCHECK(*doi_p);
+ UNALIGNED_MEMCPY(&doi_id, ext, sizeof(doi_id));
+ ND_PRINT((ndo," idtype=%s", STR_OR_ID(doi_id.type, ipsecidtypestr)));
/* A protocol ID of 0 DOES NOT mean IPPROTO_IP! */
- pe = id.proto_id ? getprotobynumber(id.proto_id) : NULL;
+ pe = doi_id.proto_id ? getprotobynumber(doi_id.proto_id) : NULL;
if (pe)
ND_PRINT((ndo," protoid=%s", pe->p_name));
else
- ND_PRINT((ndo," protoid=%u", id.proto_id));
- ND_PRINT((ndo," port=%d", ntohs(id.port)));
+ ND_PRINT((ndo," protoid=%u", doi_id.proto_id));
+ ND_PRINT((ndo," port=%d", ntohs(doi_id.port)));
if (!len)
break;
if (data == NULL)
goto trunc;
ND_TCHECK2(*data, len);
- switch (id.type) {
+ switch (doi_id.type) {
case IPSECDOI_ID_IPV4_ADDR:
if (len < 4)
ND_PRINT((ndo," len=%d [bad: < 4]", len));
len = 0;
break;
}
-#ifdef INET6
case IPSECDOI_ID_IPV6_ADDR:
if (len < 16)
ND_PRINT((ndo," len=%d [bad: < 16]", len));
len = 0;
break;
}
-#endif /*INET6*/
case IPSECDOI_ID_IPV4_ADDR_RANGE:
if (len < 8)
ND_PRINT((ndo," len=%d [bad: < 8]", len));
}
len = 0;
break;
-#ifdef INET6
case IPSECDOI_ID_IPV6_ADDR_RANGE:
if (len < 32)
ND_PRINT((ndo," len=%d [bad: < 32]", len));
}
len = 0;
break;
-#endif /*INET6*/
case IPSECDOI_ID_DER_ASN1_DN:
case IPSECDOI_ID_DER_ASN1_GN:
case IPSECDOI_ID_KEY_ID:
const char *notify_name;
uint32_t type;
- p = (const const struct ikev2_n *)ext;
+ p = (const struct ikev2_n *)ext;
ND_TCHECK(*p);
UNALIGNED_MEMCPY(&n, ext, sizeof(n));
ikev2_pay_print(ndo, NPSTR(ISAKMP_NPTYPE_N), n.h.critical);