diff --git a/src/common/capwap_network.c b/src/common/capwap_network.c index 465a23d..ca28c1c 100644 --- a/src/common/capwap_network.c +++ b/src/common/capwap_network.c @@ -1274,3 +1274,15 @@ void capwap_interface_list(struct capwap_network* net, struct capwap_list* list) /* Free */ freeifaddrs(ifaddrlist); } + +char* capwap_printf_macaddress(char* buffer, unsigned char* macaddress, int type) { + if (type == MACADDRESS_EUI48_LENGTH) { + sprintf(buffer, "%02x:%02x:%02x:%02x:%02x:%02x", macaddress[0], macaddress[1], macaddress[2], macaddress[3], macaddress[4], macaddress[5]); + } else if (type == MACADDRESS_EUI64_LENGTH) { + sprintf(buffer, "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", macaddress[0], macaddress[1], macaddress[2], macaddress[3], macaddress[4], macaddress[5], macaddress[6], macaddress[7]); + } else { + return NULL; + } + + return buffer; +} diff --git a/src/common/capwap_network.h b/src/common/capwap_network.h index 63900f8..288a2a5 100644 --- a/src/common/capwap_network.h +++ b/src/common/capwap_network.h @@ -92,4 +92,6 @@ int capwap_address_from_string(const char* ip, struct sockaddr_storage* address) int capwap_get_localaddress_by_remoteaddress(struct sockaddr_storage* local, struct sockaddr_storage* remote, char* oif, int ipv6dualstack); +char* capwap_printf_macaddress(char* buffer, unsigned char* macaddress, int type); + #endif /* __CAPWAP_NETWORK_HEADER__ */