summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Kozlov <xeb@mail.ru>2016-04-02 10:33:29 +0300
committerDmitry Kozlov <xeb@mail.ru>2016-04-02 11:11:52 +0300
commit4482b6e5b79d817cdd55fbc7b269d650105c05e5 (patch)
tree6c610ccd8544665e5362baeb5ec306f36d5b4561
parentc4f29a3539a4cefa4b07a5dea5678933ccfda3ee (diff)
downloadaccel-ppp-4482b6e5b79d817cdd55fbc7b269d650105c05e5.tar.gz
accel-ppp-4482b6e5b79d817cdd55fbc7b269d650105c05e5.zip
ipoe: ignore start=auto for shared=1 interfaces
-rw-r--r--accel-pppd/ctrl/ipoe/ipoe.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/accel-pppd/ctrl/ipoe/ipoe.c b/accel-pppd/ctrl/ipoe/ipoe.c
index cdaab92a..e05ce9a9 100644
--- a/accel-pppd/ctrl/ipoe/ipoe.c
+++ b/accel-pppd/ctrl/ipoe/ipoe.c
@@ -2536,11 +2536,14 @@ static void add_interface(const char *ifname, int ifindex, const char *opt, int
}
}
- if (!opt_up && !opt_dhcpv4) {
+ if (!opt_up && !opt_dhcpv4 && !opt_auto) {
opt_up = conf_up;
opt_dhcpv4 = conf_dhcpv4;
+ opt_auto = conf_auto;
}
+ opt_auto &= !opt_shared;
+
if (opt_relay && !opt_giaddr && opt_dhcpv4) {
struct sockaddr_in addr;
int sock;
@@ -2601,8 +2604,6 @@ static void add_interface(const char *ifname, int ifindex, const char *opt, int
} else if (!serv->arp && conf_arp)
serv->arp = arpd_start(serv);
- opt_auto &= !opt_shared;
-
serv->opt_up = opt_up;
serv->opt_auto = opt_auto;
serv->opt_mode = opt_mode;
@@ -3235,6 +3236,8 @@ static void load_config(void)
if (!s)
return;
+ net = &def_net;
+
opt = conf_get_opt("ipoe", "username");
if (opt) {
if (strcmp(opt, "ifname") == 0)