Lines Matching refs:bss

35 static int hostapd_config_read_vlan_file(struct hostapd_bss_config *bss,
103 if (bss->vlan_tail)
104 bss->vlan_tail->next = vlan;
106 bss->vlan = vlan;
107 bss->vlan_tail = vlan;
690 struct hostapd_bss_config *bss;
695 bss = os_realloc(conf->bss, (conf->num_bss + 1) *
697 if (bss == NULL) {
702 conf->bss = bss;
704 bss = &(conf->bss[conf->num_bss]);
705 os_memset(bss, 0, sizeof(*bss));
706 bss->radius = os_zalloc(sizeof(*bss->radius));
707 if (bss->radius == NULL) {
714 conf->last_bss = bss;
716 hostapd_config_defaults_bss(bss);
717 os_strlcpy(bss->iface, ifname, sizeof(bss->iface));
718 os_memcpy(bss->ssid.vlan, bss->iface, IFNAMSIZ + 1);
894 static int add_r0kh(struct hostapd_bss_config *bss, char *value)
933 r0kh->next = bss->r0kh_list;
934 bss->r0kh_list = r0kh;
940 static int add_r1kh(struct hostapd_bss_config *bss, char *value)
978 r1kh->next = bss->r1kh_list;
979 bss->r1kh_list = r1kh;
1044 static int hostapd_config_check_bss(struct hostapd_bss_config *bss,
1047 if (bss->ieee802_1x && !bss->eap_server &&
1048 !bss->radius->auth_servers) {
1054 if (bss->wpa && (bss->wpa_key_mgmt & WPA_KEY_MGMT_PSK) &&
1055 bss->ssid.wpa_psk == NULL && bss->ssid.wpa_passphrase == NULL &&
1056 bss->ssid.wpa_psk_file == NULL) {
1062 if (hostapd_mac_comp_empty(bss->bssid) != 0) {
1066 if ((&conf->bss[i] != bss) &&
1067 (hostapd_mac_comp(conf->bss[i].bssid,
1068 bss->bssid) == 0)) {
1071 MAC2STR(bss->bssid),
1072 conf->bss[i].iface, bss->iface);
1079 if ((bss->wpa_key_mgmt &
1081 (bss->nas_identifier == NULL ||
1082 os_strlen(bss->nas_identifier) < 1 ||
1083 os_strlen(bss->nas_identifier) > FT_R0KH_ID_MAX_LEN)) {
1092 if (conf->ieee80211n && bss->wpa &&
1093 !(bss->wpa_pairwise & WPA_CIPHER_CCMP) &&
1094 !(bss->rsn_pairwise & WPA_CIPHER_CCMP)) {
1116 if (hostapd_config_check_bss(&conf->bss[i], conf))
1132 struct hostapd_bss_config *bss;
1162 bss = conf->last_bss = conf->bss;
1165 bss = conf->last_bss;
1192 os_strlcpy(conf->bss[0].iface, pos,
1193 sizeof(conf->bss[0].iface));
1195 os_strlcpy(bss->bridge, pos, sizeof(bss->bridge));
1217 bss->logger_syslog_level = atoi(pos);
1219 bss->logger_stdout_level = atoi(pos);
1221 bss->logger_syslog = atoi(pos);
1223 bss->logger_stdout = atoi(pos);
1225 bss->dump_log_name = os_strdup(pos);
1227 bss->ssid.ssid_len = os_strlen(pos);
1228 if (bss->ssid.ssid_len > HOSTAPD_MAX_SSID_LEN ||
1229 bss->ssid.ssid_len < 1) {
1234 os_memcpy(bss->ssid.ssid, pos,
1235 bss->ssid.ssid_len);
1236 bss->ssid.ssid[bss->ssid.ssid_len] = '\0';
1237 bss->ssid.ssid_set = 1;
1240 bss->macaddr_acl = atoi(pos);
1241 if (bss->macaddr_acl != ACCEPT_UNLESS_DENIED &&
1242 bss->macaddr_acl != DENY_UNLESS_ACCEPTED &&
1243 bss->macaddr_acl != USE_EXTERNAL_RADIUS_AUTH) {
1246 line, bss->macaddr_acl);
1249 if (hostapd_config_read_maclist(pos, &bss->accept_mac,
1250 &bss->num_accept_mac))
1258 if (hostapd_config_read_maclist(pos, &bss->deny_mac,
1259 &bss->num_deny_mac)) {
1266 bss->wds_sta = atoi(pos);
1268 bss->ap_max_inactivity = atoi(pos);
1276 bss->ieee802_1x = atoi(pos);
1278 bss->eapol_version = atoi(pos);
1279 if (bss->eapol_version < 1 ||
1280 bss->eapol_version > 2) {
1283 line, bss->eapol_version, pos);
1287 bss->eapol_version);
1290 bss->eap_server = atoi(pos);
1295 bss->eap_server = atoi(pos);
1297 if (hostapd_config_read_eap_user(pos, bss))
1300 os_free(bss->ca_cert);
1301 bss->ca_cert = os_strdup(pos);
1303 os_free(bss->server_cert);
1304 bss->server_cert = os_strdup(pos);
1306 os_free(bss->private_key);
1307 bss->private_key = os_strdup(pos);
1309 os_free(bss->private_key_passwd);
1310 bss->private_key_passwd = os_strdup(pos);
1312 bss->check_crl = atoi(pos);
1314 os_free(bss->dh_file);
1315 bss->dh_file = os_strdup(pos);
1318 os_free(bss->pac_opaque_encr_key);
1319 bss->pac_opaque_encr_key = os_malloc(16);
1320 if (bss->pac_opaque_encr_key == NULL) {
1324 } else if (hexstr2bin(pos, bss->pac_opaque_encr_key,
1337 os_free(bss->eap_fast_a_id);
1338 bss->eap_fast_a_id = os_malloc(idlen / 2);
1339 if (bss->eap_fast_a_id == NULL ||
1340 hexstr2bin(pos, bss->eap_fast_a_id,
1347 bss->eap_fast_a_id_len = idlen / 2;
1350 os_free(bss->eap_fast_a_id_info);
1351 bss->eap_fast_a_id_info = os_strdup(pos);
1353 bss->eap_fast_prov = atoi(pos);
1355 bss->pac_key_lifetime = atoi(pos);
1357 bss->pac_key_refresh_time = atoi(pos);
1361 os_free(bss->eap_sim_db);
1362 bss->eap_sim_db = os_strdup(pos);
1364 bss->eap_sim_aka_result_ind = atoi(pos);
1368 bss->tnc = atoi(pos);
1373 bss->eap_req_id_text = os_strdup(pos);
1374 if (bss->eap_req_id_text == NULL) {
1381 bss->eap_req_id_text_len =
1382 os_strlen(bss->eap_req_id_text);
1383 term = os_strstr(bss->eap_req_id_text, "\\0");
1387 bss->eap_req_id_text_len -
1388 (term - bss->eap_req_id_text) - 1);
1389 bss->eap_req_id_text_len--;
1392 bss->default_wep_key_len = atoi(pos);
1393 if (bss->default_wep_key_len > 13) {
1397 bss->default_wep_key_len,
1399 bss->default_wep_key_len * 8);
1403 bss->individual_wep_key_len = atoi(pos);
1404 if (bss->individual_wep_key_len < 0 ||
1405 bss->individual_wep_key_len > 13) {
1408 bss->individual_wep_key_len,
1409 bss->individual_wep_key_len * 8);
1413 bss->wep_rekeying_period = atoi(pos);
1414 if (bss->wep_rekeying_period < 0) {
1417 line, bss->wep_rekeying_period);
1421 bss->eap_reauth_period = atoi(pos);
1422 if (bss->eap_reauth_period < 0) {
1425 line, bss->eap_reauth_period);
1429 bss->eapol_key_index_workaround = atoi(pos);
1432 bss->ieee802_11f = 1;
1433 os_strlcpy(bss->iapp_iface, pos,
1434 sizeof(bss->iapp_iface));
1437 if (hostapd_parse_ip_addr(pos, &bss->own_ip_addr)) {
1443 bss->nas_identifier = os_strdup(pos);
1447 &bss->radius->auth_servers,
1448 &bss->radius->num_auth_servers, pos, 1812,
1449 &bss->radius->auth_server)) {
1454 } else if (bss->radius->auth_server &&
1456 bss->radius->auth_server->port = atoi(pos);
1457 } else if (bss->radius->auth_server &&
1466 bss->radius->auth_server->shared_secret =
1468 bss->radius->auth_server->shared_secret_len = len;
1471 &bss->radius->acct_servers,
1472 &bss->radius->num_acct_servers, pos, 1813,
1473 &bss->radius->acct_server)) {
1478 } else if (bss->radius->acct_server &&
1480 bss->radius->acct_server->port = atoi(pos);
1481 } else if (bss->radius->acct_server &&
1490 bss->radius->acct_server->shared_secret =
1492 bss->radius->acct_server->shared_secret_len = len;
1495 bss->radius->retry_primary_interval = atoi(pos);
1498 bss->acct_interim_interval = atoi(pos);
1501 bss->auth_algs = atoi(pos);
1502 if (bss->auth_algs == 0) {
1509 bss->max_num_sta = atoi(pos);
1510 if (bss->max_num_sta < 0 ||
1511 bss->max_num_sta > MAX_STA_COUNT) {
1514 "0..%d", line, bss->max_num_sta,
1519 bss->wpa = atoi(pos);
1521 bss->wpa_group_rekey = atoi(pos);
1523 bss->wpa_strict_rekey = atoi(pos);
1525 bss->wpa_gmk_rekey = atoi(pos);
1527 bss->wpa_ptk_rekey = atoi(pos);
1536 os_free(bss->ssid.wpa_passphrase);
1537 bss->ssid.wpa_passphrase = os_strdup(pos);
1540 os_free(bss->ssid.wpa_psk);
1541 bss->ssid.wpa_psk =
1543 if (bss->ssid.wpa_psk == NULL)
1545 else if (hexstr2bin(pos, bss->ssid.wpa_psk->psk,
1552 bss->ssid.wpa_psk->group = 1;
1555 os_free(bss->ssid.wpa_psk_file);
1556 bss->ssid.wpa_psk_file = os_strdup(pos);
1557 if (!bss->ssid.wpa_psk_file) {
1563 bss->wpa_key_mgmt =
1565 if (bss->wpa_key_mgmt == -1)
1568 bss->wpa_pairwise =
1570 if (bss->wpa_pairwise == -1 ||
1571 bss->wpa_pairwise == 0)
1573 else if (bss->wpa_pairwise &
1578 bss->wpa_pairwise, pos);
1582 bss->rsn_pairwise =
1584 if (bss->rsn_pairwise == -1 ||
1585 bss->rsn_pairwise == 0)
1587 else if (bss->rsn_pairwise &
1592 bss->rsn_pairwise, pos);
1597 bss->rsn_preauth = atoi(pos);
1599 bss->rsn_preauth_interfaces = os_strdup(pos);
1603 bss->peerkey = atoi(pos);
1608 hexstr2bin(pos, bss->mobility_domain,
1617 hexstr2bin(pos, bss->r1_key_holder,
1625 bss->r0_key_lifetime = atoi(pos);
1627 bss->reassociation_deadline = atoi(pos);
1629 if (add_r0kh(bss, pos) < 0) {
1636 if (add_r1kh(bss, pos) < 0) {
1643 bss->pmk_r1_push = atoi(pos);
1647 os_free(bss->ctrl_interface);
1648 bss->ctrl_interface = os_strdup(pos);
1657 bss->ctrl_interface_gid = grp->gr_gid;
1658 bss->ctrl_interface_gid_set = 1;
1661 bss->ctrl_interface_gid, group);
1666 bss->ctrl_interface_gid = strtol(group, &endp, 10);
1673 bss->ctrl_interface_gid_set = 1;
1675 bss->ctrl_interface_gid);
1680 os_free(bss->radius_server_clients);
1681 bss->radius_server_clients = os_strdup(pos);
1683 bss->radius_server_auth_port = atoi(pos);
1685 bss->radius_server_ipv6 = atoi(pos);
1688 os_free(bss->test_socket);
1689 bss->test_socket = os_strdup(pos);
1691 bss->use_pae_group_addr = atoi(pos);
1721 bss->dtim_period = atoi(pos);
1722 if (bss->dtim_period < 1 || bss->dtim_period > 255) {
1725 line, bss->dtim_period);
1772 bss->ignore_broadcast_ssid = atoi(pos);
1774 bss->ssid.wep.idx = atoi(pos);
1775 if (bss->ssid.wep.idx > 3) {
1778 bss->ssid.wep.idx);
1785 if (hostapd_config_read_wep(&bss->ssid.wep,
1793 bss->ssid.dynamic_vlan = atoi(pos);
1795 if (hostapd_config_read_vlan_file(bss, pos)) {
1802 bss->ssid.vlan_tagged_interface = os_strdup(pos);
1817 bss->wmm_enabled = atoi(pos);
1819 bss->wmm_uapsd = atoi(pos);
1827 } else if (os_strcmp(buf, "bss") == 0) {
1829 wpa_printf(MSG_ERROR, "Line %d: invalid bss "
1834 if (hwaddr_aton(pos, bss->bssid)) {
1841 bss->ieee80211w = atoi(pos);
1843 bss->assoc_sa_query_max_timeout = atoi(pos);
1844 if (bss->assoc_sa_query_max_timeout == 0) {
1851 bss->assoc_sa_query_retry_timeout = atoi(pos);
1852 if (bss->assoc_sa_query_retry_timeout == 0) {
1870 bss->max_listen_interval = atoi(pos);
1872 bss->okc = atoi(pos);
1875 bss->wps_state = atoi(pos);
1876 if (bss->wps_state < 0 || bss->wps_state > 2) {
1882 bss->ap_setup_locked = atoi(pos);
1884 if (uuid_str2bin(pos, bss->uuid)) {
1890 os_free(bss->wps_pin_requests);
1891 bss->wps_pin_requests = os_strdup(pos);
1898 os_free(bss->device_name);
1899 bss->device_name = os_strdup(pos);
1906 os_free(bss->manufacturer);
1907 bss->manufacturer = os_strdup(pos);
1914 os_free(bss->model_name);
1915 bss->model_name = os_strdup(pos);
1922 os_free(bss->model_number);
1923 bss->model_number = os_strdup(pos);
1930 os_free(bss->serial_number);
1931 bss->serial_number = os_strdup(pos);
1933 os_free(bss->device_type);
1934 bss->device_type = os_strdup(pos);
1936 os_free(bss->config_methods);
1937 bss->config_methods = os_strdup(pos);
1939 if (hexstr2bin(pos, bss->os_version, 4)) {
1945 os_free(bss->ap_pin);
1946 bss->ap_pin = os_strdup(pos);
1948 bss->skip_cred_build = atoi(pos);
1950 os_free(bss->extra_cred);
1951 bss->extra_cred =
1952 (u8 *) os_readfile(pos, &bss->extra_cred_len);
1953 if (bss->extra_cred == NULL) {
1960 bss->wps_cred_processing = atoi(pos);
1962 os_free(bss->ap_settings);
1963 bss->ap_settings =
1964 (u8 *) os_readfile(pos, &bss->ap_settings_len);
1965 if (bss->ap_settings == NULL) {
1972 bss->upnp_iface = os_strdup(pos);
1974 os_free(bss->friendly_name);
1975 bss->friendly_name = os_strdup(pos);
1977 os_free(bss->manufacturer_url);
1978 bss->manufacturer_url = os_strdup(pos);
1980 os_free(bss->model_description);
1981 bss->model_description = os_strdup(pos);
1983 os_free(bss->model_url);
1984 bss->model_url = os_strdup(pos);
1986 os_free(bss->upc);
1987 bss->upc = os_strdup(pos);
1999 bss = &conf->bss[i];
2001 if (bss->individual_wep_key_len == 0) {
2004 bss->broadcast_key_idx_min = 0;
2010 if (bss->wpa & 1)
2011 pairwise |= bss->wpa_pairwise;
2012 if (bss->wpa & 2) {
2013 if (bss->rsn_pairwise == 0)
2014 bss->rsn_pairwise = bss->wpa_pairwise;
2015 pairwise |= bss->rsn_pairwise;
2018 bss->wpa_group = WPA_CIPHER_TKIP;
2020 bss->wpa_group = WPA_CIPHER_CCMP;
2022 bss->radius->auth_server = bss->radius->auth_servers;
2023 bss->radius->acct_server = bss->radius->acct_servers;
2025 if (bss->wpa && bss->ieee802_1x) {
2026 bss->ssid.security_policy = SECURITY_WPA;
2027 } else if (bss->wpa) {
2028 bss->ssid.security_policy = SECURITY_WPA_PSK;
2029 } else if (bss->ieee802_1x) {
2030 bss->ssid.security_policy = SECURITY_IEEE_802_1X;
2031 bss->ssid.wep.default_len = bss->default_wep_key_len;
2032 } else if (bss->ssid.wep.keys_set)
2033 bss->ssid.security_policy = SECURITY_STATIC_WEP;
2035 bss->ssid.security_policy = SECURITY_PLAINTEXT;