diff options
author | Kozlov Dmitry <xeb@mail.ru> | 2013-03-16 16:31:28 +0400 |
---|---|---|
committer | Kozlov Dmitry <xeb@mail.ru> | 2013-03-16 16:31:28 +0400 |
commit | 751477d72cb49656cc6d7d35d91b21da3be3314e (patch) | |
tree | 6efc8efc0b3c22762234f4a08d860e2a2edab589 | |
parent | 6f1c3cd22e30a22bc7b2f69735d62490f274bb07 (diff) | |
download | accel-ppp-751477d72cb49656cc6d7d35d91b21da3be3314e.tar.gz accel-ppp-751477d72cb49656cc6d7d35d91b21da3be3314e.zip |
ipoe: drop previous session when new one detected in shared=0 mode
-rw-r--r-- | accel-pppd/ctrl/ipoe/ipoe.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/accel-pppd/ctrl/ipoe/ipoe.c b/accel-pppd/ctrl/ipoe/ipoe.c index 811d6645..e7c91b1a 100644 --- a/accel-pppd/ctrl/ipoe/ipoe.c +++ b/accel-pppd/ctrl/ipoe/ipoe.c @@ -867,6 +867,10 @@ static void ipoe_recv_dhcpv4(struct dhcpv4_serv *dhcpv4, struct dhcpv4_packet *p if (pack->msg_type == DHCPDISCOVER) { ses = ipoe_session_lookup(serv, pack); if (!ses) { + + if (serv->opt_shared == 0) + ipoe_drop_sessions(serv, NULL); + ses = ipoe_session_create_dhcpv4(serv, pack); if (ses) { dhcpv4_packet_ref(pack); @@ -901,6 +905,9 @@ static void ipoe_recv_dhcpv4(struct dhcpv4_serv *dhcpv4, struct dhcpv4_packet *p log_info2("recv "); dhcpv4_print_packet(pack, 0, log_info2); } + + if (serv->opt_shared == 0) + ipoe_drop_sessions(serv, NULL); dhcpv4_send_nak(dhcpv4, pack); } else { |