sgsn: Convert cch_pdp to host order for libgtp
libgtp is calling gtpie_tv2 which will convert this uint16_t from host to network order. So far libosmogsm and the sgsn treated the charging characteristics as opaque data. So when moving from byte array to the uint16_t do the swapping. Change-Id: I977aec2e2f8d57802e45f591754e5733562d5c2a
This commit is contained in:
parent
3b61a3812a
commit
3730de4d87
|
@ -235,11 +235,8 @@ struct sgsn_pdp_ctx *sgsn_create_pdp_ctx(struct sgsn_ggsn_ctx *ggsn,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* charging characteristics if present */
|
/* charging characteristics if present */
|
||||||
if (TLVP_LEN(tp, OSMO_IE_GSM_CHARG_CHAR) > 0) {
|
if (TLVP_LEN(tp, OSMO_IE_GSM_CHARG_CHAR) >= sizeof(pdp->cch_pdp))
|
||||||
OSMO_ASSERT(TLVP_LEN(tp, OSMO_IE_GSM_CHARG_CHAR) <= sizeof(pdp->cch_pdp));
|
pdp->cch_pdp = tlvp_val16be(tp, OSMO_IE_GSM_CHARG_CHAR);
|
||||||
memcpy(&pdp->cch_pdp, TLVP_VAL(tp, OSMO_IE_GSM_CHARG_CHAR),
|
|
||||||
TLVP_LEN(tp, OSMO_IE_GSM_CHARG_CHAR));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* SGSN address for control plane */
|
/* SGSN address for control plane */
|
||||||
pdp->gsnlc.l = sizeof(sgsn->cfg.gtp_listenaddr.sin_addr);
|
pdp->gsnlc.l = sizeof(sgsn->cfg.gtp_listenaddr.sin_addr);
|
||||||
|
|
Loading…
Reference in New Issue