diff options
Diffstat (limited to 'accel-pppd/ctrl/ipoe/ipoe.c')
-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 { |