iw 连接open AP失败的问题分析
2017-06-22 09:31
399 查看
iw 连接open AP失败的问题分析
iw 连接open AP 问题
adb shell iw dev wlan0 connect -w “ssid” “frequece” “bssid”返回结果:
wlan0 (phy #0): failed to connect to “ssid” status: 1: Unspecified failure
iw connect 连接流程
首先分析并扩展一下Connect.c中的宏定义TOPLEVEL(connect, “[-w] [] [] [key 0:abcde d:1:6162636465]”, 0, 0, CIB_NETDEV, iw_connect, “dddd.”); ====>
struct cmd \
__section_connect \
__attribute__((used)) __attribute__((section(“__cmd”))) = { \
.name = (“connect”), \
.args = (“[-w] [] [] [key 0:abcde d:1:6162636465]”), \
.cmd = (0), \
.nl_msg_flags = (0), \
.idby = (CIB_NETDEV), \
.handler = (iw_connect), \
.help = (“dddd”), \
}
HIDDEN(connect, establish, “”, NL80211_CMD_CONNECT, 0, CIB_NETDEV, iw_conn); ====>
static struct cmd \
__cmd_establish_iw_conn_NL80211_CMD_CONNECT_CIB_NETDEV_1\
__attribute__((used)) __attribute__((section(“__cmd”))) = { \
.name = (“establish”), \
.args = (“”), \
.cmd = (NL80211_CMD_CONNECT), \
.nl_msg_flags = (0), \
.hidden = (1), \
.idby = (CIB_NETDEV), \
.handler = (iw_conn), \
.help = (NULL), \
.parent = __section_connect, \
.selector = (NULL), \
}
connect命令在iw中的流程
connect open AP在iw中的关键步骤
msg = nlmsg_alloc();genlmsg_put(msg, 0, 0, state->nl80211_id, 0, cmd->nl_msg_flags, cmd->cmd, 0);
//establish 的cmd是:NL80211_CMD_CONNECT
NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, devidx);
NLA_PUT(msg, NL80211_ATTR_SSID, strlen(argv[0]), argv[0]);
NLA_PUT_U32(msg, NL80211_ATTR_WIPHY_FREQ, freq);
NLA_PUT(msg, NL80211_ATTR_MAC, 6, bssid);
从代码逻辑看一切正常,没有问题呀!?,为什么连接不上呢?
正常连接logde关键步骤:
在external/wpa_supplicant_8/src/drivers/driver_nl80211.c中查看wpa_driver_nl80211_connect源码,对应log:1. 设置cmd, ifindex:
wpa_supplicant: nl80211: Connect (ifindex=24)
2. 设置bssid, bssid_hint
wpa_supplicant: * bssid=a0:8d:16:a7:fb:4d
wpa_supplicant: * bssid_hint=a0:8d:16:a7:fb:4d
3. 设置freq, freq_hint
wpa_supplicant: * freq=2412
wpa_supplicant: * freq_hint=2412
4. 设置IEs
wpa_supplicant: * IEs - hexdump(len=8): 7f 06 00 00 0a 82 01 40
5. 设置Auth Type
wpa_supplicant: * Auth Type 0
结合iw中连接步骤,继续分析
大部分都一样,但少了一步Auth Type的设置!试着加上这一步看看!
竟然成功连接上了:
wlan0 (phy #0): connected to a0:8d:16:a7:fb:4d, 搞定收工!
相关文章推荐
- 在使用Notepad++ WinSCP SFTP遇到的连接失败问题分析
- WebSocket部署到服务器出现连接失败问题的分析与解决
- 关于strophe 通过 connection manager 连接到 openfire server 失败 的原因初阶分析http://xmpp.org/extensions/xep-0206.ht
- WebSocket部署到服务器时,出现连接失败的问题解决与分析
- WebSocket部署到服务器时,出现连接失败的问题解决与分析
- 某项目中“Session failed”问题的分析解决---Alteon交换机负载均衡策略引发的会话失败问题
- 某项目中“Session failed”问题的分析解决---Alteon交换机负载均衡策略引发的会话失败问题
- SQL Server连接失败错误分析与排除
- Windows Server 2003 SP2的TCP Chimney导致的的FTP连接失败问题
- 问题一:用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。
- SQLServer连接失败错误分析与排除(2)
- 关于"建立空文档失败"的问题的分析
- 数据库连接,有时会出错在conn.open connstr这地方的问题,及联接查询调用rs("user.id")的问题2006-6-8-4
- FoxPro 客户端频繁数据库连接性能问题的分析和诊断
- SQLServer连接失败错误故障的分析与排除
- SQLServer连接失败错误分析与排除
- 某项目中“Session failed”问题的分析解决---Alteon交换机负载均衡策略引发的会话失败问题
- 某项目中“Session failed”问题的分析解决---Alteon交换机负载均衡策略引发的会话失败问题
- windows2003中mssql连接的NT AUTHORITY\NETWORK SERVICE登录失败的问题
- "无法连接到服务器,用户xxx登陆失败" 解决问题