summaryrefslogtreecommitdiff
path: root/epan/addr_resolv.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2004-12-30 02:10:24 +0000
committerGuy Harris <guy@alum.mit.edu>2004-12-30 02:10:24 +0000
commit0ccf418724aa221c786e8ac765a8cbe1fed8ac3d (patch)
tree1e4a380da3f190a7468ee2baa824b4e1ff58ac67 /epan/addr_resolv.c
parent9d5c8771c1560425077117b33a06a9e8263062a9 (diff)
downloadwireshark-0ccf418724aa221c786e8ac765a8cbe1fed8ac3d.tar.gz
Add a "get_addr_name()" routine that takes an "address *" and attempts
to resolve it to a name. Fix up some const-pointer-to-non-const-pointer, and function-pointer-to-void-*, conversions. Fix some comments. svn path=/trunk/; revision=12863
Diffstat (limited to 'epan/addr_resolv.c')
-rw-r--r--epan/addr_resolv.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/epan/addr_resolv.c b/epan/addr_resolv.c
index f31b72cbc1..1b4503859d 100644
--- a/epan/addr_resolv.c
+++ b/epan/addr_resolv.c
@@ -1869,6 +1869,32 @@ extern gchar *get_sctp_port(guint port)
} /* get_sctp_port */
+const gchar *get_addr_name(address *addr)
+{
+ guint32 ipv4_addr;
+ struct e_in6_addr ipv6_addr;
+
+ switch (addr->type) {
+
+ case AT_ETHER:
+ return get_ether_name(addr->data);
+
+ case AT_IPv4:
+ memcpy(&ipv4_addr, addr->data, sizeof ipv4_addr);
+ return get_hostname(ipv4_addr);
+
+ case AT_IPv6:
+ memcpy(&ipv6_addr.s6_addr, addr->data, sizeof ipv6_addr.s6_addr);
+ return get_hostname6(&ipv6_addr);
+
+ case AT_STRINGZ:
+ return addr->data;
+
+ default:
+ return NULL;
+ }
+}
+
extern gchar *get_ether_name(const guint8 *addr)
{
if (!(g_resolv_flags & RESOLV_MAC))