Add convertion function from string to macaddress

This commit is contained in:
vemax78 2013-10-06 22:36:29 +02:00
parent a7e9ab26a1
commit 680354c842
2 changed files with 20 additions and 0 deletions

View File

@ -1275,6 +1275,8 @@ void capwap_interface_list(struct capwap_network* net, struct capwap_list* list)
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]);
@ -1286,3 +1288,20 @@ char* capwap_printf_macaddress(char* buffer, unsigned char* macaddress, int type
return buffer;
}
/* */
int capwap_scanf_macaddress(unsigned char* macaddress, const char* buffer, int type) {
if (type == MACADDRESS_EUI48_LENGTH) {
if (sscanf(buffer, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &macaddress[0], &macaddress[1], &macaddress[2], &macaddress[3], &macaddress[4], &macaddress[5]) != 6) {
return 0;
}
} else if (type == MACADDRESS_EUI64_LENGTH) {
if (sscanf(buffer, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", &macaddress[0], &macaddress[1], &macaddress[2], &macaddress[3], &macaddress[4], &macaddress[5], &macaddress[6], &macaddress[7]) != 8) {
return 0;
}
} else {
return 0;
}
return 1;
}

View File

@ -93,5 +93,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);
int capwap_scanf_macaddress(unsigned char* macaddress, const char* buffer, int type);
#endif /* __CAPWAP_NETWORK_HEADER__ */