Browse Source

Move DTIM period configuration into Beacon set operation

This is needed to make mac80211 work with multi-BSS configuration. The
previous design ended up setting DTIM period for secondary BSSes before
setting the Beacon and driver_nl80211.c was not really prepared for
that. Eventually, the Beacon configuration routines should be combined
into a single driver operation, but for now, just moving this call is
the simplest workaround.
Jouni Malinen 16 years ago
parent
commit
eb1f7446b5
2 changed files with 4 additions and 6 deletions
  1. 4 0
      hostapd/beacon.c
  2. 0 6
      hostapd/hostapd.c

+ 4 - 0
hostapd/beacon.c

@@ -434,6 +434,10 @@ void ieee802_11_set_beacon(struct hostapd_data *hapd)
 	os_free(tail);
 	os_free(head);
 
+	if (hostapd_set_dtim_period(hapd, hapd->conf->dtim_period))
+		wpa_printf(MSG_ERROR, "Could not set DTIM period for kernel "
+			   "driver");
+
 	if (hostapd_set_cts_protect(hapd, cts_protection))
 		wpa_printf(MSG_ERROR, "Failed to set CTS protect in kernel "
 			   "driver");

+ 0 - 6
hostapd/hostapd.c

@@ -1292,12 +1292,6 @@ static int hostapd_setup_bss(struct hostapd_data *hapd, int first)
 		return -1;
 	}
 
-	if (hostapd_set_dtim_period(hapd, hapd->conf->dtim_period)) {
-		wpa_printf(MSG_ERROR, "Could not set DTIM period for kernel "
-			   "driver");
-		return -1;
-	}
-
 	/* Set SSID for the kernel driver (to be used in beacon and probe
 	 * response frames) */
 	if (set_ssid && hostapd_set_ssid(hapd, (u8 *) conf->ssid.ssid,