cc0f95e6d6e11bee46f980528b36c2af08ead439
[openwrt.git] / package / hostapd / patches / 600-terminate_on_setup_failure.patch
1 --- a/src/ap/hostapd.c
2 +++ b/src/ap/hostapd.c
3 @@ -709,11 +709,8 @@ int hostapd_setup_interface_complete(str
4 size_t j;
5 u8 *prev_addr;
6
7 - if (err) {
8 - wpa_printf(MSG_ERROR, "Interface initialization failed");
9 - eloop_terminate();
10 - return -1;
11 - }
12 + if (err)
13 + goto error;
14
15 wpa_printf(MSG_DEBUG, "Completing interface initialization");
16 if (hapd->iconf->channel) {
17 @@ -729,7 +726,7 @@ int hostapd_setup_interface_complete(str
18 hapd->iconf->secondary_channel)) {
19 wpa_printf(MSG_ERROR, "Could not set channel for "
20 "kernel driver");
21 - return -1;
22 + goto error;
23 }
24 }
25
26 @@ -740,7 +737,7 @@ int hostapd_setup_interface_complete(str
27 hostapd_logger(hapd, NULL, HOSTAPD_MODULE_IEEE80211,
28 HOSTAPD_LEVEL_WARNING,
29 "Failed to prepare rates table.");
30 - return -1;
31 + goto error;
32 }
33 }
34
35 @@ -748,14 +745,14 @@ int hostapd_setup_interface_complete(str
36 hostapd_set_rts(hapd, hapd->iconf->rts_threshold)) {
37 wpa_printf(MSG_ERROR, "Could not set RTS threshold for "
38 "kernel driver");
39 - return -1;
40 + goto error;
41 }
42
43 if (hapd->iconf->fragm_threshold > -1 &&
44 hostapd_set_frag(hapd, hapd->iconf->fragm_threshold)) {
45 wpa_printf(MSG_ERROR, "Could not set fragmentation threshold "
46 "for kernel driver");
47 - return -1;
48 + goto error;
49 }
50
51 prev_addr = hapd->own_addr;
52 @@ -765,7 +762,7 @@ int hostapd_setup_interface_complete(str
53 if (j)
54 os_memcpy(hapd->own_addr, prev_addr, ETH_ALEN);
55 if (hostapd_setup_bss(hapd, j == 0))
56 - return -1;
57 + goto error;
58 if (hostapd_mac_comp_empty(hapd->conf->bssid) == 0)
59 prev_addr = hapd->own_addr;
60 }
61 @@ -777,7 +774,7 @@ int hostapd_setup_interface_complete(str
62 if (hostapd_driver_commit(hapd) < 0) {
63 wpa_printf(MSG_ERROR, "%s: Failed to commit driver "
64 "configuration", __func__);
65 - return -1;
66 + goto error;
67 }
68
69 wpa_printf(MSG_DEBUG, "%s: Setup of interface done.",
70 @@ -787,6 +784,11 @@ int hostapd_setup_interface_complete(str
71 iface->init_complete(iface);
72
73 return 0;
74 +
75 +error:
76 + wpa_printf(MSG_ERROR, "Interface initialization failed");
77 + eloop_terminate();
78 + return -1;
79 }
80
81
This page took 0.039847 seconds and 3 git commands to generate.