android — wpa_supplicant отвечает на любую команду с UNKNOWN COMMAND, кроме PING, LIST_NETWORKS, ATTACH, DETACH, TERMINATE и STATUS?

Прежде всего, моей целевой системой является Android.
Я создал приложение c ++ для связи с wpa_supplicant через интерфейс управления, предоставленный в виде файла wpa_ctrl.c (я включил заголовочный файл wpa_ctrl.h и связал его с библиотекой libwpa_client.so)
вот страница документации.
Все работало нормально, но вдруг на каждую отправляемую мной команду отвечает НЕИЗВЕСТНАЯ КОМАНДА, я полагаю, что команды, которые работают нормально (ping, list_networks, status и terminate), имеют общую вещь (возможно, им не нужно открывать wpa_supplicant .conf, который вызывает проблему на других командах)

вот как я открываю соединение:

this->ctrl = wpa_ctrl_open(this->socket.c_str());

вот как я отправляю команды:

s = wpa_ctrl_request(this->ctrl, cmd.c_str(), cmd.length(), this->_reply, &reply_len, msg_cb);

Подпись метода выше:

struct wpa_ctrl * wpa_ctrl_open(const char *ctrl_path);

int wpa_ctrl_request(struct wpa_ctrl *ctrl, const char *cmd, size_t cmd_len,
char *reply, size_t *reply_len,
void (*msg_cb)(char *msg, size_t len));

пример вывода:

PING
PONG

UNKNOWN COMMAND: MIB
UNKNOWN COMMAND: STATUS-VERBOSE
UNKNOWN COMMAND: PMKSA
UNKNOWN COMMAND: LOGON
UNKNOWN COMMAND: LOGOFF
UNKNOWN COMMAND: REASSOCIATE
UNKNOWN COMMAND: RECONNECT
UNKNOWN COMMAND: RECONFIGURE
LIST_NETWORKS
network id / ssid / bssid / flags

UNKNOWN COMMAND: DISCONNECT
UNKNOWN COMMAND: SCAN
UNKNOWN COMMAND: SCAN_RESULTS
UNKNOWN COMMAND: BSS
UNKNOWN COMMAND: ADD_NETWORK
STATUS
p2p_device_address=12:d3:8a:c8:34:ef
p2p_state=IDLE
wifi_display=1
ifname=p2p0
address=12:d3:8a:c8:34:ef
ifname=wlan0
address=10:d3:8a:c8:34:ef

UNKNOWN COMMAND: ADD_NETWORK
closed connection with wpa_supplicant.
Can not create Network

Вот это скриншот старой версии программы, работающей почти нормально:

любая помощь приветствуется.

РЕДАКТИРОВАТЬ: я протестировал программу на другом устройстве, и она работала хорошо. Но все еще сломанный на моем основном устройстве, вероятно, сброс к заводским настройкам решит это. Но я все еще хочу знать причину проблемы.

2

Решение

Проблема была в том, что имя интерфейса было неправильным.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]