summaryrefslogtreecommitdiff
path: root/source3/lib/util.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2003-04-22 07:28:41 +0000
committerAndrew Bartlett <abartlet@samba.org>2003-04-22 07:28:41 +0000
commit8de48f3093a0e84bb732b24e7355780368f25a67 (patch)
tree476d8e2ce85c643e39b061daee46d966f6a14141 /source3/lib/util.c
parent69321d1fc48795aaff73b64455c0330beb458a02 (diff)
downloadsamba-8de48f3093a0e84bb732b24e7355780368f25a67.tar.gz
samba-8de48f3093a0e84bb732b24e7355780368f25a67.tar.bz2
samba-8de48f3093a0e84bb732b24e7355780368f25a67.zip
Make our 'get DNS domain name' code try a bit harder - if gethostname() doesn't
include a domain portion, do a gethostbyname() lookup on that name. Use this name in our PolicyPrimaryDomainInformation reply (_lsa_query_info2) that Win2k uses when trying to trust us as a trusted domain. (We need to do a better mapping between our Netbios and Win2k domain names, but this will do for now - particularly annoying is the way this possibly needs to map with our kerberos realm). Andrew Bartlett (This used to be commit 3be03271030208a69da29c6e2a7b92cdbaa8c6aa)
Diffstat (limited to 'source3/lib/util.c')
-rw-r--r--source3/lib/util.c27
1 files changed, 21 insertions, 6 deletions
diff --git a/source3/lib/util.c b/source3/lib/util.c
index 1adda85354..e58f5274df 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -1012,6 +1012,7 @@ BOOL get_mydomname(fstring my_domname)
{
pstring hostname;
char *p;
+ struct hostent *hp;
*hostname = 0;
/* get my host name */
@@ -1023,17 +1024,31 @@ BOOL get_mydomname(fstring my_domname)
/* Ensure null termination. */
hostname[sizeof(hostname)-1] = '\0';
+
p = strchr_m(hostname, '.');
- if (!p)
- return False;
+ if (p) {
+ p++;
+
+ if (my_domname)
+ fstrcpy(my_domname, p);
+ }
- p++;
+ if (!(hp = sys_gethostbyname(hostname))) {
+ return False;
+ }
- if (my_domname)
- fstrcpy(my_domname, p);
+ p = strchr_m(hp->h_name, '.');
- return True;
+ if (p) {
+ p++;
+
+ if (my_domname)
+ fstrcpy(my_domname, p);
+ return True;
+ }
+
+ return False;
}
/****************************************************************************