This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
dexter gerrit-no-reply at lists.osmocom.org
Review at https://gerrit.osmocom.org/3293
sccp: improve sccp-addressbook API
When searching the addressbook, return the SS7 instance
and write sccp-address to given destination pointer.
(name -> addr+ss7inst)
Remove the no longer needed ss7 instance pointer when
using the backward search. (addr -> name)
Change-Id: I68209dd1b2c0aa94b1894637a22b5cc3a3ff1250
---
M include/osmocom/sigtran/sccp_sap.h
M src/osmo_ss7_vty.c
2 files changed, 20 insertions(+), 27 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/93/3293/1
diff --git a/include/osmocom/sigtran/sccp_sap.h b/include/osmocom/sigtran/sccp_sap.h
index 2258b0d..c00320c 100644
--- a/include/osmocom/sigtran/sccp_sap.h
+++ b/include/osmocom/sigtran/sccp_sap.h
@@ -248,8 +248,7 @@
int osmo_sccp_user_sap_down(struct osmo_sccp_user *scu, struct osmo_prim_hdr *oph);
-struct osmo_sccp_addr *
-osmo_sccp_addr_by_name(const char *name, const struct osmo_ss7_instance *ss7);
+struct osmo_ss7_instance *
+osmo_sccp_addr_by_name(struct osmo_sccp_addr *addr, const char *name);
-char * osmo_sccp_name_by_addr(const struct osmo_sccp_addr *addr,
- const struct osmo_ss7_instance *ss7);
+const char *osmo_sccp_name_by_addr(const struct osmo_sccp_addr *addr);
diff --git a/src/osmo_ss7_vty.c b/src/osmo_ss7_vty.c
index 76882eb..e3f7f46 100644
--- a/src/osmo_ss7_vty.c
+++ b/src/osmo_ss7_vty.c
@@ -979,41 +979,35 @@
}
/*! \brief Lookup an SCCP address from the addressbook by its name.
- * \param[in] lookup-name of the address to lookup
- * \param[in] ss7 instance (NULL to search global)
- * \returns SCCP address; NULL on error */
-struct osmo_sccp_addr *osmo_sccp_addr_by_name(const char *name,
- const struct osmo_ss7_instance
- *ss7)
+ * \param[in] addr pointer to output the resulting sccp-address;
+ * (set to NULL if not interested)
+ * \param[in] name of the address to lookup
+ * \returns SS7 instance; NULL on error */
+struct osmo_ss7_instance *osmo_sccp_addr_by_name(struct osmo_sccp_addr *addr,
+ const char *name)
{
struct osmo_sccp_addr_entry *entry;
- entry = addr_entry_by_name(name, ss7);
- if (entry)
- return &entry->addr;
+ entry = addr_entry_by_name(name, NULL);
+ if (!entry)
+ return NULL;
- return NULL;
+ if (addr)
+ memcpy(addr, &entry->addr, sizeof(*addr));
+
+ return entry->inst;
}
/*! \brief Reverse lookup the lookup-name of a specified SCCP address.
* \param[in] name of the address to lookup
- * \param[in] ss7 instance (NULL to search global)
* \returns char pointer to the lookup-name; NULL on error */
-char *osmo_sccp_name_by_addr(const struct osmo_sccp_addr *addr,
- const struct osmo_ss7_instance *ss7)
+const char *osmo_sccp_name_by_addr(const struct osmo_sccp_addr *addr)
{
struct osmo_sccp_addr_entry *entry;
- if (ss7 == NULL) {
- llist_for_each_entry(entry, &sccp_address_book_global, list_global) {
- if (memcmp(&entry->addr, addr, sizeof(*addr)) == 0)
- return entry->name;
- }
- } else {
- llist_for_each_entry(entry, &ss7->cfg.sccp_address_book, list) {
- if (memcmp(&entry->addr, addr, sizeof(*addr)) == 0)
- return entry->name;
- }
+ llist_for_each_entry(entry, &sccp_address_book_global, list_global) {
+ if (memcmp(&entry->addr, addr, sizeof(*addr)) == 0)
+ return entry->name;
}
return NULL;
--
To view, visit https://gerrit.osmocom.org/3293
To unsubscribe, visit https://gerrit.osmocom.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I68209dd1b2c0aa94b1894637a22b5cc3a3ff1250
Gerrit-PatchSet: 1
Gerrit-Project: libosmo-sccp
Gerrit-Branch: master
Gerrit-Owner: dexter <pmaier at sysmocom.de>