summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-05-05 11:15:24 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:16:31 -0500
commitf597d6df59ece653c9a7c18cfb11b16e7e58b907 (patch)
tree73422f62343e8f0321e33ae22becccc4dff85a6b
parent320eeed1ef1dfc90e366ba6f8a5d8d66ea8771b2 (diff)
downloadsamba-f597d6df59ece653c9a7c18cfb11b16e7e58b907.tar.gz
samba-f597d6df59ece653c9a7c18cfb11b16e7e58b907.tar.bz2
samba-f597d6df59ece653c9a7c18cfb11b16e7e58b907.zip
r6620: the type 23 schannel bind uses a workstation name, not an account name
(This used to be commit 250f1f69dd719a7981ec4c1698942b31826888d2)
-rw-r--r--source4/auth/gensec/schannel.c9
-rw-r--r--source4/librpc/idl/schannel.idl6
2 files changed, 9 insertions, 6 deletions
diff --git a/source4/auth/gensec/schannel.c b/source4/auth/gensec/schannel.c
index 0657de27d9..ed3e2caa2a 100644
--- a/source4/auth/gensec/schannel.c
+++ b/source4/auth/gensec/schannel.c
@@ -64,9 +64,12 @@ static NTSTATUS schannel_update(struct gensec_security *gensec_security, TALLOC_
/* to support this we'd need to have access to the full domain name */
bind_schannel.bind_type = 23;
bind_schannel.u.info23.domain = cli_credentials_get_domain(gensec_security->credentials);
- bind_schannel.u.info23.account_name = cli_credentials_get_username(gensec_security->credentials);
- bind_schannel.u.info23.dnsdomain = str_format_nbt_domain(out_mem_ctx, fulldomainname);
- bind_schannel.u.info23.workstation = str_format_nbt_domain(out_mem_ctx, cli_credentials_get_workstation(gensec_security->credentials));
+ bind_schannel.u.info23.workstation = cli_credentials_get_workstation(gensec_security->credentials);
+ bind_schannel.u.info23.dnsdomain = cli_credentials_get_realm(gensec_security->credentials);
+ /* w2k3 refuses us if we use the full DNS workstation?
+ why? perhaps because we don't fill in the dNSHostName
+ attribute in the machine account? */
+ bind_schannel.u.info23.dnsworkstation = cli_credentials_get_workstation(gensec_security->credentials);
#else
bind_schannel.bind_type = 3;
bind_schannel.u.info3.domain = cli_credentials_get_domain(gensec_security->credentials);
diff --git a/source4/librpc/idl/schannel.idl b/source4/librpc/idl/schannel.idl
index e41628fdcd..8c72742f88 100644
--- a/source4/librpc/idl/schannel.idl
+++ b/source4/librpc/idl/schannel.idl
@@ -20,9 +20,9 @@ interface schannel
typedef struct {
astring domain;
- astring account_name;
- nbt_string dnsdomain; /* in NBT dotted format */
- nbt_string workstation;
+ astring workstation;
+ nbt_string dnsdomain;
+ nbt_string dnsworkstation;
} schannel_bind_23;
typedef [nodiscriminant] union {