diff --git a/lib/core/ogs-tlv-msg.c b/lib/core/ogs-tlv-msg.c index 37936bf46..bdabce533 100644 --- a/lib/core/ogs-tlv-msg.c +++ b/lib/core/ogs-tlv-msg.c @@ -689,7 +689,6 @@ static int tlv_parse_compound(void *msg, ogs_tlv_desc_t *parent_desc, } if (j == next_desc->length) { ogs_fatal("Multiple of the same type TLV need more room"); - ogs_assert_if_reached(); tlv = tlv->next; continue; } diff --git a/src/sgwc/gtp-path.c b/src/sgwc/gtp-path.c index 85f0edec5..6ce21e64f 100644 --- a/src/sgwc/gtp-path.c +++ b/src/sgwc/gtp-path.c @@ -80,7 +80,6 @@ static void _gtpv2_c_recv_cb(short when, ogs_socket_t fd, void *data) ogs_assert(e); e->gnode = gnode; } else { - e = sgwc_event_new(SGWC_EVT_S11_MESSAGE); gnode = ogs_gtp_node_find_by_addr(&sgwc_self()->mme_s11_list, &from); if (!gnode) { gnode = ogs_gtp_node_add_by_addr(&sgwc_self()->mme_s11_list, &from); @@ -92,6 +91,7 @@ static void _gtpv2_c_recv_cb(short when, ogs_socket_t fd, void *data) } gnode->sock = data; } + e = sgwc_event_new(SGWC_EVT_S11_MESSAGE); ogs_assert(e); e->gnode = gnode; } diff --git a/src/smf/gtp-path.c b/src/smf/gtp-path.c index 5f242284a..c11cb39dd 100644 --- a/src/smf/gtp-path.c +++ b/src/smf/gtp-path.c @@ -73,20 +73,6 @@ static void _gtpv1v2_c_recv_cb(short when, ogs_socket_t fd, void *data) ogs_pkbuf_trim(pkbuf, size); - gtp_ver = ((ogs_gtp2_header_t *)pkbuf->data)->version; - switch (gtp_ver) { - case 1: - e = smf_event_new(SMF_EVT_GN_MESSAGE); - break; - case 2: - e = smf_event_new(SMF_EVT_S5C_MESSAGE); - break; - default: - ogs_warn("Rx unexpected GTP version %u", gtp_ver); - ogs_pkbuf_free(pkbuf); - return; - } - gnode = ogs_gtp_node_find_by_addr(&smf_self()->sgw_s5c_list, &from); if (!gnode) { gnode = ogs_gtp_node_add_by_addr(&smf_self()->sgw_s5c_list, &from); @@ -100,6 +86,20 @@ static void _gtpv1v2_c_recv_cb(short when, ogs_socket_t fd, void *data) smf_gtp_node_new(gnode); smf_metrics_inst_global_inc(SMF_METR_GLOB_GAUGE_GTP_PEERS_ACTIVE); } + + gtp_ver = ((ogs_gtp2_header_t *)pkbuf->data)->version; + switch (gtp_ver) { + case 1: + e = smf_event_new(SMF_EVT_GN_MESSAGE); + break; + case 2: + e = smf_event_new(SMF_EVT_S5C_MESSAGE); + break; + default: + ogs_warn("Rx unexpected GTP version %u", gtp_ver); + ogs_pkbuf_free(pkbuf); + return; + } ogs_assert(e); e->gnode = gnode->data_ptr; /* smf_gtp_node_t */ e->pkbuf = pkbuf;