Index: samba/source/libads/kerberos_verify.c =================================================================== --- samba/source/libads/kerberos_verify.c.orig +++ samba/source/libads/kerberos_verify.c @@ -68,7 +68,7 @@ static BOOL ads_keytab_verify_ticket(krb fstrcpy(my_name, global_myname()); my_fqdn[0] = '\0'; - name_to_fqdn(my_fqdn, global_myname()); + get_mydnsfullname(my_fqdn); asprintf(&valid_princ_formats[0], "%s$@%s", my_name, lp_realm()); asprintf(&valid_princ_formats[1], "host/%s@%s", my_name, lp_realm()); Index: samba/source/smbd/negprot.c =================================================================== --- samba/source/smbd/negprot.c.orig +++ samba/source/smbd/negprot.c @@ -225,7 +225,8 @@ static DATA_BLOB negprot_spnego(void) } else { fstring myname; char *host_princ_s = NULL; - name_to_fqdn(myname, global_myname()); + myname[0] = '\0'; + get_mydnsfullname(myname); strlower_m(myname); asprintf(&host_princ_s, "cifs/%s@%s", myname, lp_realm()); blob = spnego_gen_negTokenInit(guid, OIDs_krb5, host_princ_s); Index: samba/source/utils/net_ads.c =================================================================== --- samba/source/utils/net_ads.c.orig +++ samba/source/utils/net_ads.c @@ -1036,7 +1036,8 @@ static ADS_STATUS net_set_machine_spn(TA strupper_m(psp); servicePrincipalName[0] = psp; - name_to_fqdn(my_fqdn, machine_name); + my_fqdn[0] = '\0'; + get_mydnsfullname(my_fqdn); strlower_m(my_fqdn); if ( !(psp = talloc_asprintf(ctx, "HOST/%s", my_fqdn)) ) goto done; @@ -1377,11 +1378,12 @@ static NTSTATUS net_update_dns(TALLOC_CT { int num_addrs; struct in_addr *iplist = NULL; - fstring machine_name; + fstring machine_fqdn; NTSTATUS status; - name_to_fqdn( machine_name, global_myname() ); - strlower_m( machine_name ); + machine_fqdn[0] = '\0'; + get_mydnsfullname(machine_fqdn); + strlower_m( machine_fqdn ); /* Get our ip address (not the 127.0.0.x address but a real ip * address) */ @@ -1393,7 +1395,7 @@ static NTSTATUS net_update_dns(TALLOC_CT return NT_STATUS_INVALID_PARAMETER; } - status = net_update_dns_internal(mem_ctx, ads, machine_name, + status = net_update_dns_internal(mem_ctx, ads, machine_fqdn, iplist, num_addrs); SAFE_FREE( iplist ); return status; Index: samba/source/lib/util.c =================================================================== --- samba/source/lib/util.c.orig +++ samba/source/lib/util.c @@ -2923,52 +2923,6 @@ BOOL unix_wild_match(const char *pattern } /********************************************************************** - Converts a name to a fully qualified domain name. - Returns True if lookup succeeded, False if not (then fqdn is set to name) -***********************************************************************/ - -BOOL name_to_fqdn(fstring fqdn, const char *name) -{ - struct hostent *hp = sys_gethostbyname(name); - - if ( hp && hp->h_name && *hp->h_name ) { - char *full = NULL; - - /* find out if the fqdn is returned as an alias - * to cope with /etc/hosts files where the first - * name is not the fqdn but the short name */ - if (hp->h_aliases && (! strchr_m(hp->h_name, '.'))) { - int i; - for (i = 0; hp->h_aliases[i]; i++) { - if (strchr_m(hp->h_aliases[i], '.')) { - full = hp->h_aliases[i]; - break; - } - } - } - if (full && (StrCaseCmp(full, "localhost.localdomain") == 0)) { - DEBUG(1, ("WARNING: your /etc/hosts file may be broken!\n")); - DEBUGADD(1, (" Specifing the machine hostname for address 127.0.0.1 may lead\n")); - DEBUGADD(1, (" to Kerberos authentication problems as localhost.localdomain\n")); - DEBUGADD(1, (" may end up being used instead of the real machine FQDN.\n")); - full = hp->h_name; - } - - if (!full) { - full = hp->h_name; - } - - DEBUG(10,("name_to_fqdn: lookup for %s -> %s.\n", name, full)); - fstrcpy(fqdn, full); - return True; - } else { - DEBUG(10,("name_to_fqdn: lookup for %s failed.\n", name)); - fstrcpy(fqdn, name); - return False; - } -} - -/********************************************************************** Extension to talloc_get_type: Abort on type mismatch ***********************************************************************/