projects
/
project
/
luci.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libs/iwinfo: fixes for wpa/wep detection in wifi scan
[project/luci.git]
/
libs
/
iwinfo
/
src
/
iwinfo_wext_scan.c
diff --git
a/libs/iwinfo/src/iwinfo_wext_scan.c
b/libs/iwinfo/src/iwinfo_wext_scan.c
index
63231b8
..
1c15a1d
100644
(file)
--- a/
libs/iwinfo/src/iwinfo_wext_scan.c
+++ b/
libs/iwinfo/src/iwinfo_wext_scan.c
@@
-284,20
+284,23
@@
static inline void wext_fill_wpa(unsigned char *iebuf, int buflen, struct iwinfo
if(ielen < (offset + 4))
{
if(ielen < (offset + 4))
{
- ce->group_ciphers[2] = 1; /* TKIP */
+ ce->group_ciphers |= (1<<2); /* TKIP */
+ ce->pair_ciphers |= (1<<2); /* TKIP */
+ ce->auth_suites |= (1<<2); /* PSK */
return;
}
if(memcmp(&iebuf[offset], wpa_oui, 3) != 0)
return;
}
if(memcmp(&iebuf[offset], wpa_oui, 3) != 0)
- ce->group_ciphers
[7] = 1
; /* Proprietary */
+ ce->group_ciphers
|= (1<<7)
; /* Proprietary */
else
else
- ce->group_ciphers
[iebuf[offset+3]] = 1
;
+ ce->group_ciphers
|= (1<<iebuf[offset+3])
;
offset += 4;
if(ielen < (offset + 2))
{
offset += 4;
if(ielen < (offset + 2))
{
- ce->pair_ciphers[2] = 1; /* TKIP */
+ ce->pair_ciphers |= (1<<2); /* TKIP */
+ ce->auth_suites |= (1<<2); /* PSK */
return;
}
return;
}
@@
-312,9
+315,9
@@
static inline void wext_fill_wpa(unsigned char *iebuf, int buflen, struct iwinfo
for(i = 0; i < cnt; i++)
{
if(memcmp(&iebuf[offset], wpa_oui, 3) != 0)
for(i = 0; i < cnt; i++)
{
if(memcmp(&iebuf[offset], wpa_oui, 3) != 0)
- ce->pair_ciphers
[7] = 1
; /* Proprietary */
+ ce->pair_ciphers
|= (1<<7)
; /* Proprietary */
else if(iebuf[offset+3] <= IW_IE_CYPHER_NUM)
else if(iebuf[offset+3] <= IW_IE_CYPHER_NUM)
- ce->pair_ciphers
[iebuf[offset+3]] = 1
;
+ ce->pair_ciphers
|= (1<<iebuf[offset+3])
;
//else
// ce->pair_ciphers[ce->pair_cipher_num++] = 255; /* Unknown */
//else
// ce->pair_ciphers[ce->pair_cipher_num++] = 255; /* Unknown */
@@
-336,9
+339,9
@@
static inline void wext_fill_wpa(unsigned char *iebuf, int buflen, struct iwinfo
for(i = 0; i < cnt; i++)
{
if(memcmp(&iebuf[offset], wpa_oui, 3) != 0)
for(i = 0; i < cnt; i++)
{
if(memcmp(&iebuf[offset], wpa_oui, 3) != 0)
- ce->auth_suites
[7] = 1
; /* Proprietary */
+ ce->auth_suites
|= (1<<7)
; /* Proprietary */
else if(iebuf[offset+3] <= IW_IE_KEY_MGMT_NUM)
else if(iebuf[offset+3] <= IW_IE_KEY_MGMT_NUM)
- ce->auth_suites
[iebuf[offset+3]] = 1
;
+ ce->auth_suites
|= (1<<iebuf[offset+3])
;
//else
// ce->auth_suites[ce->auth_suite_num++] = 255; /* Unknown */
//else
// ce->auth_suites[ce->auth_suite_num++] = 255; /* Unknown */
@@
-467,7
+470,7
@@
int wext_get_scanlist(const char *ifname, char *buf, int *len)
struct timeval tv; /* Select timeout */
int timeout = 15000000; /* 15s */
struct timeval tv; /* Select timeout */
int timeout = 15000000; /* 15s */
- int
_
len = 0;
+ int
entry
len = 0;
struct iwinfo_scanlist_entry e;
//IWINFO_BUFSIZE
struct iwinfo_scanlist_entry e;
//IWINFO_BUFSIZE
@@
-610,10
+613,10
@@
int wext_get_scanlist(const char *ifname, char *buf, int *len)
{
first = 0;
}
{
first = 0;
}
- else if( (
_
len + sizeof(struct iwinfo_scanlist_entry)) <= IWINFO_BUFSIZE )
+ else if( (
entry
len + sizeof(struct iwinfo_scanlist_entry)) <= IWINFO_BUFSIZE )
{
{
- memcpy(&buf[
_
len], &e, sizeof(struct iwinfo_scanlist_entry));
-
_
len += sizeof(struct iwinfo_scanlist_entry);
+ memcpy(&buf[
entry
len], &e, sizeof(struct iwinfo_scanlist_entry));
+
entry
len += sizeof(struct iwinfo_scanlist_entry);
}
else
{
}
else
{
@@
-630,7
+633,7
@@
int wext_get_scanlist(const char *ifname, char *buf, int *len)
} while(ret > 0);
free(buffer);
} while(ret > 0);
free(buffer);
- *len =
_
len;
+ *len =
entry
len;
return 0;
}
return 0;
}