From: Volker Lendecke Date: Sat, 13 Jun 2026 12:51:47 +0000 (+0200) Subject: libsmb: Convert resolve_name() to return struct samba_sockaddr X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ada9ed188370972ed00518b076072799f8bbe590;p=thirdparty%2Fsamba.git libsmb: Convert resolve_name() to return struct samba_sockaddr Signed-off-by: Volker Lendecke Reviewed-by: Stefan Metzmacher --- diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c index 66853f5661c..43c04b01ba5 100644 --- a/source3/libads/ldap.c +++ b/source3/libads/ldap.c @@ -911,7 +911,7 @@ static ADS_STATUS ads_connect_internal(ADS_STRUCT *ads, if (ads->server.ldap_server) { bool ok = false; - struct sockaddr_storage ss; + struct samba_sockaddr ss; DBG_DEBUG("Resolving name of LDAP server '%s'.\n", ads->server.ldap_server); @@ -923,12 +923,12 @@ static ADS_STATUS ads_connect_internal(ADS_STRUCT *ads, goto out; } - if (is_zero_addr(&ss)) { + if (is_zero_addr(&ss.u.ss)) { status = ADS_ERROR_NT(NT_STATUS_NOT_FOUND); goto out; } - ok = ads_try_connect(ads, ads->server.gc, &ss); + ok = ads_try_connect(ads, ads->server.gc, &ss.u.ss); if (ok) { goto got_connection; } diff --git a/source3/libsmb/libsmb_dir.c b/source3/libsmb/libsmb_dir.c index 2310990a22c..90250dd9ee5 100644 --- a/source3/libsmb/libsmb_dir.c +++ b/source3/libsmb/libsmb_dir.c @@ -466,7 +466,7 @@ SMBC_opendir_ctx(SMBCCTX *context, uint16_t port = 0; SMBCSRV *srv = NULL; SMBCFILE *dir = NULL; - struct sockaddr_storage rem_ss; + struct samba_sockaddr rem_ss; TALLOC_CTX *frame = talloc_stackframe(); if (!context || !context->internal->initialized) { @@ -759,10 +759,12 @@ SMBC_opendir_ctx(SMBCCTX *context, * Get the backup list ... */ if (!name_status_find(wgroup, 0, 0, - &rem_ss, buserver)) { + &rem_ss.u.ss, buserver)) { char addr[INET6_ADDRSTRLEN]; - print_sockaddr(addr, sizeof(addr), &rem_ss); + print_sockaddr(addr, + sizeof(addr), + &rem_ss.u.ss); DEBUG(0,("Could not get name of " "local/domain master browser " "for workgroup %s from " diff --git a/source3/libsmb/namequery.c b/source3/libsmb/namequery.c index 8e3b8581438..a3e70caab6f 100644 --- a/source3/libsmb/namequery.c +++ b/source3/libsmb/namequery.c @@ -2976,9 +2976,9 @@ NTSTATUS internal_resolve_name(TALLOC_CTX *ctx, *********************************************************/ bool resolve_name(const char *name, - struct sockaddr_storage *return_ss, - int name_type, - bool prefer_ipv4) + struct samba_sockaddr *return_ss, + int name_type, + bool prefer_ipv4) { struct samba_sockaddr *sa_list = NULL; char *sitename = NULL; @@ -2987,7 +2987,13 @@ bool resolve_name(const char *name, TALLOC_CTX *frame = NULL; if (is_ipaddress(name)) { - return interpret_string_addr(return_ss, name, AI_NUMERICHOST); + struct sockaddr_storage ss; + bool ok = interpret_string_addr(&ss, name, AI_NUMERICHOST); + if (!ok) { + return false; + } + sockaddr_storage_to_samba_sockaddr(return_ss, &ss); + return true; } frame = talloc_stackframe(); @@ -3008,7 +3014,7 @@ bool resolve_name(const char *name, for (i=0; idcaddr, + &dcaddr, 0x20, true); if (!ok) { goto fail; } + domain->dcaddr = dcaddr.u.ss; } TALLOC_FREE(domain->dcname);