]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3: libsmb: Add internal_resolve_name_sa(). A wrapper for internal_resolve_name().
authorJeremy Allison <jra@samba.org>
Wed, 9 Sep 2020 16:32:23 +0000 (09:32 -0700)
committerNoel Power <npower@samba.org>
Tue, 15 Sep 2020 10:09:39 +0000 (10:09 +0000)
Not yet used. Now to fix the callers, and convert internal_resolve_name().

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Noel Power <jra@samba.org>
source3/libsmb/namequery.c
source3/libsmb/namequery.h

index 4ac387b44d5ffc406a39cddbde21d25535d84fbf..0499593d7c5256f4c81f6bf3cd381201517b61da 100644 (file)
@@ -3620,6 +3620,51 @@ NTSTATUS internal_resolve_name(TALLOC_CTX *ctx,
        return status;
 }
 
+/********************************************************
+ Temporary wrapper function for internal_resolve_name().
+ Converts to samba_sockaddr array. Will go away once
+ all callers are converted.
+********************************************************/
+
+NTSTATUS internal_resolve_name_sa(TALLOC_CTX *ctx,
+                               const char *name,
+                               int name_type,
+                               const char *sitename,
+                               struct samba_sockaddr **return_salist,
+                               size_t *return_count,
+                               const char **resolve_order)
+{
+       struct ip_service *ss_list = NULL;
+       struct samba_sockaddr *sa_list = NULL;
+       size_t count;
+       NTSTATUS tmp_status;
+       NTSTATUS status = internal_resolve_name(ctx,
+                                               name,
+                                               name_type,
+                                               sitename,
+                                               &ss_list,
+                                               &count,
+                                               resolve_order);
+
+       if (!NT_STATUS_IS_OK(status)) {
+               return status;
+       }
+
+       tmp_status = ip_service_to_samba_sockaddr(ctx,
+                                               &sa_list,
+                                               ss_list,
+                                               count);
+       if (!NT_STATUS_IS_OK(tmp_status)) {
+               TALLOC_FREE(ss_list);
+               return status;
+       }
+
+       TALLOC_FREE(ss_list);
+       *return_count = count;
+       *return_salist = sa_list;
+       return status;
+}
+
 /********************************************************
  Internal interface to resolve a name into one IP address.
  Use this function if the string is either an IP address, DNS
index 26b8316bb3a5611e8134fe115988b9053982d572..550860c3dafd41436ba3879a92c269db890295bf 100644 (file)
@@ -100,6 +100,13 @@ NTSTATUS internal_resolve_name(TALLOC_CTX *ctx,
                                struct ip_service **return_iplist,
                                size_t *ret_count,
                                const char **resolve_order);
+NTSTATUS internal_resolve_name_sa(TALLOC_CTX *ctx,
+                               const char *name,
+                               int name_type,
+                               const char *sitename,
+                               struct samba_sockaddr **return_salist,
+                               size_t *ret_count,
+                               const char **resolve_order);
 bool resolve_name(const char *name,
                struct sockaddr_storage *return_ss,
                int name_type,