summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 cdaab92..e05ce9a 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)