From 954b4dd6a27b6a11d809ad2fc4239a5558db10f8 Mon Sep 17 00:00:00 2001 From: Dmitry Kozlov Date: Wed, 15 Feb 2017 16:38:39 +0300 Subject: ipoe: fixed conditions to turn on arp handling --- accel-pppd/ctrl/ipoe/ipoe.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'accel-pppd/ctrl') diff --git a/accel-pppd/ctrl/ipoe/ipoe.c b/accel-pppd/ctrl/ipoe/ipoe.c index 1e84b07a..ab2cb007 100644 --- a/accel-pppd/ctrl/ipoe/ipoe.c +++ b/accel-pppd/ctrl/ipoe/ipoe.c @@ -2713,6 +2713,9 @@ static void add_interface(const char *ifname, int ifindex, const char *opt, int } } + if (!opt_arp && opt_up && opt_mode == MODE_L2) + opt_arp = 1; + if (!opt_up && !opt_dhcpv4 && !opt_auto) { opt_up = conf_up; opt_dhcpv4 = conf_dhcpv4; @@ -2775,10 +2778,10 @@ static void add_interface(const char *ifname, int ifindex, const char *opt, int if (!serv->dhcpv4_relay && serv->opt_dhcpv4 && opt_relay) serv->dhcpv4_relay = dhcpv4_relay_create(opt_relay, opt_giaddr, &serv->ctx, (triton_event_func)ipoe_recv_dhcpv4_relay); - if (serv->arp && !opt_arp && !opt_up) { + if (serv->arp && !opt_arp) { arpd_stop(serv->arp); serv->arp = NULL; - } else if (!serv->arp && (opt_arp || opt_up)) + } else if (!serv->arp && opt_arp) serv->arp = arpd_start(serv); serv->opt_up = opt_up; -- cgit v1.2.3