diff --git a/epan/addr_resolv.c b/epan/addr_resolv.c index 7bf210fd45..8f4b7bc3b7 100644 --- a/epan/addr_resolv.c +++ b/epan/addr_resolv.c @@ -2130,6 +2130,23 @@ extern const gchar *get_manuf_name(const guint8 *addr) } /* get_manuf_name */ +const gchar *get_manuf_name_if_known(const guint8 *addr) +{ + hashmanuf_t *manufp; + + if (!eth_resolution_initialized) { + initialize_ethers(); + eth_resolution_initialized = 1; + } + + if ((manufp = manuf_name_lookup(addr)) == NULL) { + return NULL; + } + + return manufp->name; + +} /* get_manuf_name_if_known */ + /* Translate a string, assumed either to be a dotted-quad IP address or * a host name, to a numeric IP address. Return TRUE if we succeed and diff --git a/epan/addr_resolv.h b/epan/addr_resolv.h index d760fc2e35..b9e3690789 100644 --- a/epan/addr_resolv.h +++ b/epan/addr_resolv.h @@ -135,6 +135,9 @@ extern gchar *get_ether_name_if_known(const guint8 *addr); /* get_manuf_name returns the vendor name or "%02x:%02x:%02x" if not known */ extern const gchar *get_manuf_name(const guint8 *addr); +/* get_manuf_name returns the vendor name or NULL if not known */ +extern const gchar *get_manuf_name_if_known(const guint8 *addr); + /* get_ipxnet_name returns the logical name if found in an ipxnets file, * or a string formatted with "%X" if not */ extern const gchar *get_ipxnet_name(const guint32 addr); diff --git a/epan/libethereal.def b/epan/libethereal.def index 28b178738e..7b1aeb7fb9 100644 --- a/epan/libethereal.def +++ b/epan/libethereal.def @@ -285,6 +285,7 @@ get_dissector_table_ui_name get_ether_name get_hostname get_hostname6 +get_manuf_name_if_known get_persconffile_path get_plugins_global_dir get_plugins_pers_dir