{
char *end;
unsigned char bssid[6];
+ bool need_key = false;
int freq;
int ret;
if (!argc)
return 0;
- if (strcmp(*argv, "key") != 0 && strcmp(*argv, "keys") != 0)
+ if (strcmp(*argv, "auth") == 0) {
+ argv++;
+ argc--;
+
+ if (!argc)
+ return 1;
+
+ if (strcmp(argv[0], "open") == 0) {
+ NLA_PUT_U32(msg, NL80211_ATTR_AUTH_TYPE,
+ NL80211_AUTHTYPE_OPEN_SYSTEM);
+ } else if (strcmp(argv[0], "shared") == 0) {
+ NLA_PUT_U32(msg, NL80211_ATTR_AUTH_TYPE,
+ NL80211_AUTHTYPE_SHARED_KEY);
+ need_key = true;
+ } else {
+ return 1;
+ }
+
+ argv++;
+ argc--;
+ }
+
+ if (need_key && !argc)
+ return 1;
+
+ if (argc && strcmp(*argv, "key") != 0 && strcmp(*argv, "keys") != 0)
return 1;
argv++;
&printargs);
return 0;
}
-TOPLEVEL(connect, "[-w] <SSID> [<freq in MHz>] [<bssid>] [key 0:abcde d:1:6162636465] [mfp:req/opt/no]",
+TOPLEVEL(connect, "[-w] <SSID> [<freq in MHz>] [<bssid>] [auth open|shared] [key 0:abcde d:1:6162636465] [mfp:req/opt/no]",
0, 0, CIB_NETDEV, iw_connect,
"Join the network with the given SSID (and frequency, BSSID).\n"
"With -w, wait for the connect to finish or fail.");