int Eth_Dev_Param::set_hwaddr()

in sample_app/onvif_camera_mock/artifacts/onvif_srvd/src/eth_dev_param.cpp [403:423]


int Eth_Dev_Param::set_hwaddr(const char *hwaddr)
{

    if( !is_open() || !hwaddr || (strlen(hwaddr) != 17) )
        return -1;


    int tmp_mac[6]; // int for sscanf!!!


    sscanf(hwaddr, "%x:%x:%x:%x:%x:%x", &tmp_mac[0], &tmp_mac[1], &tmp_mac[2], &tmp_mac[3], &tmp_mac[4], &tmp_mac[5]);


    _ifr.ifr_hwaddr.sa_family = ARPHRD_ETHER;

    for(int i = 0; i < 6; i++)
        _ifr.ifr_hwaddr.sa_data[i] = tmp_mac[i];


    return ioctl(_sd, SIOCSIFHWADDR, &_ifr);
}