⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 config.c

📁 最新的Host AP 新添加了许多pcmcia 的驱动
💻 C
📖 第 1 页 / 共 5 页
字号:
		} else if (os_strcmp(buf, "logger_stdout") == 0) {			bss->logger_stdout = atoi(pos);		} else if (os_strcmp(buf, "dump_file") == 0) {			bss->dump_log_name = os_strdup(pos);		} else if (os_strcmp(buf, "ssid") == 0) {			bss->ssid.ssid_len = os_strlen(pos);			if (bss->ssid.ssid_len > HOSTAPD_MAX_SSID_LEN ||			    bss->ssid.ssid_len < 1) {				wpa_printf(MSG_ERROR, "Line %d: invalid SSID "					   "'%s'", line, pos);				errors++;			} else {				os_memcpy(bss->ssid.ssid, pos,					  bss->ssid.ssid_len);				bss->ssid.ssid[bss->ssid.ssid_len] = '\0';				bss->ssid.ssid_set = 1;			}		} else if (os_strcmp(buf, "macaddr_acl") == 0) {			bss->macaddr_acl = atoi(pos);			if (bss->macaddr_acl != ACCEPT_UNLESS_DENIED &&			    bss->macaddr_acl != DENY_UNLESS_ACCEPTED &&			    bss->macaddr_acl != USE_EXTERNAL_RADIUS_AUTH) {				wpa_printf(MSG_ERROR, "Line %d: unknown "					   "macaddr_acl %d",					   line, bss->macaddr_acl);			}		} else if (os_strcmp(buf, "accept_mac_file") == 0) {			if (hostapd_config_read_maclist(pos, &bss->accept_mac,							&bss->num_accept_mac))			{				wpa_printf(MSG_ERROR, "Line %d: Failed to "					   "read accept_mac_file '%s'",					   line, pos);				errors++;			}		} else if (os_strcmp(buf, "deny_mac_file") == 0) {			if (hostapd_config_read_maclist(pos, &bss->deny_mac,							&bss->num_deny_mac)) {				wpa_printf(MSG_ERROR, "Line %d: Failed to "					   "read deny_mac_file '%s'",					   line, pos);				errors++;			}		} else if (os_strcmp(buf, "ap_max_inactivity") == 0) {			bss->ap_max_inactivity = atoi(pos);		} else if (os_strcmp(buf, "country_code") == 0) {			os_memcpy(conf->country, pos, 2);			/* FIX: make this configurable */			conf->country[2] = ' ';		} else if (os_strcmp(buf, "ieee80211d") == 0) {			conf->ieee80211d = atoi(pos);		} else if (os_strcmp(buf, "ieee8021x") == 0) {			bss->ieee802_1x = atoi(pos);		} else if (os_strcmp(buf, "eapol_version") == 0) {			bss->eapol_version = atoi(pos);			if (bss->eapol_version < 1 ||			    bss->eapol_version > 2) {				wpa_printf(MSG_ERROR, "Line %d: invalid EAPOL "					   "version (%d): '%s'.",					   line, bss->eapol_version, pos);				errors++;			} else				wpa_printf(MSG_DEBUG, "eapol_version=%d",					   bss->eapol_version);#ifdef EAP_SERVER		} else if (os_strcmp(buf, "eap_authenticator") == 0) {			bss->eap_server = atoi(pos);			wpa_printf(MSG_ERROR, "Line %d: obsolete "				   "eap_authenticator used; this has been "				   "renamed to eap_server", line);		} else if (os_strcmp(buf, "eap_server") == 0) {			bss->eap_server = atoi(pos);		} else if (os_strcmp(buf, "eap_user_file") == 0) {			if (hostapd_config_read_eap_user(pos, bss))				errors++;		} else if (os_strcmp(buf, "ca_cert") == 0) {			os_free(bss->ca_cert);			bss->ca_cert = os_strdup(pos);		} else if (os_strcmp(buf, "server_cert") == 0) {			os_free(bss->server_cert);			bss->server_cert = os_strdup(pos);		} else if (os_strcmp(buf, "private_key") == 0) {			os_free(bss->private_key);			bss->private_key = os_strdup(pos);		} else if (os_strcmp(buf, "private_key_passwd") == 0) {			os_free(bss->private_key_passwd);			bss->private_key_passwd = os_strdup(pos);		} else if (os_strcmp(buf, "check_crl") == 0) {			bss->check_crl = atoi(pos);		} else if (os_strcmp(buf, "dh_file") == 0) {			os_free(bss->dh_file);			bss->dh_file = os_strdup(pos);#ifdef EAP_FAST		} else if (os_strcmp(buf, "pac_opaque_encr_key") == 0) {			os_free(bss->pac_opaque_encr_key);			bss->pac_opaque_encr_key = os_malloc(16);			if (bss->pac_opaque_encr_key == NULL) {				wpa_printf(MSG_ERROR, "Line %d: No memory for "					   "pac_opaque_encr_key", line);				errors++;			} else if (hexstr2bin(pos, bss->pac_opaque_encr_key,					      16)) {				wpa_printf(MSG_ERROR, "Line %d: Invalid "					   "pac_opaque_encr_key", line);				errors++;			}		} else if (os_strcmp(buf, "eap_fast_a_id") == 0) {			size_t idlen = os_strlen(pos);			if (idlen & 1) {				wpa_printf(MSG_ERROR, "Line %d: Invalid "					   "eap_fast_a_id", line);				errors++;			} else {				os_free(bss->eap_fast_a_id);				bss->eap_fast_a_id = os_malloc(idlen / 2);				if (bss->eap_fast_a_id == NULL ||				    hexstr2bin(pos, bss->eap_fast_a_id,					       idlen / 2)) {					wpa_printf(MSG_ERROR, "Line %d: "						   "Failed to parse "						   "eap_fast_a_id", line);					errors++;				} else					bss->eap_fast_a_id_len = idlen / 2;			}		} else if (os_strcmp(buf, "eap_fast_a_id_info") == 0) {			os_free(bss->eap_fast_a_id_info);			bss->eap_fast_a_id_info = os_strdup(pos);		} else if (os_strcmp(buf, "eap_fast_prov") == 0) {			bss->eap_fast_prov = atoi(pos);		} else if (os_strcmp(buf, "pac_key_lifetime") == 0) {			bss->pac_key_lifetime = atoi(pos);		} else if (os_strcmp(buf, "pac_key_refresh_time") == 0) {			bss->pac_key_refresh_time = atoi(pos);#endif /* EAP_FAST */#ifdef EAP_SIM		} else if (os_strcmp(buf, "eap_sim_db") == 0) {			os_free(bss->eap_sim_db);			bss->eap_sim_db = os_strdup(pos);		} else if (os_strcmp(buf, "eap_sim_aka_result_ind") == 0) {			bss->eap_sim_aka_result_ind = atoi(pos);#endif /* EAP_SIM */#ifdef EAP_TNC		} else if (os_strcmp(buf, "tnc") == 0) {			bss->tnc = atoi(pos);#endif /* EAP_TNC */#endif /* EAP_SERVER */		} else if (os_strcmp(buf, "eap_message") == 0) {			char *term;			bss->eap_req_id_text = os_strdup(pos);			if (bss->eap_req_id_text == NULL) {				wpa_printf(MSG_ERROR, "Line %d: Failed to "					   "allocate memory for "					   "eap_req_id_text", line);				errors++;				continue;			}			bss->eap_req_id_text_len =				os_strlen(bss->eap_req_id_text);			term = os_strstr(bss->eap_req_id_text, "\\0");			if (term) {				*term++ = '\0';				os_memmove(term, term + 1,					   bss->eap_req_id_text_len -					   (term - bss->eap_req_id_text) - 1);				bss->eap_req_id_text_len--;			}		} else if (os_strcmp(buf, "wep_key_len_broadcast") == 0) {			bss->default_wep_key_len = atoi(pos);			if (bss->default_wep_key_len > 13) {				wpa_printf(MSG_ERROR, "Line %d: invalid WEP "					   "key len %lu (= %lu bits)", line,					   (unsigned long)					   bss->default_wep_key_len,					   (unsigned long)					   bss->default_wep_key_len * 8);				errors++;			}		} else if (os_strcmp(buf, "wep_key_len_unicast") == 0) {			bss->individual_wep_key_len = atoi(pos);			if (bss->individual_wep_key_len < 0 ||			    bss->individual_wep_key_len > 13) {				wpa_printf(MSG_ERROR, "Line %d: invalid WEP "					   "key len %d (= %d bits)", line,					   bss->individual_wep_key_len,					   bss->individual_wep_key_len * 8);				errors++;			}		} else if (os_strcmp(buf, "wep_rekey_period") == 0) {			bss->wep_rekeying_period = atoi(pos);			if (bss->wep_rekeying_period < 0) {				wpa_printf(MSG_ERROR, "Line %d: invalid "					   "period %d",					   line, bss->wep_rekeying_period);				errors++;			}		} else if (os_strcmp(buf, "eap_reauth_period") == 0) {			bss->eap_reauth_period = atoi(pos);			if (bss->eap_reauth_period < 0) {				wpa_printf(MSG_ERROR, "Line %d: invalid "					   "period %d",					   line, bss->eap_reauth_period);				errors++;			}		} else if (os_strcmp(buf, "eapol_key_index_workaround") == 0) {			bss->eapol_key_index_workaround = atoi(pos);#ifdef CONFIG_IAPP		} else if (os_strcmp(buf, "iapp_interface") == 0) {			bss->ieee802_11f = 1;			os_strlcpy(bss->iapp_iface, pos,				   sizeof(bss->iapp_iface));#endif /* CONFIG_IAPP */		} else if (os_strcmp(buf, "own_ip_addr") == 0) {			if (hostapd_parse_ip_addr(pos, &bss->own_ip_addr)) {				wpa_printf(MSG_ERROR, "Line %d: invalid IP "					   "address '%s'", line, pos);				errors++;			}		} else if (os_strcmp(buf, "nas_identifier") == 0) {			bss->nas_identifier = os_strdup(pos);		} else if (os_strcmp(buf, "auth_server_addr") == 0) {			if (hostapd_config_read_radius_addr(				    &bss->radius->auth_servers,				    &bss->radius->num_auth_servers, pos, 1812,				    &bss->radius->auth_server)) {				wpa_printf(MSG_ERROR, "Line %d: invalid IP "					   "address '%s'", line, pos);				errors++;			}		} else if (bss->radius->auth_server &&			   os_strcmp(buf, "auth_server_port") == 0) {			bss->radius->auth_server->port = atoi(pos);		} else if (bss->radius->auth_server &&			   os_strcmp(buf, "auth_server_shared_secret") == 0) {			int len = os_strlen(pos);			if (len == 0) {				/* RFC 2865, Ch. 3 */				wpa_printf(MSG_ERROR, "Line %d: empty shared "					   "secret is not allowed.", line);				errors++;			}			bss->radius->auth_server->shared_secret =				(u8 *) os_strdup(pos);			bss->radius->auth_server->shared_secret_len = len;		} else if (os_strcmp(buf, "acct_server_addr") == 0) {			if (hostapd_config_read_radius_addr(				    &bss->radius->acct_servers,				    &bss->radius->num_acct_servers, pos, 1813,				    &bss->radius->acct_server)) {				wpa_printf(MSG_ERROR, "Line %d: invalid IP "					   "address '%s'", line, pos);				errors++;			}		} else if (bss->radius->acct_server &&			   os_strcmp(buf, "acct_server_port") == 0) {			bss->radius->acct_server->port = atoi(pos);		} else if (bss->radius->acct_server &&			   os_strcmp(buf, "acct_server_shared_secret") == 0) {			int len = os_strlen(pos);			if (len == 0) {				/* RFC 2865, Ch. 3 */				wpa_printf(MSG_ERROR, "Line %d: empty shared "					   "secret is not allowed.", line);				errors++;			}			bss->radius->acct_server->shared_secret =				(u8 *) os_strdup(pos);			bss->radius->acct_server->shared_secret_len = len;		} else if (os_strcmp(buf, "radius_retry_primary_interval") ==			   0) {			bss->radius->retry_primary_interval = atoi(pos);		} else if (os_strcmp(buf, "radius_acct_interim_interval") == 0)		{			bss->radius->acct_interim_interval = atoi(pos);		} else if (os_strcmp(buf, "auth_algs") == 0) {			bss->auth_algs = atoi(pos);			if (bss->auth_algs == 0) {				wpa_printf(MSG_ERROR, "Line %d: no "					   "authentication algorithms allowed",					   line);				errors++;			}		} else if (os_strcmp(buf, "max_num_sta") == 0) {			bss->max_num_sta = atoi(pos);			if (bss->max_num_sta < 0 ||			    bss->max_num_sta > MAX_STA_COUNT) {				wpa_printf(MSG_ERROR, "Line %d: Invalid "					   "max_num_sta=%d; allowed range "					   "0..%d", line, bss->max_num_sta,					   MAX_STA_COUNT);				errors++;			}		} else if (os_strcmp(buf, "wpa") == 0) {			bss->wpa = atoi(pos);		} else if (os_strcmp(buf, "wpa_group_rekey") == 0) {			bss->wpa_group_rekey = atoi(pos);		} else if (os_strcmp(buf, "wpa_strict_rekey") == 0) {			bss->wpa_strict_rekey = atoi(pos);		} else if (os_strcmp(buf, "wpa_gmk_rekey") == 0) {			bss->wpa_gmk_rekey = atoi(pos);		} else if (os_strcmp(buf, "wpa_ptk_rekey") == 0) {			bss->wpa_ptk_rekey = atoi(pos);		} else if (os_strcmp(buf, "wpa_passphrase") == 0) {			int len = os_strlen(pos);			if (len < 8 || len > 63) {				wpa_printf(MSG_ERROR, "Line %d: invalid WPA "					   "passphrase length %d (expected "					   "8..63)", line, len);				errors++;			} else {				os_free(bss->ssid.wpa_passphrase);				bss->ssid.wpa_passphrase = os_strdup(pos);			}		} else if (os_strcmp(buf, "wpa_psk") == 0) {			os_free(bss->ssid.wpa_psk);			bss->ssid.wpa_psk =				os_zalloc(sizeof(struct hostapd_wpa_psk));			if (bss->ssid.wpa_psk == NULL)				errors++;			else if (hexstr2bin(pos, bss->ssid.wpa_psk->psk,					    PMK_LEN) ||				 pos[PMK_LEN * 2] != '\0') {				wpa_printf(MSG_ERROR, "Line %d: Invalid PSK "					   "'%s'.", line, pos);				errors++;			} else {				bss->ssid.wpa_psk->group = 1;			}		} else if (os_strcmp(buf, "wpa_psk_file") == 0) {			os_free(bss->ssid.wpa_psk_file);			bss->ssid.wpa_psk_file = os_strdup(pos);			if (!bss->ssid.wpa_psk_file) {				wpa_printf(MSG_ERROR, "Line %d: allocation "					   "failed", line);				errors++;			}		} else if (os_strcmp(buf, "wpa_key_mgmt") == 0) {			bss->wpa_key_mgmt =				hostapd_config_parse_key_mgmt(line, pos);			if (bss->wpa_key_mgmt == -1)				errors++;		} else if (os_strcmp(buf, "wpa_pairwise") == 0) {			bss->wpa_pairwise =				hostapd_config_parse_cipher(line, pos);			if (bss->wpa_pairwise == -1 ||			    bss->wpa_pairwise == 0)				errors++;			else if (bss->wpa_pairwise &				 (WPA_CIPHER_NONE | WPA_CIPHER_WEP40 |				  WPA_CIPHER_WEP104)) {				wpa_printf(MSG_ERROR, "Line %d: unsupported "					   "pairwise cipher suite '%s'",					   bss->wpa_pairwise, pos);				errors++;			}		} else if (os_strcmp(buf, "rsn_pairwise") == 0) {			bss->rsn_pairwise =				hostapd_config_parse_cipher(line, pos);			if (bss->rsn_pairwise == -1 ||			    bss->rsn_pairwise == 0)				errors++;			else if (bss->rsn_pairwise &				 (WPA_CIPHER_NONE | WPA_CIPHER_WEP40 |				  WPA_CIPHER_WEP104)) {				wpa_printf(MSG_ERROR, "Line %d: unsupported "					   "pairwise cipher suite '%s'",					   bss->rsn_pairwise, pos);				errors++;			}#ifdef CONFIG_RSN_PREAUTH		} else if (os_strcmp(buf, "rsn_preauth") == 0) {			bss->rsn_preauth = atoi(pos);		} else if (os_strcmp(buf, "rsn_preauth_interfaces") == 0) {			bss->rsn_preauth_interfaces = os_strdup(pos);#endif /* CONFIG_RSN_PREAUTH */#ifdef CONFIG_PEERKEY		} else if (os_strcmp(buf, "peerkey") == 0) {			bss->peerkey = atoi(pos);#endif /* CONFIG_PEERKEY */#ifdef CONFIG_IEEE80211R		} else if (os_strcmp(buf, "mobility_domain") == 0) {			if (os_strlen(pos) != 2 * MOBILITY_DOMAIN_ID_LEN ||			    hexstr2bin(pos, bss->mobility_domain,				       MOBILITY_DOMAIN_ID_LEN) != 0) {				wpa_printf(MSG_DEBUG, "Line %d: Invalid "					   "mobility_domain '%s'", line, pos);				errors++;				continue;			}		} else if (os_strcmp(buf, "r1_key_holder") == 0) {			if (os_strlen(pos) != 2 * FT_R1KH_ID_LEN ||			    hexstr2bin(pos, bss->r1_key_holder,				       FT_R1KH_ID_LEN) != 0) {				wpa_printf(MSG_DEBUG, "Line %d: Invalid "					   "r1_key_holder '%s'", line, pos);				errors++;				continue;			}		} else if (os_strcmp(buf, "r0_key_lifetime") == 0) {			bss->r0_key_lifetime = atoi(pos);		} else if (os_strcmp(buf, "reassociation_deadline") == 0) {			bss->reassociation_deadline = atoi(pos);		} else if (os_strcmp(buf, "r0kh") == 0) {			if (add_r0kh(bss, pos) < 0) {				wpa_printf(MSG_DEBUG, "Line %d: Invalid "					   "r0kh '%s'", line, pos);				errors++;				continue;			}		} else if (os_strcmp(buf, "r1kh") == 0) {			if (add_r1kh(bss, pos) < 0) {				wpa_printf(MSG_DEBUG, "Line %d: Invalid "					   "r1kh '%s'", line, pos);				errors++;				continue;			}		} else if (os_strcmp(buf, "pmk_r1_push") == 0) {			bss->pmk_r1_push = atoi(pos);#endif /* CONFIG_IEEE80211R */		} else if (os_strcmp(buf, "ctrl_interface") == 0) {			os_free(bss->ctrl_interface);			bss->ctrl_interface = os_strdup(pos);		} else if (os_strcmp(buf, "ctrl_interface_group") == 0) {#ifndef CONFIG_NATIVE_WINDOWS			struct group *grp;			char *endp;			const char *group = pos;			grp = getgrnam(group);			if (grp) {				bss->ctrl_interface_gid = grp->gr_gid;				bss->ctrl_interface_gid_set = 1;				wpa_printf(MSG_DEBUG, "ctrl_interface_group=%d"					   " (from group name '%s')",					   bss->ctrl_interface_gid, group);				continue;			}			/* Group name not found - try to parse this as gid */			bss->ctrl_interface_gid = strtol(group, &endp, 10);			if (*group == '\0' || *endp != '\0') {				wpa_printf(MSG_DEBUG, "Line %d: Invalid group "					   "'%s'", line, group);				errors++;				continue;			}			bss->ctrl_interface_gid_set = 1;			wpa_printf(MSG_DEBUG, "ctrl_interface_group=%d",				   bss->ctrl_interface_gid);#endif /* CONFIG_NATIVE_WINDOWS */#ifdef RADIUS_SERVER		} else if (os_strcmp(buf, "radius_server_clients") == 0) {			os_free(bss->radius_server_clients);			bss->radius_server_clients = os_strdup(pos);		} else if (os_strcmp(buf, "radius_server_auth_port") == 0) {			bss->radius_server_auth_port = atoi(pos);		} else if (os_strcmp(buf, "radius_server_ipv6") == 0) {			bss->radius_server_ipv6 = atoi(pos);#endif /* RADIUS_SERVER */		} else if (os_strcmp(buf, "test_socket") == 0) {			os_free(bss->test_socket);			bss->test_socket = os_strdup(pos);		} else if (os_strcmp(buf, "use_pae_group_addr") == 0) {			bss->use_pae_group_addr = atoi(pos);		} else if (os_strcmp(buf, "hw_mode") == 0) {			if (os_strcmp(pos, "a") == 0)				conf->hw_mode = HOSTAPD_MODE_IEEE80211A;			else if (os_strcmp(pos, "b") == 0)				conf->hw_mode = HOSTAPD_MODE_IEEE80211B;			else if (os_strcmp(pos, "g") == 0)				conf->hw_mode = HOSTAPD_MODE_IEEE80211G;			else {				wpa_printf(MSG_ERROR, "Line %d: unknown "					   "hw_mode '%s'", line, pos);				errors++;			}		} else if (os_strcmp(buf, "channel") == 0) {			conf->channel = atoi(pos);		} else if (os_strcmp(buf, "beacon_int") == 0) {			int val = atoi(pos);			/* MIB defines range as 1..65535, but very small values			 * cause problems with the current implementation.			 * Since it is unlikely that this small numbers are			 * useful in real life scenarios, do not allow beacon			 * period to be set below 15 TU. */			if (val < 15 || val > 65535) {				wpa_printf(MSG_ERROR, "Line %d: invalid "					   "beacon_int %d (expected "					   "15..65535)", line, val);				errors++;			} else				conf->beacon_int = val;		} else if (os_strcmp(buf, "dtim_period") == 0) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -