From: Jeremy Allison Date: Thu, 27 Aug 2020 19:04:50 +0000 (-0700) Subject: s3: libsmb: Remove the last caller of namecache_store(). X-Git-Tag: talloc-2.3.2~576 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9da8d26fe069189ca920b23ae541da9848515749;p=thirdparty%2Fsamba.git s3: libsmb: Remove the last caller of namecache_store(). Convert to a struct samba_sockaddr array and use namecache_store_sa(). We can now remove the use of 'struct ip_list' from the namecache code. Signed-off-by: Jeremy Allison Reviewed-by: Noel Power --- diff --git a/source3/libsmb/namequery.c b/source3/libsmb/namequery.c index c284e4dc5b6..0692194c79d 100644 --- a/source3/libsmb/namequery.c +++ b/source3/libsmb/namequery.c @@ -64,7 +64,6 @@ bool sockaddr_storage_to_samba_sockaddr(struct samba_sockaddr *sa, return true; } -#if 0 /* * Utility function to convert from a struct ip_service * array to a struct samba_sockaddr array. Will go away @@ -105,7 +104,6 @@ static NTSTATUS ip_service_to_samba_sockaddr(TALLOC_CTX *ctx, *sa_out = sa; return NT_STATUS_OK; } -#endif /**************************** * SERVER AFFINITY ROUTINES * @@ -3473,7 +3471,26 @@ NTSTATUS internal_resolve_name(TALLOC_CTX *ctx, } if (ret_count) { - namecache_store(name, name_type, ret_count, iplist); + /* + * Convert the ip_service list to a samba_sockaddr array + * to store in the namecache. This conversion + * will go away once ip_service is gone. + */ + struct samba_sockaddr *sa_converted_list = NULL; + status = ip_service_to_samba_sockaddr(talloc_tos(), + &sa_converted_list, + iplist, + ret_count); + if (!NT_STATUS_IS_OK(status)) { + TALLOC_FREE(iplist); + TALLOC_FREE(frame); + return status; + } + namecache_store_sa(name, + name_type, + ret_count, + sa_converted_list); + TALLOC_FREE(sa_converted_list); } /* Display some debugging info */