/**
 * reload_iface2 - Part 2 of reload_iface
 * @hapd_iface: Pointer to hostapd interface data.
 */
static void reload_iface2(struct hostapd_iface *hapd_iface)
{
	struct hostapd_data *hapd = hapd_iface->bss[0];
	struct hostapd_config *newconf = hapd_iface->change->newconf;
	struct hostapd_config *oldconf = hapd_iface->change->oldconf;
	int beacon_changed = hapd_iface->change->beacon_changed;
	hostapd_iface_cb cb = hapd_iface->reload_iface_cb;

	if (newconf->preamble != oldconf->preamble) {
		if (hostapd_set_preamble(hapd, hapd->iconf->preamble))
			printf("Could not set preamble for kernel driver\n");
		beacon_changed++;
	}

	if (newconf->beacon_int != oldconf->beacon_int) {
		/* Need to change beacon interval if it has changed or if
		 * auto channel selection was used. */
		if (hostapd_set_beacon_int(hapd, newconf->beacon_int))
			printf("Could not set beacon interval for kernel "
			       "driver\n");
		if (newconf->beacon_int != oldconf->beacon_int)
			beacon_changed++;
	}

	if (newconf->cts_protection_type != oldconf->cts_protection_type)
		beacon_changed++;

	if (newconf->rts_threshold > -1 &&
	    newconf->rts_threshold != oldconf->rts_threshold &&
	    hostapd_set_rts(hapd, newconf->rts_threshold))
		printf("Could not set RTS threshold for kernel driver\n");

	if (newconf->fragm_threshold > -1 &&
	    newconf->fragm_threshold != oldconf->fragm_threshold &&
	    hostapd_set_frag(hapd, newconf->fragm_threshold))
		printf("Could not set fragmentation threshold for kernel "
		       "driver\n");

	hostapd_reconfig_tx_queue_params(hapd, newconf, oldconf);

	if (hostapd_reconfig_wme(hapd, newconf, oldconf) > 0)
		beacon_changed++;

	ap_list_reconfig(hapd_iface, oldconf);

	hapd_iface->change->beacon_changed = beacon_changed;

	hapd_iface->reload_iface_cb = NULL;
	cb(hapd_iface, 0);
}
Example #2
0
void SET_FRAG_handle(int fd, u8 *buf, int len, void *hapd){
	struct hostapd_data *h = hapd;
	u8 tmp[MAX_BUF];
	memcpy(tmp,buf,len);
	tmp[len] = 0;

	int frag = atoi(tmp);
	wpa_printf(MSG_DEBUG, "SER FRAQ: %d",frag);
	wl.frag = frag;
	
	int ret = hostapd_set_frag(h, frag);
	u8 ret_str[10];
	sprintf(ret_str, "%d", ret);
	send_response(fd, SET_FRAG_R, ret_str, strlen(ret_str)); 
}