]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:libnet: Use lp_dns_hostname() in libnet_join.c
authorAndreas Schneider <asn@samba.org>
Thu, 4 Apr 2024 09:24:13 +0000 (11:24 +0200)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 22 May 2024 20:33:36 +0000 (20:33 +0000)
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source3/libnet/libnet_join.c

index 2ec558e0ea4f017c40ad78b90f450e2260d1649d..43ade678bdd9e38f95dede2921717e0f11c356ce 100644 (file)
@@ -491,6 +491,7 @@ static ADS_STATUS libnet_join_set_machine_spn(TALLOC_CTX *mem_ctx,
        char *spn = NULL;
        const char **netbios_aliases = NULL;
        const char **addl_hostnames = NULL;
+       const char *dns_hostname = NULL;
 
        /* Find our DN */
 
@@ -547,6 +548,27 @@ static ADS_STATUS libnet_join_set_machine_spn(TALLOC_CTX *mem_ctx,
                goto done;
        }
 
+       /*
+        * Register dns_hostname if needed, add_uniq_spn() will avoid
+        * duplicates.
+        */
+       dns_hostname = lp_dns_hostname();
+       if (dns_hostname == NULL) {
+               status = ADS_ERROR_LDAP(LDAP_NO_MEMORY);
+               goto done;
+       }
+
+       spn = talloc_asprintf(frame, "HOST/%s", dns_hostname);
+       if (spn == NULL) {
+               status = ADS_ERROR_LDAP(LDAP_NO_MEMORY);
+               goto done;
+       }
+
+       status = add_uniq_spn(frame, spn, &spn_array, &num_spns);
+       if (!ADS_ERR_OK(status)) {
+               goto done;
+       }
+
        for (netbios_aliases = lp_netbios_aliases();
             netbios_aliases != NULL && *netbios_aliases != NULL;
             netbios_aliases++) {