wpa_supplicant回复任何带有UNKNOWN COMMAND的命令,PING,LIST_NETWORKS,ATTACH,DETACH,TERMINATE和STATUS除外?

时间:2016-09-08 20:02:06

标签: android c++ wpa-supplicant

首先,我的目标系统是android 我创建了一个c ++应用程序,通过作为wpa_ctrl.c文件提供的控制接口与wpa_supplicant进行通信(我包含了头文件wpa_ctrl.h并与库libwpa_client.so链接) here is the documentation page
每件事情都运行正常,但我突然发出的每一个命令都是由UNKNOWN COMMAND回复,我认为运行正常的命令(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

Here是该程序旧版本的屏幕截图,几乎可以正常工作:

感谢任何帮助。

编辑:我在我的其他设备上测试了该程序并且运行良好。但仍然在我的主设备上坏了,可能工厂重置将解决它。但我仍然想知道问题的原因。

1 个答案:

答案 0 :(得分:1)

问题是接口名称错误。