diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/cldap_server/netlogon.c | 6 | ||||
-rw-r--r-- | source4/librpc/idl/nbt.idl | 8 | ||||
-rw-r--r-- | source4/torture/ldap/cldap.c | 19 |
3 files changed, 16 insertions, 17 deletions
diff --git a/source4/cldap_server/netlogon.c b/source4/cldap_server/netlogon.c index 33f8734278..8dd7d549b4 100644 --- a/source4/cldap_server/netlogon.c +++ b/source4/cldap_server/netlogon.c @@ -108,6 +108,7 @@ static NTSTATUS cldapd_netlogon_fill(struct cldapd_server *cldapd, switch (version & 0xF) { case 0: case 1: + netlogon->logon1.type = (user?19+2:19); netlogon->logon1.pdc_name = pdc_name; netlogon->logon1.user_name = user; netlogon->logon1.domain_name = flatname; @@ -117,6 +118,7 @@ static NTSTATUS cldapd_netlogon_fill(struct cldapd_server *cldapd, break; case 2: case 3: + netlogon->logon3.type = (user?19+2:19); netlogon->logon3.pdc_name = pdc_name; netlogon->logon3.user_name = user; netlogon->logon3.domain_name = flatname; @@ -133,6 +135,7 @@ static NTSTATUS cldapd_netlogon_fill(struct cldapd_server *cldapd, case 5: case 6: case 7: + netlogon->logon5.type = (user?23+2:23); netlogon->logon5.server_type = server_type; netlogon->logon5.domain_uuid = domain_uuid; netlogon->logon5.forest = realm; @@ -147,6 +150,7 @@ static NTSTATUS cldapd_netlogon_fill(struct cldapd_server *cldapd, netlogon->logon5.lm20_token = 0xFFFF; break; default: + netlogon->logon13.type = (user?23+2:23); netlogon->logon13.server_type = server_type; netlogon->logon13.domain_uuid = domain_uuid; netlogon->logon13.forest = realm; @@ -181,7 +185,7 @@ void cldapd_netlogon_request(struct cldap_socket *cldap, int i; const char *domain = NULL; const char *host = NULL; - const char *user = ""; + const char *user = NULL; const char *domain_guid = NULL; const char *domain_sid = NULL; int acct_control = -1; diff --git a/source4/librpc/idl/nbt.idl b/source4/librpc/idl/nbt.idl index db6dad9524..fe41549327 100644 --- a/source4/librpc/idl/nbt.idl +++ b/source4/librpc/idl/nbt.idl @@ -454,7 +454,7 @@ quite identical to, the netlogon structures above */ typedef struct { - [value(21)] uint16 type; + uint16 type; nstring pdc_name; nstring user_name; nstring domain_name; @@ -464,7 +464,7 @@ } nbt_cldap_netlogon_1; typedef struct { - [value(21)] uint16 type; + uint16 type; nstring pdc_name; nstring user_name; nstring domain_name; @@ -481,7 +481,7 @@ } nbt_cldap_netlogon_3; typedef struct { - [value(25)] uint32 type; + uint32 type; nbt_server_type server_type; GUID domain_uuid; nbt_string forest; @@ -498,7 +498,7 @@ } nbt_cldap_netlogon_5; typedef struct { - [value(25)] uint32 type; + uint32 type; nbt_server_type server_type; GUID domain_uuid; nbt_string forest; diff --git a/source4/torture/ldap/cldap.c b/source4/torture/ldap/cldap.c index c0a073c2f8..d6c56dbd34 100644 --- a/source4/torture/ldap/cldap.c +++ b/source4/torture/ldap/cldap.c @@ -32,8 +32,13 @@ __location__, nt_errstr(status), nt_errstr(correct)); \ ret = False; \ goto done; \ - }} while (0) - + } \ + if (DEBUGLVL(10)) { \ + NDR_PRINT_UNION_DEBUG(nbt_cldap_netlogon, \ + search.in.version & 0xF, \ + &search.out.netlogon); \ + } \ +} while (0) /* test netlogon operations @@ -72,11 +77,6 @@ static BOOL test_cldap_netlogon(TALLOC_CTX *mem_ctx, const char *dest) printf("Trying netlogon level %d\n", i); status = cldap_netlogon(cldap, mem_ctx, &search); CHECK_STATUS(status, NT_STATUS_OK); - if (DEBUGLVL(10)) { - NDR_PRINT_UNION_DEBUG(nbt_cldap_netlogon, - search.in.version & 0xF, - &search.out.netlogon); - } } printf("Scanning for netlogon level bits\n"); @@ -85,11 +85,6 @@ static BOOL test_cldap_netlogon(TALLOC_CTX *mem_ctx, const char *dest) printf("Trying netlogon level 0x%x\n", i); status = cldap_netlogon(cldap, mem_ctx, &search); CHECK_STATUS(status, NT_STATUS_OK); - if (DEBUGLVL(10)) { - NDR_PRINT_UNION_DEBUG(nbt_cldap_netlogon, - search.in.version & 0xF, - &search.out.netlogon); - } } search.in.version = 6; |