diff options
author | Johannes Berg <johannes.berg@intel.com> | 2011-02-02 17:11:00 +0200 |
---|---|---|
committer | Jouni Malinen <j@w1.fi> | 2011-02-02 17:11:00 +0200 |
commit | 0c11c63375b27bc5bedb34b3bb28e066f4f7f620 (patch) | |
tree | 1f6cb1dc162ccf32f52f5a15eddbcdb8c19de33a /src/utils/common.c | |
parent | d750b7e699bc30cba84d5bebfafabe836682b4ab (diff) | |
download | external_wpa_supplicant_8_ti-0c11c63375b27bc5bedb34b3bb28e066f4f7f620.zip external_wpa_supplicant_8_ti-0c11c63375b27bc5bedb34b3bb28e066f4f7f620.tar.gz external_wpa_supplicant_8_ti-0c11c63375b27bc5bedb34b3bb28e066f4f7f620.tar.bz2 |
util: Add compact MAC address formatting/parsing
The P2P DBus interface will use addresses for
DBus paths, and uses them without any separators.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'src/utils/common.c')
-rw-r--r-- | src/utils/common.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/utils/common.c b/src/utils/common.c index 718be4a..89eca1c 100644 --- a/src/utils/common.c +++ b/src/utils/common.c @@ -69,6 +69,30 @@ int hwaddr_aton(const char *txt, u8 *addr) return 0; } +/** + * hwaddr_compact_aton - Convert ASCII string to MAC address (no colon delimitors format) + * @txt: MAC address as a string (e.g., "001122334455") + * @addr: Buffer for the MAC address (ETH_ALEN = 6 bytes) + * Returns: 0 on success, -1 on failure (e.g., string not a MAC address) + */ +int hwaddr_compact_aton(const char *txt, u8 *addr) +{ + int i; + + for (i = 0; i < 6; i++) { + int a, b; + + a = hex2num(*txt++); + if (a < 0) + return -1; + b = hex2num(*txt++); + if (b < 0) + return -1; + *addr++ = (a << 4) | b; + } + + return 0; +} /** * hwaddr_aton2 - Convert ASCII string to MAC address (in any known format) |