lib: Move sockaddr_storage_to_samba_sockaddr() to lib/
[samba.git] / lib / util / util_net.c
index b9b0621f45f4d1d1b6fee5559958b712c19a2952..0460a3ad3a895f2695e4d84876ad394b2178b2da 100644 (file)
@@ -1065,3 +1065,29 @@ void set_socket_options(int fd, const char *options)
        TALLOC_FREE(ctx);
        print_socket_options(fd);
 }
+
+/*
+ * Utility function that copes only with AF_INET and AF_INET6
+ * as that's all we're going to get out of DNS / NetBIOS / WINS
+ * name resolution functions.
+ */
+
+bool sockaddr_storage_to_samba_sockaddr(
+       struct samba_sockaddr *sa, const struct sockaddr_storage *ss)
+{
+       sa->u.ss = *ss;
+
+       switch (ss->ss_family) {
+       case AF_INET:
+               sa->sa_socklen = sizeof(struct sockaddr_in);
+               break;
+#ifdef HAVE_IPV6
+       case AF_INET6:
+               sa->sa_socklen = sizeof(struct sockaddr_in6);
+               break;
+#endif
+       default:
+               return false;
+       }
+       return true;
+}