diff --git a/gtp/gtp.c b/gtp/gtp.c index 25eafdf..701aa36 100644 --- a/gtp/gtp.c +++ b/gtp/gtp.c @@ -1792,9 +1792,6 @@ int gtp_create_pdp_conf(struct gsn_t *gsn, int version, return EOF; } - /* Register that we have received a valid teic from GGSN */ - pdp->teic_confirmed = 1; - /* Decode information elements */ if (gtpie_decaps(ie, version, pack + hlen, len - hlen)) { gsn->invalid++; @@ -1894,6 +1891,8 @@ int gtp_create_pdp_conf(struct gsn_t *gsn, int version, gsn->cb_conf(type, EOF, pdp, cbp); return EOF; } + /* Register that we have received a valid teic from GGSN */ + pdp->teic_confirmed = 1; } if (gtpie_gettv4(ie, GTPIE_CHARGING_ID, 0, &pdp->cid)) { @@ -2345,9 +2344,6 @@ static int gtp_update_pdp_conf(struct gsn_t *gsn, uint8_t version, goto err_out; } - /* Register that we have received a valid teic from GGSN */ - pdp->teic_confirmed = 1; - /* Decode information elements */ if (gtpie_decaps(ie, version, pack + hlen, len - hlen)) { gsn->invalid++; @@ -2393,6 +2389,8 @@ static int gtp_update_pdp_conf(struct gsn_t *gsn, uint8_t version, if (gtpie_gettv4(ie, GTPIE_TEI_C, 0, &pdp->teic_gn)) { goto err_missing; } + /* Register that we have received a valid teic from GGSN */ + pdp->teic_confirmed = 1; } if (gtpie_gettv4(ie, GTPIE_CHARGING_ID, 0, &pdp->cid)) {