gbproxy: Also try to route STATUS messages with truncated PDU in error
Related: OS#4892
Change-Id: I173eb8ef6257248e3c893c31486575019a3ef873
diff --git a/src/gb_proxy.c b/src/gb_proxy.c
index 6fd6f77..fbb6e79 100644
--- a/src/gb_proxy.c
+++ b/src/gb_proxy.c
@@ -982,9 +982,9 @@
struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *)pdu_data;
struct tlv_parsed tp_inner;
- /* TODO: Parse partial messages as well */
rc = gbproxy_decode_bssgp(bgph, pdu_len, &tp_inner, log_pfx);
- if (rc < 0)
+ /* Ignore decode failure due to truncated message */
+ if (rc < 0 && rc != OSMO_TLVP_ERR_OFS_BEYOND_BUFFER)
return rc;
if (TLVP_PRESENT(&tp_inner, BSSGP_IE_TLLI)) {
@@ -1010,9 +1010,9 @@
struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *)pdu_data;
struct tlv_parsed tp_inner;
- /* TODO: Parse partial messages as well */
rc = gbproxy_decode_bssgp(bgph, pdu_len, &tp_inner, log_pfx);
- if (rc < 0)
+ /* Ignore decode failure due to truncated message */
+ if (rc < 0 && rc != OSMO_TLVP_ERR_OFS_BEYOND_BUFFER)
return rc;
if (TLVP_PRESENT(&tp_inner, BSSGP_IE_BVCI))