---
 lib/sockunion.c | 15 +++++++++++++++
 lib/sockunion.h |  1 +
 2 files changed, 16 insertions(+)

diff --git a/lib/sockunion.c b/lib/sockunion.c
index 4a22c63..307436d 100644
--- a/lib/sockunion.c
+++ b/lib/sockunion.c
@@ -632,6 +632,21 @@ sockunion_get_addr(const union sockunion *su)
   return NULL;
 }
 
+unsigned short
+sockunion_get_port (const union sockunion *su)
+{
+  switch (sockunion_family (su))
+    {
+    case AF_INET:
+      return su->sin.sin_port;
+#ifdef HAVE_IPV6
+    case AF_INET6:
+      return su->sin6.sin6_port;
+#endif /* HAVE_IPV6 */
+    }
+  return 0;
+}
+
 void
 sockunion_set(union sockunion *su, int family, const u_char *addr, size_t 
bytes)
 {
diff --git a/lib/sockunion.h b/lib/sockunion.h
index b91c571..3613073 100644
--- a/lib/sockunion.h
+++ b/lib/sockunion.h
@@ -94,6 +94,7 @@ extern unsigned int sockunion_hash (const union sockunion *);
 extern size_t family2addrsize(int family);
 extern size_t sockunion_get_addrlen(const union sockunion *);
 extern const u_char *sockunion_get_addr(const union sockunion *);
+extern unsigned short sockunion_get_port (const union sockunion *);
 extern void sockunion_set(union sockunion *, int family, const u_char *addr, 
size_t bytes);
 
 extern union sockunion *sockunion_str2su (const char *str);
-- 
2.5.5


_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to