osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/30142 )
Change subject: ranap_common_cn: remove unused ctx args ......................................................................
ranap_common_cn: remove unused ctx args
ranap_cn_rx_co and ranap_cn_rx_cl both have a void *ctx argument, that gets passed to: * a callback function and * to various decode functions in the same file.
As it is named "ctx", it looks like a talloc context. But the decode functions don't use ctx at all and so in reality it is private userdata for the callback. It is used as such by test/hnb-test-rua and in osmo-msc.
Start cleaning this up by removing the unused ctx args, a future patch will rename it to priv and yet another patch will fix a compiler warning in test/hnb-test-rua by properly using it as userdata arg.
Change-Id: I8936197d7ae7ffddbe8ee99d909d74ac5b3ab227 --- M TODO-RELEASE M include/osmocom/ranap/ranap_common_cn.h M src/ranap_common_cn.c 3 files changed, 35 insertions(+), 27 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/42/30142/1
diff --git a/TODO-RELEASE b/TODO-RELEASE index d0852fc..38f84fa 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -7,3 +7,4 @@ # If any interfaces have been added since the last public release: c:r:a + 1. # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line +libosmo-ranap API/ABI change deprecate ranap_cn_rx_{cl,co}_decode, use ranap_cn_rx_{cl,co}_decode_2 instead diff --git a/include/osmocom/ranap/ranap_common_cn.h b/include/osmocom/ranap/ranap_common_cn.h index fb65049..8f1260b 100644 --- a/include/osmocom/ranap/ranap_common_cn.h +++ b/include/osmocom/ranap/ranap_common_cn.h @@ -9,7 +9,9 @@ void ranap_cn_rx_cl_free(ranap_message *message);
/* decode a connection-less RANAP message */ -int ranap_cn_rx_cl_decode(void *ctx, ranap_message *message, uint8_t *data, size_t len); +int ranap_cn_rx_cl_decode_2(ranap_message *message, uint8_t *data, size_t len); +int ranap_cn_rx_cl_decode(void *unused, ranap_message *message, uint8_t *data, size_t len) + OSMO_DEPRECATED("Use ranap_cn_rx_cl_decode_2() instead, the first arg is not used");
/* receive a connection-less RANAP message */ int ranap_cn_rx_cl(ranap_handle_cb cb, void *ctx, uint8_t *data, size_t len); @@ -18,7 +20,9 @@ void ranap_cn_rx_co_free(ranap_message *message);
/* decode a connection-oriented RANAP message */ -int ranap_cn_rx_co_decode(void *ctx, ranap_message *message, uint8_t *data, size_t len); +int ranap_cn_rx_co_decode_2(ranap_message *message, uint8_t *data, size_t len); +int ranap_cn_rx_co_decode(void *unused, ranap_message *message, uint8_t *data, size_t len) + OSMO_DEPRECATED("Use ranap_cn_rx_co_decode_2() instead, the first arg is not used");
/* receive a connection-oriented RANAP message */ int ranap_cn_rx_co(ranap_handle_cb cb, void *ctx, uint8_t *data, size_t len); diff --git a/src/ranap_common_cn.c b/src/ranap_common_cn.c index 3f6f284..c6ae8e8 100644 --- a/src/ranap_common_cn.c +++ b/src/ranap_common_cn.c @@ -31,8 +31,7 @@
#define DRANAP _ranap_DRANAP
-static int cn_ranap_rx_initiating_msg_co(void *ctx, RANAP_InitiatingMessage_t *imsg, - ranap_message *message) +static int cn_ranap_rx_initiating_msg_co(RANAP_InitiatingMessage_t *imsg, ranap_message *message) { int rc = 0;
@@ -125,8 +124,7 @@ } }
-static int cn_ranap_rx_successful_msg_co(void *ctx, RANAP_SuccessfulOutcome_t *imsg, - ranap_message *message) +static int cn_ranap_rx_successful_msg_co(RANAP_SuccessfulOutcome_t *imsg, ranap_message *message) { int rc = 0;
@@ -183,8 +181,7 @@ } }
-static int cn_ranap_rx_outcome_msg_co(void *ctx, RANAP_Outcome_t *imsg, - ranap_message *message) +static int cn_ranap_rx_outcome_msg_co(RANAP_Outcome_t *imsg, ranap_message *message) { int rc = 0;
@@ -225,16 +222,16 @@ } }
-static int _cn_ranap_rx_co(void *ctx, RANAP_RANAP_PDU_t *pdu, ranap_message *message) +static int _cn_ranap_rx_co(RANAP_RANAP_PDU_t *pdu, ranap_message *message) { int rc = 0;
switch (pdu->present) { case RANAP_RANAP_PDU_PR_initiatingMessage: - rc = cn_ranap_rx_initiating_msg_co(ctx, &pdu->choice.initiatingMessage, message); + rc = cn_ranap_rx_initiating_msg_co(&pdu->choice.initiatingMessage, message); break; case RANAP_RANAP_PDU_PR_successfulOutcome: - rc = cn_ranap_rx_successful_msg_co(ctx, &pdu->choice.successfulOutcome, message); + rc = cn_ranap_rx_successful_msg_co(&pdu->choice.successfulOutcome, message); break; case RANAP_RANAP_PDU_PR_unsuccessfulOutcome: LOGP(DRANAP, LOGL_NOTICE, "Received unsupported RANAP " @@ -244,7 +241,7 @@ rc = -1; break; case RANAP_RANAP_PDU_PR_outcome: - rc = cn_ranap_rx_outcome_msg_co(ctx, &pdu->choice.outcome, message); + rc = cn_ranap_rx_outcome_msg_co(&pdu->choice.outcome, message); break; default: LOGP(DRANAP, LOGL_INFO, @@ -283,7 +280,7 @@ }
/* decode a connection-oriented RANAP message */ -int ranap_cn_rx_co_decode(void *ctx, ranap_message *message, uint8_t *data, size_t len) +int ranap_cn_rx_co_decode_2(ranap_message *message, uint8_t *data, size_t len) { RANAP_RANAP_PDU_t *pdu = NULL; asn_dec_rval_t dec_ret; @@ -299,13 +296,18 @@
message->direction = pdu->present;
- rc = _cn_ranap_rx_co(ctx, pdu, message); + rc = _cn_ranap_rx_co(pdu, message);
ASN_STRUCT_FREE(asn_DEF_RANAP_RANAP_PDU, pdu);
return rc; }
+int ranap_cn_rx_co_decode(void *unused, ranap_message *message, uint8_t *data, size_t len) +{ + return ranap_cn_rx_co_decode_2(message, data, len); +} + /* receive a connection-oriented RANAP message and call * cn_ranap_handle_co() with the resulting ranap_message struct */ int ranap_cn_rx_co(ranap_handle_cb cb, void *ctx, uint8_t *data, size_t len) @@ -313,7 +315,7 @@ ranap_message message; int rc;
- rc = ranap_cn_rx_co_decode(ctx, &message, data, len); + rc = ranap_cn_rx_co_decode_2(&message, data, len);
if (rc == 0) (*cb)(ctx, &message); @@ -326,8 +328,7 @@ return rc; }
-static int cn_ranap_rx_initiating_msg_cl(void *ctx, RANAP_InitiatingMessage_t *imsg, - ranap_message *message) +static int cn_ranap_rx_initiating_msg_cl(RANAP_InitiatingMessage_t *imsg, ranap_message *message) { int rc = 0;
@@ -412,8 +413,7 @@ } }
-static int cn_ranap_rx_successful_msg_cl(void *ctx, RANAP_SuccessfulOutcome_t *imsg, - ranap_message *message) +static int cn_ranap_rx_successful_msg_cl(RANAP_SuccessfulOutcome_t *imsg, ranap_message *message) { int rc = 0;
@@ -475,7 +475,7 @@ } }
-static int _cn_ranap_rx_cl(void *ctx, RANAP_RANAP_PDU_t *pdu, ranap_message *message) +static int _cn_ranap_rx_cl(RANAP_RANAP_PDU_t *pdu, ranap_message *message) { int rc = 0;
@@ -483,12 +483,10 @@
switch (pdu->present) { case RANAP_RANAP_PDU_PR_initiatingMessage: - rc = cn_ranap_rx_initiating_msg_cl(ctx, &pdu->choice.initiatingMessage, - message); + rc = cn_ranap_rx_initiating_msg_cl(&pdu->choice.initiatingMessage, message); break; case RANAP_RANAP_PDU_PR_successfulOutcome: - rc = cn_ranap_rx_successful_msg_cl(ctx, &pdu->choice.successfulOutcome, - message); + rc = cn_ranap_rx_successful_msg_cl(&pdu->choice.successfulOutcome, message); break; case RANAP_RANAP_PDU_PR_unsuccessfulOutcome: LOGP(DRANAP, LOGL_NOTICE, "Received unsupported RANAP " @@ -528,7 +526,7 @@ }
/* decode a connection-less RANAP message */ -int ranap_cn_rx_cl_decode(void *ctx, ranap_message *message, uint8_t *data, size_t len) +int ranap_cn_rx_cl_decode_2(ranap_message *message, uint8_t *data, size_t len) { RANAP_RANAP_PDU_t *pdu = NULL; asn_dec_rval_t dec_ret; @@ -544,13 +542,18 @@
message->direction = pdu->present;
- rc = _cn_ranap_rx_cl(ctx, pdu, message); + rc = _cn_ranap_rx_cl(pdu, message);
ASN_STRUCT_FREE(asn_DEF_RANAP_RANAP_PDU, pdu);
return rc; }
+int ranap_cn_rx_cl_decode(void *unused, ranap_message *message, uint8_t *data, size_t len) +{ + return ranap_cn_rx_cl_decode_2(message, data, len); +} + /* receive a connection-less RANAP message and call * cn_ranap_handle_co() with the resulting ranap_message struct */ int ranap_cn_rx_cl(ranap_handle_cb cb, void *ctx, uint8_t *data, size_t len) @@ -558,7 +561,7 @@ ranap_message message; int rc;
- rc = ranap_cn_rx_cl_decode(ctx, &message, data, len); + rc = ranap_cn_rx_cl_decode_2(&message, data, len);
if (rc == 0) (*cb)(ctx, &message);