示例#1
0
int hostapd_acs_completed(struct hostapd_iface *iface)
{
	int ret;

	switch (hostapd_check_chans(iface)) {
	case HOSTAPD_CHAN_VALID:
		break;
	case HOSTAPD_CHAN_ACS: /* WTF */
		wpa_printf(MSG_ERROR, "ACS complete but not.. odd report this..");
		hostapd_notify_bad_chans(iface);
		return -1;
	case HOSTAPD_CHAN_INVALID:
	default:
		wpa_printf(MSG_ERROR, "ACS picked unusable channels");
		hostapd_notify_bad_chans(iface);
		return -1;
	}

	ret = hostapd_check_ht_capab(iface);
	if (ret < 0)
		return -1;
	if (ret == 1) {
		wpa_printf(MSG_DEBUG, "Interface initialization will "
			   "be completed in a callback");
		return 0;
	}

	return hostapd_setup_interface_complete(iface, 0);
}
示例#2
0
文件: hw_features.c 项目: gxk/hostap
int hostapd_acs_completed(struct hostapd_iface *iface, int err)
{
	int ret = -1;

	if (err)
		goto out;

	switch (hostapd_check_chans(iface)) {
	case HOSTAPD_CHAN_VALID:
		wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO,
			ACS_EVENT_COMPLETED "freq=%d channel=%d",
			hostapd_hw_get_freq(iface->bss[0],
					    iface->conf->channel),
			iface->conf->channel);
		break;
	case HOSTAPD_CHAN_ACS:
		wpa_printf(MSG_ERROR, "ACS error - reported complete, but no result available");
		wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, ACS_EVENT_FAILED);
		hostapd_notify_bad_chans(iface);
		goto out;
	case HOSTAPD_CHAN_INVALID:
	default:
		wpa_printf(MSG_ERROR, "ACS picked unusable channels");
		wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, ACS_EVENT_FAILED);
		hostapd_notify_bad_chans(iface);
		goto out;
	}

	ret = hostapd_check_ht_capab(iface);
	if (ret < 0)
		goto out;
	if (ret == 1) {
		wpa_printf(MSG_DEBUG, "Interface initialization will be completed in a callback");
		return 0;
	}

	ret = 0;
out:
	return hostapd_setup_interface_complete(iface, ret);
}