aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2016-04-28 11:13:15 +0200
committerHarald Welte <laforge@gnumonks.org>2016-04-28 11:13:15 +0200
commitf2d96dad3b1d3dbf94c517721fc18a472da0aabb (patch)
tree8fc5b1fe5b7abec84b62ef42ca445fefa91eddfe /src
parent173afdbdbf1ce7088d73d4d0f77d04b3d218273a (diff)
more verbose error handling in osmo_gsup_server_read_cb()
Diffstat (limited to 'src')
-rw-r--r--src/gsup_server.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/gsup_server.c b/src/gsup_server.c
index 525b3b5..15af9c8 100644
--- a/src/gsup_server.c
+++ b/src/gsup_server.c
@@ -66,11 +66,16 @@ static int osmo_gsup_server_read_cb(struct ipa_server_conn *conn,
return 0;
}
- if (hh->proto != IPAC_PROTO_OSMO)
+ if (hh->proto != IPAC_PROTO_OSMO) {
+ LOGP(DLGSUP, LOGL_NOTICE, "Unsupported IPA stream ID 0x%02x\n",
+ hh->proto);
goto invalid;
+ }
- if (!he || msgb_l2len(msg) < sizeof(*he))
+ if (!he || msgb_l2len(msg) < sizeof(*he)) {
+ LOGP(DLGSUP, LOGL_NOTICE, "short IPA message\n");
goto invalid;
+ }
msg->l2h = &he->data[0];
@@ -81,15 +86,18 @@ static int osmo_gsup_server_read_cb(struct ipa_server_conn *conn,
} else if (he->proto == IPAC_PROTO_EXT_OAP) {
return osmo_gsup_conn_oap_handle(clnt, msg);
/* osmo_gsup_client_oap_handle frees msg */
- } else
+ } else {
+ LOGP(DLGSUP, LOGL_NOTICE, "Unsupported IPA Osmo Proto 0x%02x\n",
+ hh->proto);
goto invalid;
+ }
return 0;
invalid:
LOGP(DLGSUP, LOGL_NOTICE,
- "GSUP received an invalid IPA message from %s:%d, size = %d\n",
- conn->addr, conn->port, msgb_length(msg));
+ "GSUP received an invalid IPA message from %s:%d: %s\n",
+ conn->addr, conn->port, osmo_hexdump(msgb_l2(msg), msgb_l2len(msg)));
msgb_free(msg);
return -1;