ProxyARP: Clear bridge parameters on deinit only if hostapd set them
Skip the x_snoop_deinit() operations if hostapd did not actually configure the parameters in the first place. While clearing these specific parameters is unlikely to change how they were set outside the scope of hostapd, it is better to leave them as-is to avoid surprises if hostapd was not configured to use ProxyARP. Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
parent
02047e9c88
commit
e4015440af
2 changed files with 6 additions and 0 deletions
|
@ -324,6 +324,7 @@ struct hostapd_data {
|
|||
#ifdef CONFIG_PROXYARP
|
||||
struct l2_packet_data *sock_dhcp;
|
||||
struct l2_packet_data *sock_ndisc;
|
||||
bool x_snoop_initialized;
|
||||
#endif /* CONFIG_PROXYARP */
|
||||
#ifdef CONFIG_MESH
|
||||
int num_plinks;
|
||||
|
|
|
@ -31,6 +31,8 @@ int x_snoop_init(struct hostapd_data *hapd)
|
|||
return -1;
|
||||
}
|
||||
|
||||
hapd->x_snoop_initialized = true;
|
||||
|
||||
if (hostapd_drv_br_port_set_attr(hapd, DRV_BR_PORT_ATTR_HAIRPIN_MODE,
|
||||
1)) {
|
||||
wpa_printf(MSG_DEBUG,
|
||||
|
@ -125,7 +127,10 @@ void x_snoop_mcast_to_ucast_convert_send(struct hostapd_data *hapd,
|
|||
|
||||
void x_snoop_deinit(struct hostapd_data *hapd)
|
||||
{
|
||||
if (!hapd->x_snoop_initialized)
|
||||
return;
|
||||
hostapd_drv_br_set_net_param(hapd, DRV_BR_NET_PARAM_GARP_ACCEPT, 0);
|
||||
hostapd_drv_br_port_set_attr(hapd, DRV_BR_PORT_ATTR_PROXYARP, 0);
|
||||
hostapd_drv_br_port_set_attr(hapd, DRV_BR_PORT_ATTR_HAIRPIN_MODE, 0);
|
||||
hapd->x_snoop_initialized = false;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue