Change in libosmocore[master]: ns2: refactor nsvc_by_ functions

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/.

laforge gerrit-no-reply at lists.osmocom.org
Fri Sep 25 09:45:26 UTC 2020


laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/20267 )

Change subject: ns2: refactor nsvc_by_ functions
......................................................................

ns2: refactor nsvc_by_ functions

gprs_ns2_nsvc_by_sockaddr_nsei is doing the lookup within a NSE.
gprs_ns2_nsvc_by_sockaddr_bind is doing the lookup within a bind.
Make both function look similiar and take similiar arguments.

Change-Id: Ia499fc279013668abe7348e578a0768f7d16faf9
---
M include/osmocom/gprs/gprs_ns2.h
M src/gb/gprs_ns2.c
M src/gb/gprs_ns2_sns.c
M src/gb/gprs_ns2_udp.c
4 files changed, 14 insertions(+), 19 deletions(-)

Approvals:
  laforge: Looks good to me, approved
  daniel: Looks good to me, but someone else must approve
  Jenkins Builder: Verified



diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h
index 68484c1..cd2de96 100644
--- a/include/osmocom/gprs/gprs_ns2.h
+++ b/include/osmocom/gprs/gprs_ns2.h
@@ -131,10 +131,9 @@
 struct osmo_sockaddr *gprs_ns2_ip_bind_sockaddr(struct gprs_ns2_vc_bind *bind);
 int gprs_ns2_is_ip_bind(struct gprs_ns2_vc_bind *bind);
 int gprs_ns2_ip_bind_set_dscp(struct gprs_ns2_vc_bind *bind, int dscp);
-int gprs_ns2_find_vc_by_sockaddr(
+struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_bind(
 		struct gprs_ns2_vc_bind *bind,
-		struct osmo_sockaddr *saddr,
-		struct gprs_ns2_vc **result);
+		struct osmo_sockaddr *saddr);
 
 int gprs_ns2_frgre_bind(struct gprs_ns2_inst *nsi,
 			struct osmo_sockaddr *local,
@@ -142,8 +141,9 @@
 			struct gprs_ns2_vc_bind **result);
 int gprs_ns2_is_frgre_bind(struct gprs_ns2_vc_bind *bind);
 
-struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr(struct gprs_ns2_nse *nsei,
-					      struct osmo_sockaddr *sockaddr);
+struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_nse(
+		struct gprs_ns2_nse *nse,
+		struct osmo_sockaddr *sockaddr);
 void gprs_ns2_start_alive_all_nsvcs(struct gprs_ns2_nse *nse);
 const char *gprs_ns2_cause_str(int cause);
 const char *gprs_ns2_ll_str(struct gprs_ns2_vc *nsvc);
diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c
index 57a08d1..835c22a 100644
--- a/src/gb/gprs_ns2.c
+++ b/src/gb/gprs_ns2.c
@@ -824,7 +824,7 @@
  *  \param[in] nse NS Entity in which to search
  *  \param[in] sockaddr socket address to search for
  *  \return NS-VC matching sockaddr; NULL if none found */
-struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr(struct gprs_ns2_nse *nse,
+struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_nse(struct gprs_ns2_nse *nse,
 					      struct osmo_sockaddr *sockaddr)
 {
 	struct gprs_ns2_vc *nsvc;
diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c
index 812200d..753ac4d 100644
--- a/src/gb/gprs_ns2_sns.c
+++ b/src/gb/gprs_ns2_sns.c
@@ -179,7 +179,7 @@
 	sa.u.sin.sin_port = ip4->udp_port;
 	sa.u.sin.sin_family = AF_INET;
 
-	return gprs_ns2_nsvc_by_sockaddr(nse, &sa);
+	return gprs_ns2_nsvc_by_sockaddr_nse(nse, &sa);
 }
 
 static struct gprs_ns2_vc *nsvc_by_ip6_elem(struct gprs_ns2_nse *nse,
@@ -191,7 +191,7 @@
 	sa.u.sin6.sin6_port = ip6->udp_port;
 	sa.u.sin6.sin6_family = AF_INET;
 
-	return gprs_ns2_nsvc_by_sockaddr(nse, &sa);
+	return gprs_ns2_nsvc_by_sockaddr_nse(nse, &sa);
 }
 
 /*! called when a nsvc is beeing freed */
diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c
index bb421a7..9994a72 100644
--- a/src/gb/gprs_ns2_udp.c
+++ b/src/gb/gprs_ns2_udp.c
@@ -81,16 +81,12 @@
 /*! Find a NS-VC by its remote socket address.
  *  \param[in] bind in which to search
  *  \param[in] saddr remote peer socket adddress to search
- *  \param[out] result pointer to result
- *  \returns 0 on success; 1 if no NS-VC was found; negative on error */
-int gprs_ns2_find_vc_by_sockaddr(struct gprs_ns2_vc_bind *bind, struct osmo_sockaddr *saddr, struct gprs_ns2_vc **result)
+ *  \returns NS-VC matching sockaddr; NULL if none found */
+struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_bind(struct gprs_ns2_vc_bind *bind, struct osmo_sockaddr *saddr)
 {
 	struct gprs_ns2_vc *nsvc;
 	struct priv_vc *vcpriv;
 
-	if (!result)
-		return -EINVAL;
-
 	llist_for_each_entry(nsvc, &bind->nsvc, blist) {
 		vcpriv = nsvc->priv;
 		if (vcpriv->remote.u.sa.sa_family != saddr->u.sa.sa_family)
@@ -98,11 +94,10 @@
 		if (osmo_sockaddr_cmp(&vcpriv->remote, saddr))
 			continue;
 
-		*result = nsvc;
-		return 0;
+		return nsvc;
 	}
 
-	return 1;
+	return NULL;
 }
 
 static inline int nsip_sendmsg(struct gprs_ns2_vc_bind *bind,
@@ -194,8 +189,8 @@
 		return -EINVAL;
 
 	/* check if a vc is available */
-	rc = gprs_ns2_find_vc_by_sockaddr(bind, &saddr, &nsvc);
-	if (rc) {
+	nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &saddr);
+	if (!nsvc) {
 		/* VC not found */
 		rc = ns2_create_vc(bind, msg, "newconnection", &reject, &nsvc);
 		switch (rc) {

-- 
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/20267
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: Ia499fc279013668abe7348e578a0768f7d16faf9
Gerrit-Change-Number: 20267
Gerrit-PatchSet: 6
Gerrit-Owner: lynxis lazus <lynxis at fe80.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200925/65397c1b/attachment.htm>


More information about the gerrit-log mailing list