Change in osmo-ggsn[master]: Rename netdev_*route to end in route4

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
Sun Apr 19 08:27:14 UTC 2020


laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/17824 )

Change subject: Rename netdev_*route to end in route4
......................................................................

Rename netdev_*route to end in route4

Functions for IPv6 will be added soon afterwards. Also take the chance
to check for address length in sgsnemu and only apply the route if the
address matches.

Change-Id: Ic6c1b3c11c56f047e6e8c6f1040257fd62afea0f
---
M lib/netdev.c
M lib/netdev.h
M lib/tun.c
M sgsnemu/sgsnemu.c
4 files changed, 19 insertions(+), 15 deletions(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved



diff --git a/lib/netdev.c b/lib/netdev.c
index 19c5c62..4d171c9 100644
--- a/lib/netdev.c
+++ b/lib/netdev.c
@@ -176,7 +176,7 @@
 	/* On linux the route to the interface is set automatically
 	   on FreeBSD we have to do this manually */
 #if defined(__FreeBSD__) || defined (__APPLE__)
-	netdev_addroute(dstaddr, addr, &this->netmask);
+	netdev_addroute4(dstaddr, addr, &this->netmask);
 #endif
 
 	return 0;
@@ -553,7 +553,7 @@
 	return 0;
 }
 
-static int netdev_route(struct in_addr *dst, struct in_addr *gateway, struct in_addr *mask, int delete)
+static int netdev_route4(struct in_addr *dst, struct in_addr *gateway, struct in_addr *mask, int delete)
 {
 	int fd;
 #if defined(__linux__)
@@ -643,14 +643,14 @@
 	return 0;
 }
 
-int netdev_addroute(struct in_addr *dst, struct in_addr *gateway, struct in_addr *mask)
+int netdev_addroute4(struct in_addr *dst, struct in_addr *gateway, struct in_addr *mask)
 {
-	return netdev_route(dst, gateway, mask, 0);
+	return netdev_route4(dst, gateway, mask, 0);
 }
 
-int netdev_delroute(struct in_addr *dst, struct in_addr *gateway, struct in_addr *mask)
+int netdev_delroute4(struct in_addr *dst, struct in_addr *gateway, struct in_addr *mask)
 {
-	return netdev_route(dst, gateway, mask, 1);
+	return netdev_route4(dst, gateway, mask, 1);
 }
 
 #include <ifaddrs.h>
diff --git a/lib/netdev.h b/lib/netdev.h
index 74c42da..5dab27f 100644
--- a/lib/netdev.h
+++ b/lib/netdev.h
@@ -65,8 +65,8 @@
 extern int netdev_addaddr6(const char *devname, struct in6_addr *addr,
 			   struct in6_addr *dstaddr, int prefixlen);
 
-extern int netdev_addroute(struct in_addr *dst, struct in_addr *gateway, struct in_addr *mask);
-extern int netdev_delroute(struct in_addr *dst, struct in_addr *gateway, struct in_addr *mask);
+extern int netdev_addroute4(struct in_addr *dst, struct in_addr *gateway, struct in_addr *mask);
+extern int netdev_delroute4(struct in_addr *dst, struct in_addr *gateway, struct in_addr *mask);
 
 extern int netdev_ip_local_get(const char *devname, struct in46_prefix *prefix_list,
 				size_t prefix_size, int flags);
diff --git a/lib/tun.c b/lib/tun.c
index 1aeed55..c771b92 100644
--- a/lib/tun.c
+++ b/lib/tun.c
@@ -276,7 +276,7 @@
 {
 
 	if (tun->routes) {
-		netdev_delroute(&tun->dstaddr.v4, &tun->addr.v4, &tun->netmask);
+		netdev_delroute4(&tun->dstaddr.v4, &tun->addr.v4, &tun->netmask);
 	}
 
 	if (tun->fd >= 0) {
diff --git a/sgsnemu/sgsnemu.c b/sgsnemu/sgsnemu.c
index 6b05ac5..c28df52 100644
--- a/sgsnemu/sgsnemu.c
+++ b/sgsnemu/sgsnemu.c
@@ -1516,9 +1516,11 @@
 			/* printf("Setting up interface and routing\n"); */
 			tun_addaddr(tun, &addr[i], NULL, prefixlen);
 			if (options.defaultroute) {
-				struct in_addr rm;
-				rm.s_addr = 0;
-				netdev_addroute(&rm, &addr[i].v4, &rm);
+				if (in46a_is_v4(&addr[i])) {
+					struct in_addr rm;
+					rm.s_addr = 0;
+					netdev_addroute4(&rm, &addr[i].v4, &rm);
+				}
 			}
 			if (options.ipup)
 				tun_runscript(tun, options.ipup);
@@ -1718,9 +1720,11 @@
 	if ((options.createif) && (options.netaddr.len)) {
 		tun_addaddr(tun, &options.netaddr, NULL, options.prefixlen);
 		if (options.defaultroute) {
-			struct in_addr rm;
-			rm.s_addr = 0;
-			netdev_addroute(&rm, &options.netaddr.v4, &rm);
+			if (in46a_is_v4(&options.netaddr)) {
+				struct in_addr rm;
+				rm.s_addr = 0;
+				netdev_addroute4(&rm, &options.netaddr.v4, &rm);
+			}
 		}
 		if (options.ipup)
 			tun_runscript(tun, options.ipup);

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

Gerrit-Project: osmo-ggsn
Gerrit-Branch: master
Gerrit-Change-Id: Ic6c1b3c11c56f047e6e8c6f1040257fd62afea0f
Gerrit-Change-Number: 17824
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
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/20200419/8779da1b/attachment.htm>


More information about the gerrit-log mailing list