summaryrefslogtreecommitdiff
path: root/accel-pppd
diff options
context:
space:
mode:
Diffstat (limited to 'accel-pppd')
-rw-r--r--accel-pppd/ctrl/ipoe/ipoe.c3
-rw-r--r--accel-pppd/ifcfg.c2
-rw-r--r--accel-pppd/session.c3
3 files changed, 7 insertions, 1 deletions
diff --git a/accel-pppd/ctrl/ipoe/ipoe.c b/accel-pppd/ctrl/ipoe/ipoe.c
index ff18370..d971ce5 100644
--- a/accel-pppd/ctrl/ipoe/ipoe.c
+++ b/accel-pppd/ctrl/ipoe/ipoe.c
@@ -331,6 +331,9 @@ static void ipoe_session_start(struct ipoe_session *ses)
struct unit_cache *uc;
if (!ses->ses.username) {
+ if (!ses->serv->opt_shared)
+ strncpy(ses->ses.ifname, ses->serv->ifname, AP_IFNAME_LEN);
+
ipoe_session_set_username(ses);
if (!ses->ses.username) {
diff --git a/accel-pppd/ifcfg.c b/accel-pppd/ifcfg.c
index 296b354..127d776 100644
--- a/accel-pppd/ifcfg.c
+++ b/accel-pppd/ifcfg.c
@@ -184,7 +184,7 @@ void __export ap_session_ifdown(struct ap_session *ses)
struct in6_ifreq ifr6;
struct ipv6db_addr_t *a;
- if (ses->ctrl->dont_ifcfg)
+ if (ses->ctrl->dont_ifcfg || ses->ifindex == -1)
return;
memset(&ifr, 0, sizeof(ifr));
diff --git a/accel-pppd/session.c b/accel-pppd/session.c
index 22c2744..c04cdd2 100644
--- a/accel-pppd/session.c
+++ b/accel-pppd/session.c
@@ -267,6 +267,9 @@ int __export ap_session_read_stats(struct ap_session *ses, struct rtnl_link_stat
struct rtnl_link_stats lstats;
time_t t;
+ if (ses->ifindex == -1)
+ return -1;
+
if (!stats)
stats = &lstats;