From: Volker Lendecke Date: Wed, 30 Dec 2020 21:50:36 +0000 (+0100) Subject: lib: Add samba_sockaddr_[gs]et_port() X-Git-Tag: samba-4.14.0rc1~131 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e5d246b3b0ec0c5e4ec3cf4b833fc820f3cfcca;p=thirdparty%2Fsamba.git lib: Add samba_sockaddr_[gs]et_port() Signed-off-by: Volker Lendecke Reviewed-by: Samuel Cabrero --- diff --git a/lib/util/util_net.c b/lib/util/util_net.c index 0460a3ad3a8..f97d4d43f3c 100644 --- a/lib/util/util_net.c +++ b/lib/util/util_net.c @@ -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; +} diff --git a/lib/util/util_net.h b/lib/util/util_net.h index 4f60a9c6f7d..c95d90907fa 100644 --- a/lib/util/util_net.h +++ b/lib/util/util_net.h @@ -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_ */