Функция Networking_SetHardwareAddress
Заголовок: #include <applibs/networking.h>
Задает аппаратный адрес для сетевого интерфейса. Аппаратный адрес сохраняется при перезагрузках и может быть задан только в интерфейсе Ethernet.
Манифест приложения должен содержать HardwareAddressConfig
возможность.
static int Networking_SetHardwareAddress(const char *networkInterfaceName, const uint8_t *hardwareAddress, size_t hardwareAddressLength);
Параметры
-
networkInterfaceName
Имя обновляемого сетевого интерфейса. -
hardwareAddress
Указатель на массив байтов, содержащий аппаратный адрес. -
hardwareAddressLength
Длина аппаратного адреса. Он всегда должен быть равенHARDWARE_ADDRESS_LENGTH
.
Ошибки
Возвращает значение -1 при обнаружении ошибки и задает errno
значение ошибки.
ENOINT: сетевой интерфейс не существует.
EPERM: эта функция не разрешена в интерфейсе.
EAGAIN: сетевой стек не готов.
ERANGE:
hardwareAddressLength
больше , чемHARDWARE_ADDRESS_LENGTH
.EINVAL:
hardwareAddressLength
недопустимо.Примеры:
- Аппаратный адрес со всеми нулями (00:00:00:00:00:00). -
- Группировать аппаратные адреса (аппаратный адрес с наименьшим значением бита первого октета, равным 1).
Можно указать любой другой errno
; такие ошибки не являются детерминированными, и нет никакой гарантии, что значения будут согласованы в разных выпусках ОС.
Возвращаемое значение
Возвращает значение 0 для успешного выполнения или -1 для сбоя. В этом случае errno
задается значение ошибки.