wpa_supplant对除PING、LIST_NETWORKS、ATTACH、DETACH、TERMINATE和STA

wpa_supplicant reply to any command with UNKNOWN COMMAND except PING, LIST_NETWORKS, ATTACH, DETACH, TERMINATE, and STATUS?

本文关键字:TERMINATE DETACH STA ATTACH LIST supplant 对除 PING wpa NETWORKS      更新时间:2023-10-16

首先我的目标系统是android。
我创建了一个c++应用程序,通过作为wpa_ctrl.c文件提供的控制接口与wpa_supplicant通信(我包含了头文件wpa_ctrl.h并链接到库libwpa_client.so)。这是文档页面。
一切都工作得很好,但突然我发送的每个命令都由UNKNOWN命令回复,我想工作良好的命令(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

这是一个旧版本的程序的截图,几乎可以正常工作:

任何帮助都是感激的。

编辑:我在我的其他设备上测试了这个程序,它运行良好。但我的主设备还是坏了,也许重置出厂就能解决。但是我还是想知道问题的原因。

接口名称错误