diff options
-rw-r--r-- | epan/address.h | 3 | ||||
-rw-r--r-- | epan/to_str.c | 9 |
2 files changed, 7 insertions, 5 deletions
diff --git a/epan/address.h b/epan/address.h index 424f0578a8..c75a3c8000 100644 --- a/epan/address.h +++ b/epan/address.h @@ -44,7 +44,8 @@ typedef enum { AT_FC, /* Fibre Channel */ AT_SS7PC, /* SS7 Point Code */ AT_STRINGZ, /* null-terminated string */ - AT_EUI64 /* IEEE EUI-64 */ + AT_EUI64, /* IEEE EUI-64 */ + AT_URI /* URI/URL/URN */ } address_type; typedef struct _address { diff --git a/epan/to_str.c b/epan/to_str.c index 21121db112..6641ea61cf 100644 --- a/epan/to_str.c +++ b/epan/to_str.c @@ -827,11 +827,8 @@ decode_numeric_bitfield(guint32 val, guint32 mask, int width, gchar* address_to_str(const address *addr) { -#ifndef INET6_ADDRSTRLEN -#define INET6_ADDRSTRLEN 46 -#endif static int i=0; - static gchar *strp, str[16][INET6_ADDRSTRLEN];/* IPv6 is the largest one */ + static gchar *strp, str[16][256]; i++; if(i>=16){ @@ -891,6 +888,10 @@ address_to_str_buf(const address *addr, gchar *buf) addr->data[0], addr->data[1], addr->data[2], addr->data[3], addr->data[4], addr->data[5], addr->data[6], addr->data[7]); break; + case AT_URI: + memmove(buf, addr->data, addr->len); + buf[addr->len] = '\0'; + break; default: g_assert_not_reached(); } |