Chinaunix首页 | 论坛 | 博客
  • 博客访问: 572313
  • 博文数量: 185
  • 博客积分: 4031
  • 博客等级: 上校
  • 技术积分: 1591
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-27 19:45
文章分类

全部博文(185)

文章存档

2011年(14)

2010年(63)

2009年(108)

我的朋友

分类:

2010-05-31 13:50:42

1.WPA_SUPPLICANT当遇到WEP加密时,由于无法判断是采用OPEN/SHARE,通常会在声称.conf文件中加入
auth_alg=OPEN SHARED(至少Android遇到),但事实上某些wifi网卡驱动不能实现同时OPEN和SHARED同时设置,我用的RT2070就不能够了,任意时刻只能用一个,而Atheroid就可以同时设两个。这里给出解决不能同时设置的方法,在wpa_supplicant.c:wpa_supplicant_associate()中加入以下内容:
    if (ssid->auth_alg) {
        algs = 0;
        if (ssid->auth_alg & WPA_AUTH_ALG_OPEN)
            algs |= AUTH_ALG_OPEN_SYSTEM;
        if (ssid->auth_alg & WPA_AUTH_ALG_SHARED)
            algs |= AUTH_ALG_SHARED_KEY;
        if (ssid->auth_alg & WPA_AUTH_ALG_LEAP)
            algs |= AUTH_ALG_LEAP;
        wpa_printf(MSG_DEBUG, "Overriding auth_alg selection: 0x%x",
               algs);

        if ((algs & AUTH_ALG_OPEN_SYSTEM) && (algs & AUTH_ALG_SHARED_KEY) ) {
            algs = AUTH_ALG_SHARED_KEY;
            G_TRY_CONNECT ++;

            if (G_TRY_CONNECT >= 4) {
                algs = AUTH_ALG_OPEN_SYSTEM;
                wpa_printf(MSG_DEBUG, "RAYDEBUG--------------------change to ALG_OPEN_SYSTEM");
            }
        }
    }

阅读(4296) | 评论(2) | 转发(1) |
给主人留下些什么吧!~~

chinaunix网友2011-01-20 16:02:18

冒失就是连4次,如果还是失败就换一冲连接方法,比较危险的是会丢掉AUTH_ALG_LEAP属性

chinaunix网友2010-06-01 14:25:19

请教一下: 1. 你用的wpa_supplicant是多少版本?0.6.9? 2. G_TRY_CONNECT是个什么变量?我在wpa_supplicant 0.6.9中并没有搜索到!是你自己定义的吗? 3. 在这个过程中我并没有看到进行具体判断wep采用何种安全选项的代码,上面的代码一直都是在进行赋值,而没有说明赋值之前的判断是如何进行的,能否详谈一下? 谢谢!