aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/osmocom/sigtran/sccp_sap.h2
-rw-r--r--src/sccp_user.c16
2 files changed, 18 insertions, 0 deletions
diff --git a/include/osmocom/sigtran/sccp_sap.h b/include/osmocom/sigtran/sccp_sap.h
index 9d285eb..e012635 100644
--- a/include/osmocom/sigtran/sccp_sap.h
+++ b/include/osmocom/sigtran/sccp_sap.h
@@ -261,6 +261,8 @@ osmo_sccp_user_bind_pc(struct osmo_sccp_instance *inst, const char *name,
struct osmo_sccp_user *
osmo_sccp_user_bind(struct osmo_sccp_instance *inst, const char *name,
osmo_prim_cb prim_cb, uint16_t ssn);
+struct osmo_sccp_user *
+osmo_sccp_user_find(struct osmo_sccp_instance *inst, uint16_t ssn, uint32_t pc);
int osmo_sccp_user_sap_down(struct osmo_sccp_user *scu, struct osmo_prim_hdr *oph);
int osmo_sccp_user_sap_down_nofree(struct osmo_sccp_user *scu, struct osmo_prim_hdr *oph);
diff --git a/src/sccp_user.c b/src/sccp_user.c
index d85fc1d..a36ac93 100644
--- a/src/sccp_user.c
+++ b/src/sccp_user.c
@@ -39,6 +39,8 @@
#include "xua_internal.h"
/*! \brief Find a SCCP User registered for given PC+SSN or SSN only
+ * First search all users with a valid PC for a full PC+SSN match.
+ * If no such match was found, search all users with an invalid PC for an SSN-only match.
* \param[in] inst SCCP Instance in which to search
* \param[in] ssn Sub-System Number to search for
* \param[in] pc Point Code to search for
@@ -63,6 +65,20 @@ sccp_user_find(struct osmo_sccp_instance *inst, uint16_t ssn, uint32_t pc)
return NULL;
}
+/*! Find a SCCP User registered for given PC+SSN or SSN only.
+ * First search all users with a valid PC for a full PC+SSN match.
+ * If no match was found, search all users with an invalid PC for an SSN-only match.
+ * \param[in] inst SCCP Instance in which to search.
+ * \param[in] ssn Sub-System Number to search for.
+ * \param[in] pc Point Code to search for.
+ * \returns Matching SCCP User; NULL if none found.
+ */
+struct osmo_sccp_user *
+osmo_sccp_user_find(struct osmo_sccp_instance *inst, uint16_t ssn, uint32_t pc)
+{
+ return sccp_user_find(inst, ssn, pc);
+}
+
/*! \brief Bind a SCCP User to a given Point Code
* \param[in] inst SCCP Instance
* \param[in] name human-readable name