Skip to content
Snippets Groups Projects
Select Git revision
  • 49aa2a3d692482c9191c69e3c27e99c718e6f500
  • experimental default protected
  • v2023.2.5-ffs
  • nrb/ex400-remove-wps
  • nrb/airmax-test
  • v2023.2.4-ffs
  • nrb/ar9344-reset-sequence
  • autinerd/experimental-openwrt-24.10
  • v2023.2.3-ffs
  • v2023.2.2-ffs
  • v2023.2-ffs
  • v2023.1-ffs
  • v2022.1.4-ffs
  • feature/addMikrotikwAP
  • v2022.1.3-ffs
  • v2021.1.2-ffs
  • v2022.1.1-ffs
  • master protected
  • v2021.1.1-ffs
  • nrb/gluon-master-cpe510
  • v2021.1-ffs
  • experimental-2025-08-13
  • experimental-2025-08-13-base
  • experimental-2025-08-04
  • experimental-2025-08-04-base
  • experimental-2025-07-31
  • experimental-2025-07-31-base
  • experimental-2025-07-29
  • experimental-2025-07-29-base
  • experimental-2025-07-28
  • experimental-2025-07-28-base
  • experimental-2025-07-26
  • experimental-2025-07-26-base
  • experimental-2025-07-24
  • experimental-2025-07-24-base
  • experimental-2025-07-22
  • experimental-2025-07-22-base
  • experimental-2025-07-21
  • experimental-2025-07-21-base
  • experimental-2025-07-20
  • experimental-2025-07-20-base
41 results

mac.c

Blame
  • user avatar
    Jan-Niklas Burfeind authored
    6ff32179
    History
    mac.c 868 B
    // SPDX-FileCopyrightText: 2017 Linus Lüssing <linus.luessing@c0d3.blue>
    // SPDX-License-Identifier: GPL-2.0-or-later
    
    #include <linux/if_ether.h>
    #include <stdio.h>
    #include <string.h>
    #include "mac.h"
    
    #define ETH_STRLEN (sizeof("aa:bb:cc:dd:ee:ff") - 1)
    
    char mntoa_buf[ETH_STRLEN+1];
    
    int mac_aton(const char *cp, struct  mac_addr *mac)
    {
    	struct mac_addr m;
    	int ret;
    
    	if (strlen(cp) != ETH_STRLEN)
    		return 0;
    
    	memset(&m, 0, sizeof(m));
    
    	ret = sscanf(cp, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx",
    			&m.storage[0], &m.storage[1], &m.storage[2],
    			&m.storage[3], &m.storage[4], &m.storage[5]);
    
    	if (ret != ETH_ALEN)
    		return 0;
    
    	*mac = m;
    	return 1;
    }
    
    char *mac_ntoa(struct mac_addr *mac)
    {
    	unsigned char *m = mac->storage;
    
    	snprintf(mntoa_buf, sizeof(mntoa_buf),
    			"%02x:%02x:%02x:%02x:%02x:%02x",
    			m[0], m[1], m[2], m[3], m[4], m[5]);
    
    	return mntoa_buf;
    }