7 char essid[IW_ESSID_MAX_SIZE + 1];
8 unsigned char key[IW_ENCODING_TOKEN_MAX];
11 int wlsock = iw_sockets_open();
13 const char *itfName = "wlan0";
14 const char *networkName = "linksys";
15 const char *com_key = "9F1C3EE11CBA230B27BF1C1B6F";
19 memset(&wrq,0,sizeof(struct iwreq));
21 keylen = iw_in_key_full(wlsock, itfName, com_key, key, &wrq.u.data.flags);
25 wrq.u.data.length = keylen;
26 wrq.u.data.pointer = (caddr_t) key;
27 wrq.u.data.flags |= IW_ENCODE_RESTRICTED;
29 if(iw_set_ext(wlsock, itfName, SIOCSIWENCODE, &wrq) < 0)
32 memset(&wrq,0,sizeof(struct iwreq));
34 wrq.u.mode = IW_MODE_INFRA;
36 if(iw_set_ext( wlsock, itfName, SIOCSIWMODE, &wrq) < 0)
39 if(strlen(networkName) > IW_ESSID_MAX_SIZE)
42 memset(essid,0,IW_ESSID_MAX_SIZE + 1);
43 memset(&wrq,0,sizeof(struct iwreq));
45 strncpy(essid,networkName,strlen(networkName));
46 wrq.u.essid.flags = 1;
47 wrq.u.essid.pointer = (caddr_t) essid;
48 wrq.u.essid.length = strlen(essid) + 1;
50 if(iw_set_ext( wlsock, itfName, SIOCSIWESSID, &wrq) < 0)
53 iw_sockets_close(wlsock);