Changeset a35b458 in mainline for uspace/app/wifi_supplicant/wifi_supplicant.c
- Timestamp:
- 2018-03-02T20:10:49Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1380b7
- Parents:
- 3061bc1
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:38:31)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:10:49)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/wifi_supplicant/wifi_supplicant.c
r3061bc1 ra35b458 81 81 addr->address[0], addr->address[1], addr->address[2], 82 82 addr->address[3], addr->address[4], addr->address[5]); 83 83 84 84 if (rc < 0) 85 85 return NULL; 86 86 87 87 return str; 88 88 } … … 96 96 return rc; 97 97 } 98 98 99 99 rc = loc_category_get_svcs(wifi_cat, wifis, count); 100 100 if (rc != EOK) { … … 102 102 return rc; 103 103 } 104 104 105 105 return EOK; 106 106 } … … 110 110 service_id_t *wifis = NULL; 111 111 size_t count; 112 112 113 113 errno_t rc = get_wifi_list(&wifis, &count); 114 114 if (rc != EOK) { … … 116 116 return NULL; 117 117 } 118 118 119 119 if (i >= count) { 120 120 printf("Invalid wifi index.\n"); … … 122 122 return NULL; 123 123 } 124 124 125 125 async_sess_t *sess = 126 126 loc_service_connect(wifis[i], INTERFACE_DDF, 0); … … 130 130 return NULL; 131 131 } 132 132 133 133 return sess; 134 134 } … … 138 138 service_id_t *wifis = NULL; 139 139 size_t count; 140 140 141 141 errno_t rc = get_wifi_list(&wifis, &count); 142 142 if (rc != EOK) { … … 144 144 return EINVAL; 145 145 } 146 146 147 147 printf("[Index]: [Service Name]\n"); 148 148 for (size_t i = 0; i < count; i++) { … … 154 154 return rc; 155 155 } 156 156 157 157 printf("%zu: %s\n", i, svc_name); 158 158 159 159 free(svc_name); 160 160 } 161 161 162 162 return EOK; 163 163 } … … 166 166 { 167 167 assert(ssid_start); 168 168 169 169 async_sess_t *sess = get_wifi_by_index(index); 170 170 if (sess == NULL) { … … 173 173 return EINVAL; 174 174 } 175 175 176 176 errno_t rc = ieee80211_disconnect(sess); 177 177 if(rc != EOK) { … … 181 181 printf("Error when disconnecting device: %s\n", 182 182 str_error(rc)); 183 184 return rc; 185 } 186 183 184 return rc; 185 } 186 187 187 rc = ieee80211_connect(sess, ssid_start, password); 188 188 if(rc != EOK) { … … 196 196 printf("Error when connecting to network: %s\n", 197 197 str_error(rc)); 198 199 return rc; 200 } 201 198 199 return rc; 200 } 201 202 202 // TODO: Wait for DHCP address? 203 203 204 204 printf("Successfully connected to network!\n"); 205 205 206 206 return EOK; 207 207 } … … 215 215 return EINVAL; 216 216 } 217 217 218 218 errno_t rc = ieee80211_disconnect(sess); 219 219 if (rc != EOK) { … … 225 225 printf("Error when disconnecting from network: %s\n", 226 226 str_error(rc)); 227 228 return rc; 229 } 230 227 228 return rc; 229 } 230 231 231 printf("Successfully disconnected.\n"); 232 232 233 233 return EOK; 234 234 } … … 242 242 return EINVAL; 243 243 } 244 244 245 245 ieee80211_scan_results_t scan_results; 246 246 errno_t rc = ieee80211_get_scan_results(sess, &scan_results, now); … … 251 251 printf("Failed to fetch scan results: %s\n", 252 252 str_error(rc)); 253 254 return rc; 255 } 256 253 254 return rc; 255 } 256 257 257 if (scan_results.length == 0) 258 258 return EOK; 259 259 260 260 printf("%16.16s %17s %4s %5s %5s %7s %7s\n", 261 261 "SSID", "MAC", "CHAN", "TYPE", "AUTH", "UNI-ALG", "GRP-ALG"); 262 262 263 263 for (uint8_t i = 0; i < scan_results.length; i++) { 264 264 ieee80211_scan_result_t result = scan_results.results[i]; 265 265 266 266 printf("%16.16s %17s %4d %5s %5s %7s %7s\n", 267 267 result.ssid, nic_addr_format(&result.bssid), … … 272 272 enum_name(ieee80211_security_alg_strs, result.security.group_alg)); 273 273 } 274 274 275 275 return EOK; 276 276 } … … 284 284 return 1; 285 285 } 286 286 287 287 rc = dhcp_init(); 288 288 if (rc != EOK) { … … 291 291 return 1; 292 292 } 293 293 294 294 if (argc == 2) { 295 295 if (!str_cmp(argv[1], "list")) … … 303 303 return EINVAL; 304 304 } 305 305 306 306 if (!str_cmp(argv[1], "scan")) { 307 307 bool now = false; … … 309 309 if (!str_cmp(argv[3], "-n")) 310 310 now = true; 311 311 312 312 return wifi_scan(index, now); 313 313 } else if (!str_cmp(argv[1], "connect")) { … … 316 316 if (argc > 4) 317 317 pass = argv[4]; 318 318 319 319 return wifi_connect(index, argv[3], pass); 320 320 } … … 322 322 return wifi_disconnect(index); 323 323 } 324 324 325 325 print_syntax(); 326 326 327 327 return EOK; 328 328 }
Note:
See TracChangeset
for help on using the changeset viewer.