aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Smith <osmith@sysmocom.de>2022-11-14 10:41:04 +0100
committerOliver Smith <osmith@sysmocom.de>2022-11-15 11:14:56 +0100
commit8b6dad3331eab339a7ffea7c22ed1830fe9ced60 (patch)
treef59f63f06c977e948d3e09b9951b4e6ef75a1eaa
parent3de405583907cb523732044888f4ce597e7f2003 (diff)
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
-rw-r--r--TODO-RELEASE1
-rw-r--r--include/osmocom/ranap/ranap_common_cn.h8
-rw-r--r--src/ranap_common_cn.c53
3 files changed, 35 insertions, 27 deletions
diff --git a/TODO-RELEASE b/TODO-RELEASE
index d0852fc..3ecddae 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}_decode2 instead
diff --git a/include/osmocom/ranap/ranap_common_cn.h b/include/osmocom/ranap/ranap_common_cn.h
index fb65049..dfc5c3d 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_decode2(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_decode2() 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 @@ int ranap_cn_rx_cl(ranap_handle_cb cb, void *ctx, uint8_t *data, size_t len);
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_decode2(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_decode2() 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..bbc3784 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 void cn_ranap_free_initiating_msg_co(ranap_message *message)
}
}
-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 void cn_ranap_free_successful_msg_co(ranap_message *message)
}
}
-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 void cn_ranap_free_outcome_msg_co(ranap_message *message)
}
}
-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 @@ static int _cn_ranap_rx_co(void *ctx, RANAP_RANAP_PDU_t *pdu, ranap_message *mes
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 @@ 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_decode2(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 @@ int ranap_cn_rx_co_decode(void *ctx, ranap_message *message, uint8_t *data, size
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_decode2(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 @@ int ranap_cn_rx_co(ranap_handle_cb cb, void *ctx, uint8_t *data, size_t len)
ranap_message message;
int rc;
- rc = ranap_cn_rx_co_decode(ctx, &message, data, len);
+ rc = ranap_cn_rx_co_decode2(&message, data, len);
if (rc == 0)
(*cb)(ctx, &message);
@@ -326,8 +328,7 @@ int ranap_cn_rx_co(ranap_handle_cb cb, void *ctx, uint8_t *data, size_t len)
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 void cn_ranap_free_initiating_msg_cl(ranap_message *message)
}
}
-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 void cn_ranap_free_successful_msg_cl(ranap_message *message)
}
}
-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 @@ static int _cn_ranap_rx_cl(void *ctx, RANAP_RANAP_PDU_t *pdu, ranap_message *mes
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 @@ 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_decode2(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 @@ int ranap_cn_rx_cl_decode(void *ctx, ranap_message *message, uint8_t *data, size
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_decode2(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 @@ int ranap_cn_rx_cl(ranap_handle_cb cb, void *ctx, uint8_t *data, size_t len)
ranap_message message;
int rc;
- rc = ranap_cn_rx_cl_decode(ctx, &message, data, len);
+ rc = ranap_cn_rx_cl_decode2(&message, data, len);
if (rc == 0)
(*cb)(ctx, &message);