diff options
author | Angelos D. Keromytis <angelos@cvs.openbsd.org> | 2001-07-01 06:10:35 +0000 |
---|---|---|
committer | Angelos D. Keromytis <angelos@cvs.openbsd.org> | 2001-07-01 06:10:35 +0000 |
commit | 4800ac637f4bf58587b6ed063e8e0df0f51d3949 (patch) | |
tree | de3afb50cdcadb5936a2e75e55e207cfc321961a /sbin/isakmpd | |
parent | 0137a27eb048afeabdff11265a3444cc4340bcfb (diff) |
Eliminate IPv4 dependency.
Diffstat (limited to 'sbin/isakmpd')
-rw-r--r-- | sbin/isakmpd/message.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/sbin/isakmpd/message.c b/sbin/isakmpd/message.c index 43fcfa1bf15..a418ff54096 100644 --- a/sbin/isakmpd/message.c +++ b/sbin/isakmpd/message.c @@ -1,4 +1,4 @@ -/* $OpenBSD: message.c,v 1.43 2001/06/29 18:52:17 ho Exp $ */ +/* $OpenBSD: message.c,v 1.44 2001/07/01 06:10:34 angelos Exp $ */ /* $EOM: message.c,v 1.156 2000/10/10 12:36:39 provos Exp $ */ /* @@ -1449,13 +1449,30 @@ message_drop (struct message *msg, int notify, struct proto *proto, { struct transport *t = msg->transport; struct sockaddr *dst; + char *address; + short port = 0; t->vtbl->get_dst (t, &dst); + if (sockaddr2text (dst, &address, 0)) + { + log_error ("message_drop: sockaddr2text () failed"); + address = 0; + } + + switch (dst->sa_family) + { + case AF_INET: + port = ((struct sockaddr_in *)dst)->sin_port; + break; + case AF_INET6: + port = ((struct sockaddr_in6 *)dst)->sin6_port; + break; + default: + log_print ("message_drop: unknown protocol family %d", dst->sa_family); + } - /* XXX Assumes IPv4. */ log_print ("dropped message from %s port %d due to notification type %s", - inet_ntoa (((struct sockaddr_in *)dst)->sin_addr), - ntohs (((struct sockaddr_in *)dst)->sin_port), + address ? address : "<unknown>", htons(port), constant_name (isakmp_notify_cst, notify)); /* If specified, return a notification. */ |