Merge branch 'dev' into main

This commit is contained in:
Christian Giese
2022-09-02 12:51:52 +00:00
4 changed files with 16 additions and 3 deletions
+1 -1
View File
@@ -178,7 +178,7 @@ bbl_dhcpv6_rx(bbl_ethernet_header_t *eth, bbl_dhcpv6_t *dhcpv6, bbl_session_s *s
session->stats.dhcpv6_rx_reply++;
/* Handle DHCPv6 teardown */
if(session->dhcpv6_state == BBL_DHCP_RELEASE) {
session->dhcpv6_state = session->dhcpv6_state == BBL_DHCP_INIT;
session->dhcpv6_state = BBL_DHCP_INIT;
if(session->session_state == BBL_TERMINATING) {
bbl_session_clear(ctx, session);
}
+5 -1
View File
@@ -179,7 +179,7 @@ bbl_l2tp_avp_unhide(bbl_l2tp_tunnel_t *l2tp_tunnel, bbl_l2tp_avp_t *avp, uint8_t
uint8_t *cursor;
uint8_t *value = avp->value;
uint16_t type = avp->type;
uint16_t type = htobe16(avp->type);
uint16_t len = 0;
uint8_t idx = 0;
@@ -187,6 +187,8 @@ bbl_l2tp_avp_unhide(bbl_l2tp_tunnel_t *l2tp_tunnel, bbl_l2tp_avp_t *avp, uint8_t
uint16_t secret_len = 0;
if(!(random_vector && l2tp_tunnel->server->secret)) {
LOG(DEBUG, "L2TP Error (%s) Missing random-vector or secret\n",
l2tp_tunnel->server->host_name);
return false;
}
@@ -205,6 +207,8 @@ bbl_l2tp_avp_unhide(bbl_l2tp_tunnel_t *l2tp_tunnel, bbl_l2tp_avp_t *avp, uint8_t
value++;
if (len + 2 > avp->len) {
LOG(DEBUG, "L2TP Error (%s) Decrypted length %u > AVP length %u\n",
l2tp_tunnel->server->host_name, len, avp->len);
return false;
}
+9
View File
@@ -553,6 +553,11 @@ bbl_rx_icmpv6(bbl_ethernet_header_t *eth, bbl_ipv6_t *ipv6, bbl_interface_s *int
return;
}
if(session->access_type == ACCESS_TYPE_PPPOE &&
session->ip6cp_state != BBL_PPP_OPENED) {
return;
}
if(icmpv6->type == IPV6_ICMPV6_ROUTER_ADVERTISEMENT) {
if(!session->icmpv6_ra_received) {
/* The first RA received ... */
@@ -878,11 +883,13 @@ bbl_rx_pap(bbl_ethernet_header_t *eth, bbl_interface_s *interface, bbl_session_s
session->ipcp_state = BBL_PPP_INIT;
session->ipcp_request_code = PPP_CODE_CONF_REQUEST;
session->send_requests |= BBL_SEND_IPCP_REQUEST;
session->send_requests &= ~BBL_SEND_IPCP_RESPONSE;
}
if(ctx->config.ip6cp_enable) {
session->ip6cp_state = BBL_PPP_INIT;
session->ip6cp_request_code = PPP_CODE_CONF_REQUEST;
session->send_requests |= BBL_SEND_IP6CP_REQUEST;
session->send_requests &= ~BBL_SEND_IP6CP_RESPONSE;
}
bbl_session_tx_qnode_insert(session);
break;
@@ -975,11 +982,13 @@ bbl_rx_chap(bbl_ethernet_header_t *eth, bbl_interface_s *interface, bbl_session_
session->ipcp_state = BBL_PPP_INIT;
session->ipcp_request_code = PPP_CODE_CONF_REQUEST;
session->send_requests |= BBL_SEND_IPCP_REQUEST;
session->send_requests &= ~BBL_SEND_IPCP_RESPONSE;
}
if(ctx->config.ip6cp_enable) {
session->ip6cp_state = BBL_PPP_INIT;
session->ip6cp_request_code = PPP_CODE_CONF_REQUEST;
session->send_requests |= BBL_SEND_IP6CP_REQUEST;
session->send_requests &= ~BBL_SEND_IP6CP_RESPONSE;
}
bbl_session_tx_qnode_insert(session);
break;
+1 -1
View File
@@ -609,7 +609,7 @@ bbl_dhcpv6_timeout(timer_s *timer)
bbl_session_tx_qnode_insert(session);
} else {
if(session->dhcpv6_state == BBL_DHCP_RELEASE) {
session->dhcpv6_state = session->dhcpv6_state == BBL_DHCP_INIT;
session->dhcpv6_state = BBL_DHCP_INIT;
if(session->session_state == BBL_TERMINATING) {
bbl_session_clear(ctx, session);
}