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?
首先我的目标系统是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
这是一个旧版本的程序的截图,几乎可以正常工作:
任何帮助都是感激的。
编辑:我在我的其他设备上测试了这个程序,它运行良好。但我的主设备还是坏了,也许重置出厂就能解决。但是我还是想知道问题的原因。
接口名称错误
相关文章:
- 体系结构x86_64的未定义符号:std:terminate(),typeinfo,运算符delete[],运算符new
- Q维德格特关闭事件(..)未使用 QProcess::terminate() 调用
- 为什么在编译此代码时会出现此错误?(在~之后调用terminate)
- "terminate called after throwing an instance of std::invalid_argument' what(): stoi ?"
- `noexcept`函数中的std :: terminate`调用函数有限-GCC vs clang codegen
- 为什么在线程销毁之前必须调用 join() 或 detach()
- QThread::terminate vs kill
- 线程在销毁包含该线程的对象时调用 thread.detach()
- 防止线程在处理异常后在分离时调用 std::terminate()
- C++线程中调用 std::terminate 时程序返回代码
- 如果从类成员初始值设定项引发的异常调用 std::terminate()
- throw() 函数应该总是在异常时展开堆栈并允许捕获异常还是必须调用 std::terminate ?
- thread.detach() 函数的左值何时会超出以下代码的范围
- 当调用std :: thread.detach时出乎意料的行为
- 线程已退出,代码为 1:Join() 和 Detach()
- 关于了解C++线程"detach()"的问题
- 线程上的"detach()"有什么作用?.CPP
- 是否可以引入 noreturn noexcept 函数而不是调用 std::terminate
- 如何理解pthread_cancel导致"terminate called without an active exception"?
- wpa_supplant对除PING、LIST_NETWORKS、ATTACH、DETACH、TERMINATE和STA