From 520ebc17d9351ccd1a053eeb11c769649e4d1fc1 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 11 Jun 2018 20:27:27 +0200 Subject: gsup: Add osmo_gsup_get_err_msg_type() function This function can be used to resolve the error message type for a given message type. Can be used by generic error handlers that work for any incoming message type. Change-Id: Ic637bec53dd7fe3ec83da99b49b4eae34d5602b2 --- src/gsm/gsup.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/gsm/gsup.c') diff --git a/src/gsm/gsup.c b/src/gsm/gsup.c index b4b60b20..e3eef02e 100644 --- a/src/gsm/gsup.c +++ b/src/gsm/gsup.c @@ -70,6 +70,29 @@ const struct value_string osmo_gsup_message_type_names[] = { { 0, NULL } }; + +/*! return the error message type corresponding to \a type_in + * \returns matching error message type; -1 on error */ +int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in) +{ + switch (type_in) { + case OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: + return OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR; + case OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: + return OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR; + case OSMO_GSUP_MSGT_PURGE_MS_REQUEST: + return OSMO_GSUP_MSGT_PURGE_MS_ERROR; + case OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: + return OSMO_GSUP_MSGT_INSERT_DATA_ERROR; + case OSMO_GSUP_MSGT_DELETE_DATA_REQUEST: + return OSMO_GSUP_MSGT_DELETE_DATA_ERROR; + case OSMO_GSUP_MSGT_LOCATION_CANCEL_REQUEST: + return OSMO_GSUP_MSGT_LOCATION_CANCEL_ERROR; + default: + return -1; + } +} + static int decode_pdp_info(uint8_t *data, size_t data_len, struct osmo_gsup_pdp_info *pdp_info) { -- cgit v1.2.3