Как получить NMDeviceWifi * из NMDevice * в Linux с помощью сетевого менеджера? - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь получить информацию о подключенной точке доступа Wi-Fi (например, SSID, BSSID и т. Д.) В centos, и для этого использовал API-интерфейс NetworkManager (libnm.so). Вместо использования nm api я хотел динамически загрузить libnm.so и использовать указатели функций для вызова нужных API.

До даты я мог разрешить функциональные указатели следующих API-интерфейсов nm .. nm_client_new, nm_client_get_devices и nm_device_get_device_type.

Но я не нашел функции, которая конвертирует NMDevice * в NMDeviceWifi *.

нм API имеет функцию с именем NMDeviceWifi * NM_DEVICE_WIFI (NMDevice *), но я не видел никаких символов для функции NM_DEVICE_WIFI в libnm.so, поэтому не смог разрешить указатель функции.

Я пробовал dynamic_cast с NMDevice * на NMDeviceWifi *, но он не работал.

ошибка: невозможно динамическое_кастовое 'устройство' (типа 'NMDevice * {aka struct _NMDevice *}') набрать 'NMDeviceWifi * {aka struct _NMDeviceWifi *}' (тип источника не является полиморфным)

NMDeviceWifi * pWifi = dynamic_cast<NMDeviceWifi *>(device);
...