Lines Matching refs:pos

66 	char *pos;
70 pos = val;
71 while (pos) {
72 if (*pos == '\0')
74 if (hwaddr_aton(pos, addr)) {
87 pos = os_strchr(pos, ' ');
88 if (pos)
89 pos++;
103 char *pos;
115 pos = val;
116 while (pos) {
117 if (*pos == '\0')
119 if (os_strncmp(pos, "bssid ", 6) == 0) {
121 pos += 6;
122 res = hwaddr_aton2(pos, addr);
127 "BSSID value '%s'", pos);
130 pos += res;
140 } else if (os_strncmp(pos, "ssid ", 5) == 0) {
142 pos += 5;
144 end = pos;
160 if ((end - pos) & 0x01 ||
161 end - pos > 2 * SSID_MAX_LEN ||
162 hexstr2bin(pos, ssid[ssid_count].ssid,
163 (end - pos) / 2) < 0) {
167 "SSID value '%s'", pos);
170 ssid[ssid_count].ssid_len = (end - pos) / 2;
175 pos = end;
178 "'%s'", pos);
184 pos = os_strchr(pos, ' ');
185 if (pos)
186 pos++;
226 static int wpas_ctrl_set_blob(struct wpa_supplicant *wpa_s, char *pos)
228 char *name = pos;
232 pos = os_strchr(pos, ' ');
233 if (pos == NULL)
235 *pos++ = '\0';
236 len = os_strlen(pos);
251 if (hexstr2bin(pos, blob->data, len / 2) < 0) {
268 char *pos;
277 pos = os_strstr(params, "freq=");
278 if (pos)
280 pos + 5);
364 char *pos;
368 pos = os_strchr(cmd, ':');
369 if (!pos)
371 pos++;
372 adjust_rssi = atoi(pos);
532 char *pos;
535 pos = os_strchr(value, ',');
536 if (pos == NULL)
538 pos++;
539 bk = atoi(pos);
540 pos = os_strchr(pos, ',');
541 if (pos == NULL)
543 pos++;
544 vi = atoi(pos);
545 pos = os_strchr(pos, ',');
546 if (pos == NULL)
548 pos++;
549 vo = atoi(pos);
849 char *pos, *end;
859 pos = os_strchr(cmd, ' ');
860 if (pos == NULL)
862 *pos++ = '\0';
864 oper_class = strtol(pos, &end, 10);
865 if (pos == end) {
871 pos = end;
872 freq_params.freq = atoi(pos);
880 const char *pos2 = os_strstr(pos, " " #str "="); \
893 freq_params.ht_enabled = !!os_strstr(pos, " ht");
894 freq_params.vht_enabled = !!os_strstr(pos, " vht");
1113 char *pos;
1116 pos = os_strchr(pin, ' ');
1117 if (pos) {
1118 *pos++ = '\0';
1119 timeout = atoi(pos);
1157 char *pos;
1162 for (pos = cmd, len = 0; *pos != '\0'; pos++) {
1163 if (*pos < '0' || *pos > '9')
1165 pin[len++] = *pos;
1220 char *pos;
1222 pos = os_strchr(cmd, ' ');
1223 if (pos)
1224 *pos++ = '\0';
1232 buf = wpas_wps_nfc_config_token(wpa_s, ndef, pos);
1277 struct wpa_supplicant *wpa_s, char *pos)
1285 freq = strstr(pos, " freq=");
1292 len = os_strlen(pos);
1300 if (hexstr2bin(pos, wpabuf_put(buf, len), len) < 0) {
1364 char *pos;
1367 pos = os_strchr(cmd, ' ');
1368 if (pos == NULL)
1370 *pos++ = '\0';
1379 if (os_strcmp(pos, "WPS") == 0 || os_strcmp(pos, "WPS-CR") == 0) {
1387 if (os_strcmp(pos, "P2P-CR") == 0) {
1447 char *pos, *pos2;
1450 pos = os_strchr(cmd, ' ');
1451 if (pos == NULL)
1453 *pos++ = '\0';
1462 pos2 = os_strchr(pos, ' ');
1465 if (os_strcmp(pos, "WPS") == 0 || os_strcmp(pos, "WPS-CR") == 0) {
1470 os_strcmp(pos, "WPS-CR") == 0, pos2);
1474 if (os_strcmp(pos, "P2P-CR") == 0) {
1479 if (os_strcmp(pos, "P2P-CR-TAG") == 0) {
1495 char *pos, *role, *type, *pos2;
1509 pos = os_strchr(role, ' ');
1510 if (pos == NULL) {
1514 *pos++ = '\0';
1516 type = pos;
1517 pos = os_strchr(type, ' ');
1518 if (pos == NULL) {
1522 *pos++ = '\0';
1524 pos2 = os_strchr(pos, ' ');
1531 len = os_strlen(pos);
1543 if (hexstr2bin(pos, wpabuf_put(req, len), len) < 0) {
1665 char *pos;
1671 pos = os_strchr(cmd, ' ');
1672 if (pos)
1673 *pos++ = '\0';
1681 if (pos)
1682 timeout = atoi(pos);
1698 if (pos == NULL)
1700 pin = pos;
1701 pos = os_strchr(pos, ' ');
1702 if (pos) {
1703 *pos++ = '\0';
1704 timeout = atoi(pos);
1722 char *uuid = cmd, *pin, *pos;
1728 pos = os_strchr(pin, ' ');
1729 if (pos) {
1730 *pos++ = '\0';
1731 if (hwaddr_aton(pos, addr_buf) == 0)
1870 char *pos, *id_pos;
1874 pos = os_strchr(rsp, '-');
1875 if (pos == NULL)
1877 *pos++ = '\0';
1878 id_pos = pos;
1879 pos = os_strchr(pos, ':');
1880 if (pos == NULL)
1882 *pos++ = '\0';
1886 (u8 *) pos, os_strlen(pos));
1896 pos);
1908 char *pos, *end, tmp[30];
1920 pos = buf;
1924 ret = os_snprintf(pos, end - pos, "bssid=" MACSTR "\n",
1926 if (os_snprintf_error(end - pos, ret))
1927 return pos - buf;
1928 pos += ret;
1929 ret = os_snprintf(pos, end - pos, "freq=%u\n",
1931 if (os_snprintf_error(end - pos, ret))
1932 return pos - buf;
1933 pos += ret;
1946 ret = os_snprintf(pos, end - pos, "ssid=%s\nid=%d\n",
1949 if (os_snprintf_error(end - pos, ret))
1950 return pos - buf;
1951 pos += ret;
1957 ret = os_snprintf(pos, end - pos,
1960 if (os_snprintf_error(end - pos, ret))
1961 return pos - buf;
1962 pos += ret;
1965 ret = os_snprintf(pos, end - pos,
1968 if (os_snprintf_error(end - pos, ret))
1969 return pos - buf;
1970 pos += ret;
1975 ret = os_snprintf(pos, end - pos,
1979 ret = os_snprintf(pos, end - pos,
1983 ret = os_snprintf(pos, end - pos,
1987 ret = os_snprintf(pos, end - pos,
1991 ret = os_snprintf(pos, end - pos,
1996 ret = os_snprintf(pos, end - pos,
2003 if (os_snprintf_error(end - pos, ret))
2004 return pos - buf;
2005 pos += ret;
2010 pos += ap_ctrl_iface_wpa_get_status(wpa_s, pos,
2011 end - pos,
2015 pos += wpa_sm_get_status(wpa_s->wpa, pos, end - pos, verbose);
2024 ret = os_snprintf(pos, end - pos, "sae_group=%d\n",
2026 if (os_snprintf_error(end - pos, ret))
2027 return pos - buf;
2028 pos += ret;
2032 ret = os_snprintf(pos, end - pos, "wpa_state=%s\n",
2034 if (os_snprintf_error(end - pos, ret))
2035 return pos - buf;
2036 pos += ret;
2040 ret = os_snprintf(pos, end - pos, "ip_address=%s\n", tmp);
2041 if (os_snprintf_error(end - pos, ret))
2042 return pos - buf;
2043 pos += ret;
2048 ret = os_snprintf(pos, end - pos, "p2p_device_address=" MACSTR
2050 if (os_snprintf_error(end - pos, ret))
2051 return pos - buf;
2052 pos += ret;
2056 ret = os_snprintf(pos, end - pos, "address=" MACSTR "\n",
2058 if (os_snprintf_error(end - pos, ret))
2059 return pos - buf;
2060 pos += ret;
2073 ret = os_snprintf(pos, end - pos, "hs20=%d\n", release);
2074 if (os_snprintf_error(end - pos, ret))
2075 return pos - buf;
2076 pos += ret;
2090 ret = os_snprintf(pos, end - pos,
2093 if (os_snprintf_error(end - pos, ret))
2094 return pos - buf;
2095 pos += ret;
2114 ret = os_snprintf(pos, end - pos, "home_sp=%s\n",
2116 if (os_snprintf_error(end - pos, ret))
2117 return pos - buf;
2118 pos += ret;
2135 ret = os_snprintf(pos, end - pos, "sp_type=%s\n", type);
2136 if (os_snprintf_error(end - pos, ret))
2137 return pos - buf;
2138 pos += ret;
2147 res = eapol_sm_get_status(wpa_s->eapol, pos, end - pos,
2150 pos += res;
2154 res = ieee802_1x_kay_get_status(wpa_s->kay, pos, end - pos);
2156 pos += res;
2161 char *start = pos;
2163 ret = os_snprintf(pos, end - pos, "eap_session_id=");
2164 if (os_snprintf_error(end - pos, ret))
2166 pos += ret;
2167 ret = wpa_snprintf_hex(pos, end - pos, sess_id, sess_id_len);
2170 pos += ret;
2171 ret = os_snprintf(pos, end - pos, "\n");
2172 if (os_snprintf_error(end - pos, ret))
2174 pos += ret;
2177 res = rsn_preauth_get_status(wpa_s->wpa, pos, end - pos, verbose);
2179 pos += res;
2185 ret = os_snprintf(pos, end - pos, "uuid=%s\n", uuid_str);
2186 if (os_snprintf_error(end - pos, ret))
2187 return pos - buf;
2188 pos += ret;
2219 return pos - buf;
2226 char *pos;
2232 pos = os_strchr(cmd, ' ');
2233 if (pos == NULL)
2235 *pos++ = '\0';
2237 wpa_printf(MSG_DEBUG, "CTRL_IFACE: id=%d bssid='%s'", id, pos);
2238 if (hwaddr_aton(pos, bssid)) {
2239 wpa_printf(MSG_DEBUG ,"CTRL_IFACE: invalid BSSID '%s'", pos);
2263 char *pos, *end;
2268 pos = buf;
2272 ret = os_snprintf(pos, end - pos, MACSTR "\n",
2274 if (os_snprintf_error(end - pos, ret))
2275 return pos - buf;
2276 pos += ret;
2279 return pos - buf;
2314 char *pos, *end, *stamp;
2319 pos = buf;
2321 ret = os_snprintf(pos, end - pos, "Current level: %s\n"
2325 if (os_snprintf_error(end - pos, ret))
2360 char *pos, *end, *prev;
2364 pos = buf;
2366 ret = os_snprintf(pos, end - pos,
2368 if (os_snprintf_error(end - pos, ret))
2369 return pos - buf;
2370 pos += ret;
2385 prev = pos;
2386 ret = os_snprintf(pos, end - pos, "%d\t%s",
2389 if (os_snprintf_error(end - pos, ret))
2391 pos += ret;
2393 ret = os_snprintf(pos, end - pos, "\t" MACSTR,
2396 ret = os_snprintf(pos, end - pos, "\tany");
2398 if (os_snprintf_error(end - pos, ret))
2400 pos += ret;
2401 ret = os_snprintf(pos, end - pos, "\t%s%s%s%s",
2409 if (os_snprintf_error(end - pos, ret))
2411 pos += ret;
2412 ret = os_snprintf(pos, end - pos, "\n");
2413 if (os_snprintf_error(end - pos, ret))
2415 pos += ret;
2420 return pos - buf;
2424 static char * wpa_supplicant_cipher_txt(char *pos, char *end, int cipher)
2427 ret = os_snprintf(pos, end - pos, "-");
2428 if (os_snprintf_error(end - pos, ret))
2429 return pos;
2430 pos += ret;
2431 ret = wpa_write_ciphers(pos, end, cipher, "+");
2433 return pos;
2434 pos += ret;
2435 return pos;
2439 static char * wpa_supplicant_ie_txt(char *pos, char *end, const char *proto,
2446 ret = os_snprintf(pos, end - pos, "[%s-", proto);
2447 if (os_snprintf_error(end - pos, ret))
2448 return pos;
2449 pos += ret;
2452 ret = os_snprintf(pos, end - pos, "?]");
2453 if (os_snprintf_error(end - pos, ret))
2454 return pos;
2455 pos += ret;
2456 return pos;
2459 start = pos;
2461 ret = os_snprintf(pos, end - pos, "%sEAP",
2462 pos == start ? "" : "+");
2463 if (os_snprintf_error(end - pos, ret))
2464 return pos;
2465 pos += ret;
2468 ret = os_snprintf(pos, end - pos, "%sPSK",
2469 pos == start ? "" : "+");
2470 if (os_snprintf_error(end - pos, ret))
2471 return pos;
2472 pos += ret;
2475 ret = os_snprintf(pos, end - pos, "%sNone",
2476 pos == start ? "" : "+");
2477 if (os_snprintf_error(end - pos, ret))
2478 return pos;
2479 pos += ret;
2482 ret = os_snprintf(pos, end - pos, "%sSAE",
2483 pos == start ? "" : "+");
2484 if (os_snprintf_error(end - pos, ret))
2485 return pos;
2486 pos += ret;
2490 ret = os_snprintf(pos, end - pos, "%sFT/EAP",
2491 pos == start ? "" : "+");
2492 if (os_snprintf_error(end - pos, ret))
2493 return pos;
2494 pos += ret;
2497 ret = os_snprintf(pos, end - pos, "%sFT/PSK",
2498 pos == start ? "" : "+");
2499 if (os_snprintf_error(end - pos, ret))
2500 return pos;
2501 pos += ret;
2504 ret = os_snprintf(pos, end - pos, "%sFT/SAE",
2505 pos == start ? "" : "+");
2506 if (os_snprintf_error(end - pos, ret))
2507 return pos;
2508 pos += ret;
2513 ret = os_snprintf(pos, end - pos, "%sEAP-SHA256",
2514 pos == start ? "" : "+");
2515 if (os_snprintf_error(end - pos, ret))
2516 return pos;
2517 pos += ret;
2520 ret = os_snprintf(pos, end - pos, "%sPSK-SHA256",
2521 pos == start ? "" : "+");
2522 if (os_snprintf_error(end - pos, ret))
2523 return pos;
2524 pos += ret;
2530 ret = os_snprintf(pos, end - pos, "%sEAP-SUITE-B",
2531 pos == start ? "" : "+");
2532 if (os_snprintf_error(end - pos, ret))
2533 return pos;
2534 pos += ret;
2540 ret = os_snprintf(pos, end - pos, "%sEAP-SUITE-B-192",
2541 pos == start ? "" : "+");
2542 if (os_snprintf_error(end - pos, ret))
2543 return pos;
2544 pos += ret;
2550 ret = os_snprintf(pos, end - pos, "%sFILS-SHA256",
2551 pos == start ? "" : "+");
2552 if (os_snprintf_error(end - pos, ret))
2553 return pos;
2554 pos += ret;
2557 ret = os_snprintf(pos, end - pos, "%sFILS-SHA384",
2558 pos == start ? "" : "+");
2559 if (os_snprintf_error(end - pos, ret))
2560 return pos;
2561 pos += ret;
2565 ret = os_snprintf(pos, end - pos, "%sFT-FILS-SHA256",
2566 pos == start ? "" : "+");
2567 if (os_snprintf_error(end - pos, ret))
2568 return pos;
2569 pos += ret;
2572 ret = os_snprintf(pos, end - pos, "%sFT-FILS-SHA384",
2573 pos == start ? "" : "+");
2574 if (os_snprintf_error(end - pos, ret))
2575 return pos;
2576 pos += ret;
2582 ret = os_snprintf(pos, end - pos, "%sOSEN",
2583 pos == start ? "" : "+");
2584 if (os_snprintf_error(end - pos, ret))
2585 return pos;
2586 pos += ret;
2589 pos = wpa_supplicant_cipher_txt(pos, end, data.pairwise_cipher);
2592 ret = os_snprintf(pos, end - pos, "-preauth");
2593 if (os_snprintf_error(end - pos, ret))
2594 return pos;
2595 pos += ret;
2598 ret = os_snprintf(pos, end - pos, "]");
2599 if (os_snprintf_error(end - pos, ret))
2600 return pos;
2601 pos += ret;
2603 return pos;
2609 char *pos, char *end,
2616 return pos;
2626 ret = os_snprintf(pos, end - pos, "%s", txt);
2627 if (!os_snprintf_error(end - pos, ret))
2628 pos += ret;
2630 return pos;
2636 char *pos, char *end,
2642 return wpa_supplicant_wps_ie_txt_buf(wpa_s, pos, end, wps_ie);
2644 return pos;
2654 char *pos, *end;
2667 pos = buf;
2670 ret = os_snprintf(pos, end - pos, MACSTR "\t%d\t%d\t",
2672 if (os_snprintf_error(end - pos, ret))
2674 pos += ret;
2677 pos = wpa_supplicant_ie_txt(pos, end, "WPA", ie, 2 + ie[1]);
2680 pos = wpa_supplicant_ie_txt(pos, end, mesh ? "RSN" : "WPA2",
2685 pos = wpa_supplicant_ie_txt(pos, end, "OSEN",
2687 pos = wpa_supplicant_wps_ie_txt(wpa_s, pos, end, bss);
2689 ret = os_snprintf(pos, end - pos, "[WEP]");
2690 if (os_snprintf_error(end - pos, ret))
2692 pos += ret;
2695 ret = os_snprintf(pos, end - pos, "[MESH]");
2696 if (os_snprintf_error(end - pos, ret))
2698 pos += ret;
2702 ret = os_snprintf(pos, end - pos, "[DMG]");
2703 if (os_snprintf_error(end - pos, ret))
2705 pos += ret;
2720 ret = os_snprintf(pos, end - pos, "%s", s);
2721 if (os_snprintf_error(end - pos, ret))
2723 pos += ret;
2726 ret = os_snprintf(pos, end - pos, "[IBSS]");
2727 if (os_snprintf_error(end - pos, ret))
2729 pos += ret;
2732 ret = os_snprintf(pos, end - pos, "[ESS]");
2733 if (os_snprintf_error(end - pos, ret))
2735 pos += ret;
2739 ret = os_snprintf(pos, end - pos, "[P2P]");
2740 if (os_snprintf_error(end - pos, ret))
2742 pos += ret;
2746 ret = os_snprintf(pos, end - pos, "[HS20]");
2747 if (os_snprintf_error(end - pos, ret))
2749 pos += ret;
2754 ret = os_snprintf(pos, end - pos, "[FILS]");
2755 if (os_snprintf_error(end - pos, ret))
2757 pos += ret;
2762 ret = os_snprintf(pos, end - pos, "[FST]");
2763 if (os_snprintf_error(end - pos, ret))
2765 pos += ret;
2769 ret = os_snprintf(pos, end - pos, "\t%s",
2771 if (os_snprintf_error(end - pos, ret))
2773 pos += ret;
2775 ret = os_snprintf(pos, end - pos, "\n");
2776 if (os_snprintf_error(end - pos, ret))
2778 pos += ret;
2780 return pos - buf;
2787 char *pos, *end;
2791 pos = buf;
2793 ret = os_snprintf(pos, end - pos, "bssid / frequency / signal level / "
2795 if (os_snprintf_error(end - pos, ret))
2796 return pos - buf;
2797 pos += ret;
2800 ret = wpa_supplicant_ctrl_iface_scan_result(wpa_s, bss, pos,
2801 end - pos);
2802 if (ret < 0 || ret >= end - pos)
2803 return pos - buf;
2804 pos += ret;
2807 return pos - buf;
2816 char *pos, ifname[IFNAMSIZ + 1];
2820 pos = os_strstr(cmd, "ifname=");
2821 if (pos) {
2822 pos += 7;
2823 os_strlcpy(ifname, pos, sizeof(ifname));
2936 char *pos;
2938 pos = os_strstr(cmd, " duration=");
2939 if (pos) {
2940 *pos = '\0';
2941 duration = atoi(pos + 10);
2960 char *pos;
2983 pos = os_strstr(cmd, " freq=");
2984 if (pos) {
2985 int *freqs = freq_range_to_channel_list(wpa_s, pos + 6);
3341 char *pos, *end;
3345 pos = buf;
3347 ret = os_snprintf(pos, end - pos,
3349 if (os_snprintf_error(end - pos, ret))
3350 return pos - buf;
3351 pos += ret;
3355 ret = os_snprintf(pos, end - pos, "%d\t%s\t%s\t%s\t%s\n",
3360 if (os_snprintf_error(end - pos, ret))
3361 return pos - buf;
3362 pos += ret;
3367 return pos - buf;
3638 char *pos, *end;
3642 pos = buf;
3643 end = pos + buflen;
3656 ret = os_snprintf(pos, end - pos, "%s%s",
3657 pos == buf ? "" : " ",
3659 if (os_snprintf_error(end - pos, ret))
3660 return pos - buf;
3661 pos += ret;
3665 return pos - buf;
3674 char *pos, *end;
3678 pos = buf;
3679 end = pos + buflen;
3692 ret = os_snprintf(pos, end - pos, "%s%s",
3693 pos == buf ? "" : " ",
3695 if (os_snprintf_error(end - pos, ret))
3696 return pos - buf;
3697 pos += ret;
3701 return pos - buf;
3710 char *pos, *end;
3713 pos = buf;
3714 end = pos + buflen;
3721 ret = os_snprintf(pos, end - pos, "%s%s",
3722 pos == buf ? "" : " ",
3724 if (os_snprintf_error(end - pos, ret))
3725 return pos - buf;
3726 pos += ret;
3730 return pos - buf;
3739 char *pos, *end;
3742 pos = buf;
3743 end = pos + buflen;
3755 ret = os_snprintf(pos, end - pos, "NONE IEEE8021X");
3756 if (os_snprintf_error(end - pos, ret))
3757 return pos - buf;
3758 pos += ret;
3762 ret = os_snprintf(pos, end - pos, " WPA-EAP");
3763 if (os_snprintf_error(end - pos, ret))
3764 return pos - buf;
3765 pos += ret;
3770 ret = os_snprintf(pos, end - pos, " WPA-PSK");
3771 if (os_snprintf_error(end - pos, ret))
3772 return pos - buf;
3773 pos += ret;
3777 ret = os_snprintf(pos, end - pos, " WPA-NONE");
3778 if (os_snprintf_error(end - pos, ret))
3779 return pos - buf;
3780 pos += ret;
3785 ret = os_snprintf(pos, end - pos, " WPA-EAP-SUITE-B");
3786 if (os_snprintf_error(end - pos, ret))
3787 return pos - buf;
3788 pos += ret;
3793 ret = os_snprintf(pos, end - pos, " WPA-EAP-SUITE-B-192");
3794 if (os_snprintf_error(end - pos, ret))
3795 return pos - buf;
3796 pos += ret;
3800 return pos - buf;
3809 char *pos, *end;
3812 pos = buf;
3813 end = pos + buflen;
3826 ret = os_snprintf(pos, end - pos, "%sRSN",
3827 pos == buf ? "" : " ");
3828 if (os_snprintf_error(end - pos, ret))
3829 return pos - buf;
3830 pos += ret;
3835 ret = os_snprintf(pos, end - pos, "%sWPA",
3836 pos == buf ? "" : " ");
3837 if (os_snprintf_error(end - pos, ret))
3838 return pos - buf;
3839 pos += ret;
3842 return pos - buf;
3852 char *pos, *end;
3855 pos = buf;
3856 end = pos + buflen;
3868 ret = os_snprintf(pos, end - pos, "%sOPEN",
3869 pos == buf ? "" : " ");
3870 if (os_snprintf_error(end - pos, ret))
3871 return pos - buf;
3872 pos += ret;
3876 ret = os_snprintf(pos, end - pos, "%sSHARED",
3877 pos == buf ? "" : " ");
3878 if (os_snprintf_error(end - pos, ret))
3879 return pos - buf;
3880 pos += ret;
3884 ret = os_snprintf(pos, end - pos, "%sLEAP",
3885 pos == buf ? "" : " ");
3886 if (os_snprintf_error(end - pos, ret))
3887 return pos - buf;
3888 pos += ret;
3893 ret = os_snprintf(pos, end - pos, "%sSAE",
3894 pos == buf ? "" : " ");
3895 if (os_snprintf_error(end - pos, ret))
3896 return pos - buf;
3897 pos += ret;
3901 return pos - buf;
3910 char *pos, *end;
3913 pos = buf;
3914 end = pos + buflen;
3926 ret = os_snprintf(pos, end - pos, "%sIBSS",
3927 pos == buf ? "" : " ");
3928 if (os_snprintf_error(end - pos, ret))
3929 return pos - buf;
3930 pos += ret;
3934 ret = os_snprintf(pos, end - pos, "%sAP",
3935 pos == buf ? "" : " ");
3936 if (os_snprintf_error(end - pos, ret))
3937 return pos - buf;
3938 pos += ret;
3943 ret = os_snprintf(pos, end - pos, "%sMESH",
3944 pos == buf ? "" : " ");
3945 if (os_snprintf_error(end - pos, ret))
3946 return pos - buf;
3947 pos += ret;
3951 return pos - buf;
3960 char *pos, *end, *hmode;
3962 pos = buf;
3963 end = pos + buflen;
3982 ret = os_snprintf(pos, end - pos, "Mode[%s] Channels:", hmode);
3983 if (os_snprintf_error(end - pos, ret))
3984 return pos - buf;
3985 pos += ret;
3990 ret = os_snprintf(pos, end - pos, " %d", chnl[i].chan);
3991 if (os_snprintf_error(end - pos, ret))
3992 return pos - buf;
3993 pos += ret;
3995 ret = os_snprintf(pos, end - pos, "\n");
3996 if (os_snprintf_error(end - pos, ret))
3997 return pos - buf;
3998 pos += ret;
4001 return pos - buf;
4010 char *pos, *end, *hmode;
4012 pos = buf;
4013 end = pos + buflen;
4032 ret = os_snprintf(pos, end - pos, "Mode[%s] Channels:\n",
4034 if (os_snprintf_error(end - pos, ret))
4035 return pos - buf;
4036 pos += ret;
4041 ret = os_snprintf(pos, end - pos, " %d = %d MHz%s%s\n",
4048 if (os_snprintf_error(end - pos, ret))
4049 return pos - buf;
4050 pos += ret;
4052 ret = os_snprintf(pos, end - pos, "\n");
4053 if (os_snprintf_error(end - pos, ret))
4054 return pos - buf;
4055 pos += ret;
4058 return pos - buf;
4176 static char * anqp_add_hex(char *pos, char *end, const char *title,
4179 char *start = pos;
4187 ret = os_snprintf(pos, end - pos, "%s=", title);
4188 if (os_snprintf_error(end - pos, ret))
4190 pos += ret;
4194 ret = os_snprintf(pos, end - pos, "%02x", *d++);
4195 if (os_snprintf_error(end - pos, ret))
4197 pos += ret;
4200 ret = os_snprintf(pos, end - pos, "\n");
4201 if (os_snprintf_error(end - pos, ret))
4203 pos += ret;
4205 return pos;
4211 static int print_fils_indication(struct wpa_bss *bss, char *pos, char *end)
4213 char *start = pos;
4228 ret = os_snprintf(pos, end - pos, "fils_info=%04x\n", info);
4229 if (os_snprintf_error(end - pos, ret))
4231 pos += ret;
4237 ret = os_snprintf(pos, end - pos, "fils_cache_id=%02x%02x\n",
4239 if (os_snprintf_error(end - pos, ret))
4241 pos += ret;
4249 ret = os_snprintf(pos, end - pos, "fils_hessid=" MACSTR "\n",
4251 if (os_snprintf_error(end - pos, ret))
4253 pos += ret;
4261 ret = os_snprintf(pos, end - pos, "fils_realms=");
4262 if (os_snprintf_error(end - pos, ret))
4264 pos += ret;
4266 ret = wpa_snprintf_hex(pos, end - pos, ie, realms * 2);
4269 pos += ret;
4271 ret = os_snprintf(pos, end - pos, "\n");
4272 if (os_snprintf_error(end - pos, ret))
4274 pos += ret;
4277 return pos - start;
4287 char *pos, *end;
4290 pos = buf;
4294 ret = os_snprintf(pos, end - pos, "id=%u\n", bss->id);
4295 if (os_snprintf_error(end - pos, ret))
4297 pos += ret;
4301 ret = os_snprintf(pos, end - pos, "bssid=" MACSTR "\n",
4303 if (os_snprintf_error(end - pos, ret))
4305 pos += ret;
4309 ret = os_snprintf(pos, end - pos, "freq=%d\n", bss->freq);
4310 if (os_snprintf_error(end - pos, ret))
4312 pos += ret;
4316 ret = os_snprintf(pos, end - pos, "beacon_int=%d\n",
4318 if (os_snprintf_error(end - pos, ret))
4320 pos += ret;
4324 ret = os_snprintf(pos, end - pos, "capabilities=0x%04x\n",
4326 if (os_snprintf_error(end - pos, ret))
4328 pos += ret;
4332 ret = os_snprintf(pos, end - pos, "qual=%d\n", bss->qual);
4333 if (os_snprintf_error(end - pos, ret))
4335 pos += ret;
4339 ret = os_snprintf(pos, end - pos, "noise=%d\n", bss->noise);
4340 if (os_snprintf_error(end - pos, ret))
4342 pos += ret;
4346 ret = os_snprintf(pos, end - pos, "level=%d\n", bss->level);
4347 if (os_snprintf_error(end - pos, ret))
4349 pos += ret;
4353 ret = os_snprintf(pos, end - pos, "tsf=%016llu\n",
4355 if (os_snprintf_error(end - pos, ret))
4357 pos += ret;
4364 ret = os_snprintf(pos, end - pos, "age=%d\n",
4366 if (os_snprintf_error(end - pos, ret))
4368 pos += ret;
4372 ret = os_snprintf(pos, end - pos, "ie=");
4373 if (os_snprintf_error(end - pos, ret))
4375 pos += ret;
4379 ret = os_snprintf(pos, end - pos, "%02x", *ie++);
4380 if (os_snprintf_error(end - pos, ret))
4382 pos += ret;
4385 ret = os_snprintf(pos, end - pos, "\n");
4386 if (os_snprintf_error(end - pos, ret))
4388 pos += ret;
4392 ret = os_snprintf(pos, end - pos, "flags=");
4393 if (os_snprintf_error(end - pos, ret))
4395 pos += ret;
4401 pos = wpa_supplicant_ie_txt(pos, end, "WPA", ie,
4405 pos = wpa_supplicant_ie_txt(pos, end,
4410 pos = wpa_supplicant_ie_txt(pos, end, "OSEN",
4412 pos = wpa_supplicant_wps_ie_txt(wpa_s, pos, end, bss);
4415 ret = os_snprintf(pos, end - pos, "[WEP]");
4416 if (os_snprintf_error(end - pos, ret))
4418 pos += ret;
4422 ret = os_snprintf(pos, end - pos, "[MESH]");
4423 if (os_snprintf_error(end - pos, ret))
4425 pos += ret;
4430 ret = os_snprintf(pos, end - pos, "[DMG]");
4431 if (os_snprintf_error(end - pos, ret))
4433 pos += ret;
4448 ret = os_snprintf(pos, end - pos, "%s", s);
4449 if (os_snprintf_error(end - pos, ret))
4451 pos += ret;
4454 ret = os_snprintf(pos, end - pos, "[IBSS]");
4455 if (os_snprintf_error(end - pos, ret))
4457 pos += ret;
4460 ret = os_snprintf(pos, end - pos, "[ESS]");
4461 if (os_snprintf_error(end - pos, ret))
4463 pos += ret;
4468 ret = os_snprintf(pos, end - pos, "[P2P]");
4469 if (os_snprintf_error(end - pos, ret))
4471 pos += ret;
4475 ret = os_snprintf(pos, end - pos, "[HS20]");
4476 if (os_snprintf_error(end - pos, ret))
4478 pos += ret;
4483 ret = os_snprintf(pos, end - pos, "[FILS]");
4484 if (os_snprintf_error(end - pos, ret))
4486 pos += ret;
4490 ret = os_snprintf(pos, end - pos, "\n");
4491 if (os_snprintf_error(end - pos, ret))
4493 pos += ret;
4497 ret = os_snprintf(pos, end - pos, "ssid=%s\n",
4499 if (os_snprintf_error(end - pos, ret))
4501 pos += ret;
4507 ret = wpas_wps_scan_result_text(ie, bss->ie_len, pos, end);
4508 if (ret >= end - pos)
4511 pos += ret;
4518 ret = wpas_p2p_scan_result_text(ie, bss->ie_len, pos, end);
4519 if (ret >= end - pos)
4522 pos += ret;
4533 ret = os_snprintf(pos, end - pos, "wfd_subelems=");
4534 if (os_snprintf_error(end - pos, ret)) {
4538 pos += ret;
4540 pos += wpa_snprintf_hex(pos, end - pos,
4545 ret = os_snprintf(pos, end - pos, "\n");
4546 if (os_snprintf_error(end - pos, ret))
4548 pos += ret;
4558 pos = anqp_add_hex(pos, end, "anqp_capability_list",
4560 pos = anqp_add_hex(pos, end, "anqp_venue_name",
4562 pos = anqp_add_hex(pos, end, "anqp_network_auth_type",
4564 pos = anqp_add_hex(pos, end, "anqp_roaming_consortium",
4566 pos = anqp_add_hex(pos, end, "anqp_ip_addr_type_availability",
4568 pos = anqp_add_hex(pos, end, "anqp_nai_realm",
4570 pos = anqp_add_hex(pos, end, "anqp_3gpp", anqp->anqp_3gpp);
4571 pos = anqp_add_hex(pos, end, "anqp_domain_name",
4573 pos = anqp_add_hex(pos, end, "anqp_fils_realm_info",
4576 pos = anqp_add_hex(pos, end, "hs20_capability_list",
4578 pos = anqp_add_hex(pos, end, "hs20_operator_friendly_name",
4580 pos = anqp_add_hex(pos, end, "hs20_wan_metrics",
4582 pos = anqp_add_hex(pos, end, "hs20_connection_capability",
4584 pos = anqp_add_hex(pos, end, "hs20_operating_class",
4586 pos = anqp_add_hex(pos, end, "hs20_osu_providers_list",
4596 pos = anqp_add_hex(pos, end, title, elem->payload);
4604 ret = wpas_mesh_scan_result_text(ie, bss->ie_len, pos, end);
4605 if (ret >= end - pos)
4608 pos += ret;
4613 ret = os_snprintf(pos, end - pos, "snr=%d\n", bss->snr);
4614 if (os_snprintf_error(end - pos, ret))
4616 pos += ret;
4620 ret = os_snprintf(pos, end - pos, "est_throughput=%d\n",
4622 if (os_snprintf_error(end - pos, ret))
4624 pos += ret;
4629 ret = fst_ctrl_iface_mb_info(bss->bssid, pos, end - pos);
4630 if (ret < 0 || ret >= end - pos)
4632 pos += ret;
4637 ret = os_snprintf(pos, end - pos, "update_idx=%u\n",
4639 if (os_snprintf_error(end - pos, ret))
4641 pos += ret;
4645 ret = os_snprintf(pos, end - pos, "beacon_ie=");
4646 if (os_snprintf_error(end - pos, ret))
4648 pos += ret;
4653 ret = os_snprintf(pos, end - pos, "%02x", *ie++);
4654 if (os_snprintf_error(end - pos, ret))
4656 pos += ret;
4659 ret = os_snprintf(pos, end - pos, "\n");
4660 if (os_snprintf_error(end - pos, ret))
4662 pos += ret;
4667 ret = print_fils_indication(bss, pos, end);
4670 pos += ret;
4675 ret = os_snprintf(pos, end - pos, "====\n");
4676 if (os_snprintf_error(end - pos, ret))
4678 pos += ret;
4681 return pos - buf;
4949 char *pos;
4965 pos = os_strstr(cmd, "dev_id=");
4966 if (pos) {
4967 pos += 7;
4968 if (hwaddr_aton(pos, dev_id))
4973 pos = os_strstr(cmd, "dev_type=");
4974 if (pos) {
4975 pos += 9;
4976 if (wps_dev_type_str2bin(pos, dev_type) < 0)
4981 pos = os_strstr(cmd, "delay=");
4982 if (pos) {
4983 pos += 6;
4984 search_delay = atoi(pos);
4988 pos = os_strstr(cmd, "freq=");
4989 if (pos) {
4990 pos += 5;
4991 freq = atoi(pos);
4997 pos = os_strstr(cmd, " seek=");
4998 if (pos)
4999 pos += 6;
5000 while (pos && seek_count < P2P_MAX_QUERY_HASH + 1) {
5003 _seek[seek_count++] = pos;
5005 term = os_strchr(pos, ' ');
5009 pos = os_strstr(term + 1, "seek=");
5010 if (pos)
5011 pos += 5;
5023 static int p2ps_ctrl_parse_cpt_priority(const char *pos, u8 *cpt)
5031 for (i = 0; (token = cstr_token(pos, ": \t", &last)); i++) {
5068 char *pos;
5075 pos = os_strstr(cmd, "info=");
5076 if (pos) {
5077 pos += 5;
5078 info_len = os_strlen(pos);
5083 info_len = utf8_unescape(pos, info_len,
5102 pos = os_strstr(cmd, "status=");
5103 if (pos)
5104 p2ps_prov->status = atoi(pos + 7);
5108 pos = os_strstr(cmd, "adv_id=");
5109 if (!pos || sscanf(pos + 7, "%llx", &val) != 1 || val > 0xffffffffULL)
5113 pos = os_strstr(cmd, "method=");
5114 if (pos)
5115 p2ps_prov->method = strtol(pos + 7, NULL, 16);
5119 pos = os_strstr(cmd, "session=");
5120 if (!pos || sscanf(pos + 8, "%llx", &val) != 1 || val > 0xffffffffULL)
5124 pos = os_strstr(cmd, "adv_mac=");
5125 if (!pos || hwaddr_aton(pos + 8, p2ps_prov->adv_mac))
5128 pos = os_strstr(cmd, "session_mac=");
5129 if (!pos || hwaddr_aton(pos + 12, p2ps_prov->session_mac))
5132 pos = os_strstr(cmd, "cpt=");
5133 if (pos) {
5134 if (p2ps_ctrl_parse_cpt_priority(pos + 4,
5145 pos = os_strstr(cmd, "tstCap=");
5146 if (pos) {
5147 role = strtol(pos + 7, NULL, 16);
5149 pos = os_strstr(cmd, "role=");
5150 if (pos) {
5151 role = strtol(pos + 5, NULL, 16);
5171 char *pos;
5180 pos = cmd + 17;
5181 if (*pos != ' ')
5184 p2ps_prov = p2p_parse_asp_provision_cmd(pos);
5202 char *pos;
5212 pos = cmd + 17;
5213 if (*pos != ' ')
5216 p2ps_prov = p2p_parse_asp_provision_cmd(pos);
5255 char *pos, *pos2;
5287 pos = cmd + 17;
5288 if (*pos != ' ')
5290 pos++;
5292 persistent_group = os_strstr(pos, " persistent") != NULL;
5293 pos2 = os_strstr(pos, " persistent=");
5306 join = os_strstr(pos, " join") != NULL;
5307 auth = os_strstr(pos, " auth") != NULL;
5308 automatic = os_strstr(pos, " auto") != NULL;
5309 pd = os_strstr(pos, " provdisc") != NULL;
5314 pos2 = os_strstr(pos, " go_intent=");
5322 pos2 = os_strstr(pos, " freq=");
5330 pos2 = os_strstr(pos, " freq2=");
5334 pos2 = os_strstr(pos, " max_oper_chwidth=");
5342 pos2 = os_strstr(pos, " ssid=");
5358 if (os_strncmp(pos, "pin", 3) == 0) {
5361 } else if (os_strncmp(pos, "pbc", 3) == 0) {
5363 } else if (os_strstr(pos, "p2ps") != NULL) {
5366 pin = pos;
5367 pos = os_strchr(pin, ' ');
5369 if (pos) {
5370 *pos++ = '\0';
5371 if (os_strncmp(pos, "display", 7) == 0)
5422 char *pos;
5430 pos = cmd + 17;
5431 if (*pos != ' ')
5433 pos++;
5435 if (os_strstr(pos, " join") != NULL)
5437 else if (os_strstr(pos, " auto") != NULL)
5440 return wpas_p2p_prov_disc(wpa_s, addr, pos, use, NULL);
5465 char *pos;
5474 pos = cmd + 17;
5475 if (*pos != ' ')
5477 pos++;
5479 if (os_strncmp(pos, "upnp ", 5) == 0) {
5481 pos += 5;
5482 if (hexstr2bin(pos, &version, 1) < 0)
5484 pos += 2;
5485 if (*pos != ' ')
5487 pos++;
5488 ref = wpas_p2p_sd_request_upnp(wpa_s, dst, version, pos);
5490 } else if (os_strncmp(pos, "wifi-display ", 13) == 0) {
5491 ref = wpas_p2p_sd_request_wifi_display(wpa_s, dst, pos + 13);
5493 } else if (os_strncmp(pos, "asp ", 4) == 0) {
5498 pos += 4;
5499 if (sscanf(pos, "%x", &id) != 1 || id > 0xff)
5502 pos = os_strchr(pos, ' ');
5503 if (pos == NULL || pos[1] == '\0' || pos[1] == ' ')
5506 svc_str = pos + 1;
5508 pos = os_strchr(svc_str, ' ');
5510 if (pos)
5511 *pos++ = '\0';
5514 if (pos && pos[0] && pos[0] != ' ') {
5515 len = os_strlen(pos);
5518 len = utf8_unescape(pos, len, pos, len);
5522 svc_info = pos;
5528 len = os_strlen(pos);
5535 if (hexstr2bin(pos, wpabuf_put(tlvs, len), len) < 0) {
5570 char *pos, *pos2;
5573 pos = os_strchr(cmd, ' ');
5574 if (pos == NULL)
5576 *pos++ = '\0';
5581 if (hwaddr_aton(pos, dst))
5583 pos += 17;
5584 if (*pos != ' ')
5586 pos++;
5588 pos2 = os_strchr(pos, ' ');
5592 dialog_token = atoi(pos);
5625 char *pos;
5629 pos = os_strchr(cmd, ' ');
5630 if (pos == NULL)
5632 *pos++ = '\0';
5646 len = os_strlen(pos);
5657 if (hexstr2bin(pos, wpabuf_put(resp, len), len) < 0) {
5674 char *pos;
5677 pos = os_strchr(cmd, ' ');
5678 if (pos == NULL)
5680 *pos++ = '\0';
5685 return wpas_p2p_service_add_upnp(wpa_s, version, pos);
5692 char *pos;
5699 pos = os_strchr(cmd, ' ');
5700 if (pos == NULL)
5702 *pos++ = '\0';
5718 cmd = pos;
5719 pos = os_strchr(cmd, ' ');
5720 if (pos == NULL)
5722 *pos++ = '\0';
5738 if (sscanf(pos, "%x", &svc_state) != 1 || svc_state > 0xff)
5741 pos = os_strchr(pos, ' ');
5742 if (pos == NULL)
5746 pos++;
5747 if (sscanf(pos, "%x", &config_methods) != 1)
5754 pos = os_strchr(pos, ' ');
5755 if (pos == NULL)
5758 pos++;
5759 adv_str = pos;
5762 if (!pos[0] || pos[0] == ' ')
5766 pos = os_strchr(pos, ' ');
5767 if (pos != NULL)
5768 *pos++ = '\0';
5770 cpt_prio_str = (pos && pos[0]) ? os_strstr(pos, "cpt=") : NULL;
5772 pos = os_strchr(pos, ' ');
5773 if (pos != NULL)
5774 *pos++ = '\0';
5784 if (pos && pos[0]) {
5789 svc_info = os_strstr(pos, "svc_info='");
5806 char *pos;
5808 pos = os_strchr(cmd, ' ');
5809 if (pos == NULL)
5811 *pos++ = '\0';
5814 return p2p_ctrl_service_add_bonjour(wpa_s, pos);
5816 return p2p_ctrl_service_add_upnp(wpa_s, pos);
5818 return p2p_ctrl_service_add_asp(wpa_s, 0, pos);
5851 char *pos;
5854 pos = os_strchr(cmd, ' ');
5855 if (pos == NULL)
5857 *pos++ = '\0';
5862 return wpas_p2p_service_del_upnp(wpa_s, version, pos);
5884 char *pos;
5886 pos = os_strchr(cmd, ' ');
5887 if (pos == NULL)
5889 *pos++ = '\0';
5892 return p2p_ctrl_service_del_bonjour(wpa_s, pos);
5894 return p2p_ctrl_service_del_upnp(wpa_s, pos);
5896 return p2p_ctrl_service_del_asp(wpa_s, pos);
5904 char *pos;
5906 pos = os_strchr(cmd, ' ');
5907 if (pos == NULL)
5909 *pos++ = '\0';
5912 return p2p_ctrl_service_add_asp(wpa_s, 1, pos);
5934 char *pos;
5942 pos = os_strstr(cmd, " peer=");
5943 if (pos) {
5944 pos += 6;
5945 if (hwaddr_aton(pos, peer))
5957 pos = os_strstr(cmd, " freq=");
5958 if (pos) {
5959 pos += 6;
5960 freq = atoi(pos);
5965 pos = os_strstr(cmd, " pref=");
5966 if (pos) {
5967 pos += 6;
5968 pref_freq = atoi(pos);
5977 pos = os_strstr(cmd, "freq2=");
5978 if (pos)
5979 freq2 = atoi(pos + 6);
5981 pos = os_strstr(cmd, " max_oper_chwidth=");
5982 if (pos)
5983 chwidth = atoi(pos + 18);
5996 char *pos;
5999 pos = os_strstr(cmd, " peer=");
6000 if (!pos)
6003 *pos = '\0';
6004 pos += 6;
6005 if (hwaddr_aton(pos, peer)) {
6006 wpa_printf(MSG_DEBUG, "P2P: Invalid MAC address '%s'", pos);
6010 pos = os_strstr(pos, " go_dev_addr=");
6011 if (pos) {
6012 pos += 13;
6013 if (hwaddr_aton(pos, go_dev_addr)) {
6015 pos);
6142 char *pos, *end;
6179 pos = buf;
6182 res = os_snprintf(pos, end - pos, MACSTR "\n"
6205 if (os_snprintf_error(end - pos, res))
6206 return pos - buf;
6207 pos += res;
6213 res = os_snprintf(pos, end - pos, "sec_dev_type=%s\n",
6216 if (os_snprintf_error(end - pos, res))
6217 return pos - buf;
6218 pos += res;
6223 res = os_snprintf(pos, end - pos, "persistent=%d\n", ssid->id);
6224 if (os_snprintf_error(end - pos, res))
6225 return pos - buf;
6226 pos += res;
6229 res = p2p_get_peer_info_txt(info, pos, end - pos);
6231 return pos - buf;
6232 pos += res;
6235 res = os_snprintf(pos, end - pos, "vendor_elems=");
6236 if (os_snprintf_error(end - pos, res))
6237 return pos - buf;
6238 pos += res;
6240 pos += wpa_snprintf_hex(pos, end - pos,
6244 res = os_snprintf(pos, end - pos, "\n");
6245 if (os_snprintf_error(end - pos, res))
6246 return pos - buf;
6247 pos += res;
6250 return pos - buf;
6301 char *pos;
6305 pos = os_strchr(param, ' ');
6306 op_class = pos ? atoi(pos) : 81;
6318 char *pos;
6322 pos = os_strchr(param, ',');
6323 if (pos == NULL)
6325 pos++;
6326 start = atoi(pos);
6327 pos = os_strchr(pos, ',');
6328 if (pos == NULL)
6330 pos++;
6331 duration = atoi(pos);
6408 char *pos;
6411 pos = os_strchr(param, ',');
6412 if (pos == NULL)
6414 pos++;
6415 bk = atoi(pos);
6416 pos = os_strchr(pos, ',');
6417 if (pos == NULL)
6419 pos++;
6420 vi = atoi(pos);
6421 pos = os_strchr(pos, ',');
6422 if (pos == NULL)
6424 pos++;
6425 vo = atoi(pos);
6447 char *pos;
6449 pos = param;
6451 min_disc_int = atoi(pos);
6452 pos = os_strchr(pos, ' ');
6453 if (pos == NULL)
6455 *pos++ = '\0';
6457 max_disc_int = atoi(pos);
6458 pos = os_strchr(pos, ' ');
6459 if (pos == NULL)
6461 *pos++ = '\0';
6463 max_disc_tu = atoi(pos);
6518 char *pos, *pos2;
6522 pos = os_strchr(cmd, ' ');
6523 if (pos == NULL)
6525 *pos++ = '\0';
6528 pos2 = os_strchr(pos, ' ');
6531 int1 = atoi(pos);
6536 pos = os_strchr(pos2, ' ');
6537 if (pos == NULL)
6539 *pos++ = '\0';
6541 int2 = atoi(pos);
6550 char *pos;
6554 pos = os_strchr(cmd, ' ');
6555 if (pos == NULL)
6557 *pos++ = '\0';
6559 interval = atoi(pos);
6568 const char *pos;
6572 pos = cmd;
6573 if (os_strncmp(pos, "iface=", 6) == 0) {
6575 pos += 6;
6577 if (hwaddr_aton(pos, peer))
6647 char *pos;
6651 pos = os_strstr(param, "freq=");
6652 if (pos) {
6653 freqs = freq_range_to_channel_list(wpa_s, pos + 5);
6711 char *pos;
6721 pos = dst + used;
6722 if (*pos == ' ')
6723 pos++;
6725 if (os_strncmp(pos, "hs20:", 5) == 0) {
6727 int num = atoi(pos + 5);
6734 } else if (os_strncmp(pos, "mbo:", 4) == 0) {
6736 int num = atoi(pos + 4);
6744 id[num_id] = atoi(pos);
6748 pos = os_strchr(pos + 1, ',');
6749 if (pos == NULL)
6751 pos++;
6767 char *pos, *end;
6774 pos = cmd + used;
6775 while (*pos == ' ')
6776 pos++;
6779 end = os_strchr(pos, ' ');
6781 len = end - pos;
6783 len = os_strlen(pos);
6792 if (hexstr2bin(pos, wpabuf_put(advproto, len), len) < 0)
6797 pos = end + 1;
6798 while (*pos == ' ')
6799 pos++;
6801 len = os_strlen(pos);
6811 if (hexstr2bin(pos, wpabuf_put(query, len), len) < 0)
6832 char *pos;
6841 pos = cmd + used;
6842 while (*pos == ' ')
6843 pos++;
6844 dialog_token = atoi(pos);
6861 pos = os_strchr(pos, ' ');
6862 if (pos) {
6863 start = atoi(pos);
6866 pos = os_strchr(pos, ',');
6867 if (pos == NULL)
6869 pos++;
6870 requested_len = atoi(pos);
6906 char *pos;
6912 pos = dst + used;
6913 if (*pos == ' ')
6914 pos++;
6916 int num = atoi(pos);
6920 pos = os_strchr(pos + 1, ',');
6921 if (pos == NULL)
6923 pos++;
7111 char *pos;
7122 pos = os_strstr(cmd, " interval=");
7123 if (pos)
7124 intval = atoi(pos + 10);
7126 pos = os_strstr(cmd, " tfs_req=");
7127 if (pos) {
7130 pos += 9;
7131 end = os_strchr(pos, ' ');
7133 len = end - pos;
7135 len = os_strlen(pos);
7142 if (hexstr2bin(pos, wpabuf_put(tfs_req, len), len) < 0) {
7190 char *pos, *end;
7196 pos = buf;
7199 ret = os_snprintf(pos, end - pos, "RSSI=%d\nLINKSPEED=%d\n"
7203 if (os_snprintf_error(end - pos, ret))
7205 pos += ret;
7208 ret = os_snprintf(pos, end - pos, "WIDTH=%s\n",
7210 if (os_snprintf_error(end - pos, ret))
7212 pos += ret;
7216 ret = os_snprintf(pos, end - pos,
7219 if (os_snprintf_error(end - pos, ret))
7221 pos += ret;
7225 ret = os_snprintf(pos, end - pos,
7227 if (os_snprintf_error(end - pos, ret))
7229 pos += ret;
7233 ret = os_snprintf(pos, end - pos,
7235 if (os_snprintf_error(end - pos, ret))
7237 pos += ret;
7240 return pos - buf;
7247 const char *pos;
7256 pos = os_strstr(cmd, "THRESHOLD=");
7257 if (pos)
7258 threshold = atoi(pos + 10);
7259 pos = os_strstr(cmd, "HYSTERESIS=");
7260 if (pos)
7261 hysteresis = atoi(pos + 11);
7272 char *pos = wpa_s->get_pref_freq_list_override;
7279 while (pos) {
7280 if (atoi(pos) == (int) if_type)
7282 pos = os_strchr(pos, ' ');
7283 if (pos)
7284 pos++;
7286 if (!pos)
7288 pos = os_strchr(pos, ':');
7289 if (!pos)
7291 pos++;
7292 end = os_strchr(pos, ' ');
7293 while (pos && (!end || pos < end) && count < *num) {
7294 freq_list[count++] = atoi(pos);
7295 pos = os_strchr(pos, ',');
7296 if (pos)
7297 pos++;
7312 char *pos, *end;
7314 pos = buf;
7342 ret = os_snprintf(pos, end - pos, "%s%u",
7344 if (os_snprintf_error(end - pos, ret))
7346 pos += ret;
7349 return pos - buf;
7357 char *pos, *end;
7364 pos = buf + ret;
7369 ret = os_snprintf(pos, end - pos, "%s\n",
7371 if (os_snprintf_error(end - pos, ret))
7373 pos += ret;
7377 return pos - buf;
7430 char *pos;
7437 vendor_id = strtoul(cmd, &pos, 16);
7438 if (!isblank((unsigned char) *pos))
7441 subcmd = strtoul(pos, &pos, 10);
7443 if (*pos != '\0') {
7444 if (!isblank((unsigned char) *pos++))
7446 data_len = os_strlen(pos);
7455 if (hexstr2bin(pos, data, data_len)) {
7631 char *pos, *end;
7634 pos = buf;
7644 ret = os_snprintf(pos, end - pos, "%s@%s:%u:%u:%ld.%06ld\n",
7647 if (os_snprintf_error(end - pos, ret))
7649 pos += ret;
7652 return pos - buf;
7706 char *pos, *pos2;
7717 pos = os_strchr(cmd, ' ');
7718 if (pos) {
7719 type_len = pos - cmd;
7720 pos++;
7722 pos2 = os_strstr(pos, "freq=");
7726 pos2 = os_strstr(pos, "timeout=");
7834 const char *pos = value;
7836 while (pos) {
7837 if (*pos == ' ' || *pos == '\0')
7841 scan_id[(*scan_id_count)++] = atoi(pos);
7842 pos = os_strchr(pos, ',');
7843 if (pos)
7844 pos++;
7854 char *pos;
7892 pos = os_strstr(params, "freq=");
7893 if (pos) {
7895 pos + 5);
7902 pos = os_strstr(params, "passive=");
7903 if (pos)
7904 manual_scan_passive = !!atoi(pos + 8);
7906 pos = os_strstr(params, "use_id=");
7907 if (pos)
7908 manual_scan_use_id = atoi(pos + 7);
7910 pos = os_strstr(params, "only_new=1");
7911 if (pos)
7914 pos = os_strstr(params, "scan_id=");
7915 if (pos && scan_id_list_parse(wpa_s, pos + 8, &scan_id_count,
7921 pos = params;
7922 while (pos && *pos != '\0') {
7923 if (os_strncmp(pos, "ssid ", 5) == 0) {
7926 pos += 5;
7927 end = pos;
7943 if ((end - pos) & 0x01 ||
7944 end - pos > 2 * SSID_MAX_LEN ||
7945 hexstr2bin(pos, ssid[ssid_count].ssid,
7946 (end - pos) / 2) < 0) {
7949 pos);
7953 ssid[ssid_count].ssid_len = (end - pos) / 2;
7958 pos = end;
7961 pos = os_strchr(pos, ' ');
7962 if (pos)
7963 pos++;
8061 char *pos, *param;
8072 pos = cmd;
8073 used = hwaddr_aton2(pos, da);
8076 pos += used;
8077 while (*pos == ' ')
8078 pos++;
8079 used = hwaddr_aton2(pos, bssid);
8082 pos += used;
8084 param = os_strstr(pos, " freq=");
8090 param = os_strstr(pos, " no_cck=");
8096 param = os_strstr(pos, " wait_time=");
8102 param = os_strstr(pos, " action=");
8139 char *pos, *param;
8152 pos = cmd;
8153 param = os_strstr(pos, "freq=");
8159 param = os_strstr(pos, " datarate=");
8165 param = os_strstr(pos, " ssi_signal=");
8171 param = os_strstr(pos, " frame=");
8211 char *pos, *end;
8235 pos = os_strstr(param, " flags=");
8236 if (pos)
8237 res->flags = strtol(pos + 7, NULL, 16);
8239 pos = os_strstr(param, " bssid=");
8240 if (pos && hwaddr_aton(pos + 7, res->bssid))
8243 pos = os_strstr(param, " freq=");
8244 if (pos)
8245 res->freq = atoi(pos + 6);
8247 pos = os_strstr(param, " beacon_int=");
8248 if (pos)
8249 res->beacon_int = atoi(pos + 12);
8251 pos = os_strstr(param, " caps=");
8252 if (pos)
8253 res->caps = strtol(pos + 6, NULL, 16);
8255 pos = os_strstr(param, " qual=");
8256 if (pos)
8257 res->qual = atoi(pos + 6);
8259 pos = os_strstr(param, " noise=");
8260 if (pos)
8261 res->noise = atoi(pos + 7);
8263 pos = os_strstr(param, " level=");
8264 if (pos)
8265 res->level = atoi(pos + 7);
8267 pos = os_strstr(param, " tsf=");
8268 if (pos)
8269 res->tsf = strtoll(pos + 5, NULL, 16);
8271 pos = os_strstr(param, " age=");
8272 if (pos)
8273 res->age = atoi(pos + 5);
8275 pos = os_strstr(param, " est_throughput=");
8276 if (pos)
8277 res->est_throughput = atoi(pos + 16);
8279 pos = os_strstr(param, " snr=");
8280 if (pos)
8281 res->snr = atoi(pos + 5);
8283 pos = os_strstr(param, " parent_tsf=");
8284 if (pos)
8285 res->parent_tsf = strtoll(pos + 7, NULL, 16);
8287 pos = os_strstr(param, " tsf_bssid=");
8288 if (pos && hwaddr_aton(pos + 11, res->tsf_bssid))
8291 pos = os_strstr(param, " ie=");
8292 if (pos) {
8293 pos += 4;
8294 end = os_strchr(pos, ' ');
8296 end = pos + os_strlen(pos);
8297 res->ie_len = (end - pos) / 2;
8298 if (hexstr2bin(pos, (u8 *) (res + 1), res->ie_len))
8302 pos = os_strstr(param, " beacon_ie=");
8303 if (pos) {
8304 pos += 11;
8305 end = os_strchr(pos, ' ');
8307 end = pos + os_strlen(pos);
8308 res->beacon_ie_len = (end - pos) / 2;
8309 if (hexstr2bin(pos, ((u8 *) (res + 1)) + res->ie_len,
8326 char *pos, *param;
8334 pos = cmd;
8335 param = os_strchr(pos, ' ');
8370 char *pos;
8377 pos = cmd;
8378 used = hwaddr_aton2(pos, src);
8381 pos += used;
8382 while (*pos == ' ')
8383 pos++;
8385 len = os_strlen(pos);
8394 if (hexstr2bin(pos, buf, len) < 0) {
8410 const u16 *pos = buf;
8413 sum += *pos++;
8431 const u8 *pos;
8439 pos = &buf[sizeof(*eth) + sizeof(ip)];
8446 if (*pos != (u8) i)
8448 pos++;
8460 char *pos;
8475 pos = os_strstr(cmd, " ifname=");
8476 if (pos)
8477 ifname = pos + 8;
8496 char *pos;
8511 pos = cmd;
8512 used = hwaddr_aton2(pos, dst);
8515 pos += used;
8516 while (*pos == ' ')
8517 pos++;
8518 used = hwaddr_aton2(pos, src);
8521 pos += used;
8523 val = strtol(pos, NULL, 0);
8602 char *pos;
8605 pos = os_strchr(cmd, ':');
8606 if (pos) {
8607 pos++;
8608 os_strlcpy(wpa_trace_fail_func, pos,
8635 char *pos;
8638 pos = os_strchr(cmd, ':');
8639 if (pos) {
8640 pos++;
8641 os_strlcpy(wpa_trace_test_fail_func, pos,
8725 char *pos = cmd;
8731 frame = atoi(pos);
8736 pos = os_strchr(pos, ' ');
8737 if (pos == NULL)
8739 pos++;
8741 len = os_strlen(pos);
8752 if (hexstr2bin(pos, wpabuf_put(buf, len), len) < 0) {
8802 char *pos = cmd;
8809 frame = atoi(pos);
8814 pos = os_strchr(pos, ' ');
8815 if (pos == NULL)
8817 pos++;
8819 if (*pos == '*') {
8829 len = os_strlen(pos);
8840 if (hexstr2bin(pos, buf, len) < 0) {
8886 const u8 *pos = data, *end;
8888 if (pos[0] != WLAN_EID_NEIGHBOR_REPORT ||
8902 pos += 2;
8903 end = pos + nr_len;
8905 nr = pos;
8906 pos += NR_IE_MIN_LEN;
8910 while (end - pos > 2) {
8913 s_id = *pos++;
8914 s_len = *pos++;
8915 if (s_len > end - pos)
8922 switch (pos[2]) {
8927 pos, s_len);
8933 pos, s_len);
8938 pos += s_len;
9150 char *pos, *pos2, *end;
9158 pos = buf;
9174 pos2 = pos;
9206 pos = pos2;
9209 return pos - buf;
9218 char *pos, *pos2;
9233 pos = os_strchr(cmd, ' ');
9234 if (!pos)
9236 pos++;
9242 if (hwaddr_aton(pos, entry->aa))
9245 pos = os_strchr(pos, ' ');
9246 if (!pos)
9248 pos++;
9250 if (hexstr2bin(pos, entry->pmkid, PMKID_LEN) < 0)
9253 pos = os_strchr(pos, ' ');
9254 if (!pos)
9256 pos++;
9258 pos2 = os_strchr(pos, ' ');
9261 entry->pmk_len = (pos2 - pos) / 2;
9263 hexstr2bin(pos, entry->pmk, entry->pmk_len) < 0)
9266 pos = os_strchr(pos, ' ');
9267 if (!pos)
9269 pos++;
9271 if (sscanf(pos, "%d %d %d %d", &reauth_time, &expiration,
9330 const char *pos;
9341 pos = os_strchr(cmd, ' ');
9342 if (!pos)
9344 pos++;
9345 req->pkt = wpabuf_parse_bin(pos);
10113 char *pos, *extra;
10128 iface.ifname = pos = cmd;
10129 pos = os_strchr(pos, '\t');
10130 if (pos)
10131 *pos++ = '\0';
10134 if (pos == NULL)
10137 iface.confname = pos;
10138 pos = os_strchr(pos, '\t');
10139 if (pos)
10140 *pos++ = '\0';
10143 if (pos == NULL)
10146 iface.driver = pos;
10147 pos = os_strchr(pos, '\t');
10148 if (pos)
10149 *pos++ = '\0';
10152 if (pos == NULL)
10155 iface.ctrl_interface = pos;
10156 pos = os_strchr(pos, '\t');
10157 if (pos)
10158 *pos++ = '\0';
10161 if (pos == NULL)
10164 iface.driver_param = pos;
10165 pos = os_strchr(pos, '\t');
10166 if (pos)
10167 *pos++ = '\0';
10170 if (pos == NULL)
10173 iface.bridge_ifname = pos;
10174 pos = os_strchr(pos, '\t');
10175 if (pos)
10176 *pos++ = '\0';
10179 if (pos == NULL)
10182 extra = pos;
10183 pos = os_strchr(pos, '\t');
10184 if (pos)
10185 *pos++ = '\0';
10191 if (!pos)
10194 if (os_strcmp(pos, "sta") == 0) {
10196 } else if (os_strcmp(pos, "ap") == 0) {
10201 pos);
10288 char *pos, *end;
10306 pos = buf;
10309 res = os_snprintf(pos, end - pos, "%s\t%s\t%s\n",
10312 if (os_snprintf_error(end - pos, res)) {
10313 *pos = '\0';
10316 pos += res;
10321 return pos - buf;
10330 char *pos, *end;
10338 pos = buf;
10343 res = os_snprintf(pos, end - pos, "%s ctrl_iface=%s\n",
10348 res = os_snprintf(pos, end - pos, "%s\n",
10351 if (os_snprintf_error(end - pos, res)) {
10352 *pos = '\0';
10355 pos += res;
10358 return pos - buf;
10600 char *pos, *end;
10604 pos = buf;
10609 ret = os_snprintf(pos, end - pos, "p2p_device_address=" MACSTR
10614 if (os_snprintf_error(end - pos, ret))
10615 return pos - buf;
10616 pos += ret;
10618 ret = os_snprintf(pos, end - pos, "p2p_state=DISABLED\n");
10619 if (os_snprintf_error(end - pos, ret))
10620 return pos - buf;
10621 pos += ret;
10626 ret = os_snprintf(pos, end - pos, "wifi_display=%d\n",
10628 if (os_snprintf_error(end - pos, ret))
10629 return pos - buf;
10630 pos += ret;
10634 ret = os_snprintf(pos, end - pos, "ifname=%s\n"
10637 if (os_snprintf_error(end - pos, ret))
10638 return pos - buf;
10639 pos += ret;
10642 return pos - buf;
10708 char *pos = os_strchr(buf + 7, ' ');
10709 if (pos) {
10710 *pos++ = '\0';
10712 buf + 7, pos,