]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
lib: Add samba_sockaddr_[gs]et_port()
authorVolker Lendecke <vl@samba.org>
Wed, 30 Dec 2020 21:50:36 +0000 (22:50 +0100)
committerVolker Lendecke <vl@samba.org>
Mon, 11 Jan 2021 13:19:32 +0000 (13:19 +0000)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Samuel Cabrero <scabrero@samba.org>
lib/util/util_net.c
lib/util/util_net.h

index 0460a3ad3a895f2695e4d84876ad394b2178b2da..f97d4d43f3c38923d0e39ec986cc6a1ec0f8cd10 100644 (file)
@@ -1091,3 +1091,33 @@ bool sockaddr_storage_to_samba_sockaddr(
        }
        return true;
 }
+
+bool samba_sockaddr_set_port(struct samba_sockaddr *sa, uint16_t port)
+{
+       if (sa->u.sa.sa_family == AF_INET) {
+               sa->u.in.sin_port = port;
+               return true;
+       }
+#ifdef HAVE_IPV6
+       if (sa->u.sa.sa_family == AF_INET6) {
+               sa->u.in6.sin6_port = port;
+               return true;
+       }
+#endif
+       return false;
+}
+
+bool samba_sockaddr_get_port(const struct samba_sockaddr *sa, uint16_t *port)
+{
+       if (sa->u.sa.sa_family == AF_INET) {
+               *port = sa->u.in.sin_port;
+               return true;
+       }
+#ifdef HAVE_IPV6
+       if (sa->u.sa.sa_family == AF_INET6) {
+               *port = sa->u.in6.sin6_port;
+               return true;
+       }
+#endif
+       return false;
+}
index 4f60a9c6f7d4596227ed777dbde25f03138316ef..c95d90907fab3bb347b29cdf1467f191ad921e9f 100644 (file)
@@ -125,5 +125,7 @@ void set_socket_options(int fd, const char *options);
 
 bool sockaddr_storage_to_samba_sockaddr(
        struct samba_sockaddr *sa, const struct sockaddr_storage *ss);
+bool samba_sockaddr_set_port(struct samba_sockaddr *sa, uint16_t port);
+bool samba_sockaddr_get_port(const struct samba_sockaddr *sa, uint16_t *port);
 
 #endif /* _SAMBA_UTIL_NET_H_ */