diff options
author | Dmitry Kozlov <xeb@mail.ru> | 2016-04-05 21:28:42 +0300 |
---|---|---|
committer | Dmitry Kozlov <xeb@mail.ru> | 2016-04-05 21:28:42 +0300 |
commit | 452b75a037d10b6d059b073899d861436b53e143 (patch) | |
tree | 6376e8b72081c6c0d331c5db7352928b29566161 /accel-pppd/ctrl/ipoe | |
parent | 101ae68a9fbe5f0a3d3426ff1a9fb0f763596cc7 (diff) | |
download | accel-ppp-452b75a037d10b6d059b073899d861436b53e143.tar.gz accel-ppp-452b75a037d10b6d059b073899d861436b53e143.zip |
ipoe: continue to reply to dhcp requests on active sessions when "shutdown soft" is active
Diffstat (limited to 'accel-pppd/ctrl/ipoe')
-rw-r--r-- | accel-pppd/ctrl/ipoe/ipoe.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/accel-pppd/ctrl/ipoe/ipoe.c b/accel-pppd/ctrl/ipoe/ipoe.c index e64e19a4..620e1f45 100644 --- a/accel-pppd/ctrl/ipoe/ipoe.c +++ b/accel-pppd/ctrl/ipoe/ipoe.c @@ -1267,9 +1267,6 @@ static void ipoe_ses_recv_dhcpv4(struct dhcpv4_serv *dhcpv4, struct dhcpv4_packe uint8_t *agent_circuit_id = NULL; uint8_t *agent_remote_id = NULL; - if (ap_shutdown) - return; - if (conf_verbose) { log_ppp_info2("recv "); dhcpv4_print_packet(pack, 0, log_ppp_info2); @@ -1557,9 +1554,6 @@ static void __ipoe_recv_dhcpv4(struct dhcpv4_serv *dhcpv4, struct dhcpv4_packet if (serv->timer.tpd) triton_timer_mod(&serv->timer, 0); - if (ap_shutdown) - return; - if (connlimit_loaded && pack->msg_type == DHCPDISCOVER && connlimit_check(serv->opt_shared ? cl_key_from_mac(pack->hdr->chaddr) : serv->ifindex)) return; @@ -1574,6 +1568,9 @@ static void __ipoe_recv_dhcpv4(struct dhcpv4_serv *dhcpv4, struct dhcpv4_packet triton_context_call(&opt82_ses->ctx, (triton_event_func)mac_change_detected, pack); } + if (ap_shutdown) + return; + offer_delay = get_offer_delay(); if (offer_delay == -1) goto out; @@ -1743,11 +1740,6 @@ static void ipoe_recv_dhcpv4_relay(struct dhcpv4_packet *pack) int found = 0; //struct dhcpv4_packet *reply; - if (ap_shutdown) { - dhcpv4_packet_free(pack); - return; - } - pthread_mutex_lock(&serv->lock); list_for_each_entry(ses, &serv->sessions, entry) { if (ses->xid != pack->hdr->xid) |