The IRIX compiler does not like embedded unnamed unions
authorVolker Lendecke <vl@samba.org>
Thu, 2 Oct 2008 06:09:25 +0000 (08:09 +0200)
committerVolker Lendecke <vl@samba.org>
Thu, 2 Oct 2008 06:09:25 +0000 (08:09 +0200)
14 files changed:
libcli/netlogon.c
libcli/netlogon.h
source3/libads/cldap.c
source3/libsmb/clidgram.c
source3/libsmb/dsgetdcname.c
source4/cldap_server/netlogon.c
source4/libnet/libnet_become_dc.c
source4/libnet/libnet_site.c
source4/libnet/libnet_unbecome_dc.c
source4/nbt_server/dgram/netlogon.c
source4/nbt_server/irpc.c
source4/torture/ldap/cldap.c
source4/torture/nbt/dgram.c
source4/torture/rpc/dssync.c

index 36d9e5fdcd955eb2c87f2c3005fbf8616c85885f..acfce61ccaf5851cd972fa52cc3d5a426e27202b 100644 (file)
@@ -37,17 +37,17 @@ NTSTATUS push_netlogon_samlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
        if (response->ntver == NETLOGON_NT_VERSION_1) {
                ndr_err = ndr_push_struct_blob(data, mem_ctx,
                                               iconv_convenience,
-                                              &response->nt4,
+                                              &response->data.nt4,
                                               (ndr_push_flags_fn_t)ndr_push_NETLOGON_SAM_LOGON_RESPONSE_NT40);
        } else if (response->ntver & NETLOGON_NT_VERSION_5EX) {
                ndr_err = ndr_push_struct_blob(data, mem_ctx,
                                               iconv_convenience,
-                                              &response->nt5_ex,
+                                              &response->data.nt5_ex,
                                               (ndr_push_flags_fn_t)ndr_push_NETLOGON_SAM_LOGON_RESPONSE_EX_with_flags);
        } else if (response->ntver & NETLOGON_NT_VERSION_5) {
                ndr_err = ndr_push_struct_blob(data, mem_ctx,
                                               iconv_convenience,
-                                              &response->nt5,
+                                              &response->data.nt5,
                                               (ndr_push_flags_fn_t)ndr_push_NETLOGON_SAM_LOGON_RESPONSE);
        } else {
                DEBUG(0, ("Asked to push unknown netlogon response type 0x%02x\n", response->ntver));
@@ -86,11 +86,12 @@ NTSTATUS pull_netlogon_samlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
        if (ntver == NETLOGON_NT_VERSION_1) {
                ndr_err = ndr_pull_struct_blob_all(data, mem_ctx,
                                                   iconv_convenience,
-                                                  &response->nt4,
+                                                  &response->data.nt4,
                                                   (ndr_pull_flags_fn_t)ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_NT40);
                response->ntver = NETLOGON_NT_VERSION_1;
                if (NDR_ERR_CODE_IS_SUCCESS(ndr_err) && DEBUGLEVEL >= 10) {
-                       NDR_PRINT_DEBUG(NETLOGON_SAM_LOGON_RESPONSE_NT40, &response->nt4);
+                       NDR_PRINT_DEBUG(NETLOGON_SAM_LOGON_RESPONSE_NT40,
+                                       &response->data.nt4);
                }
 
        } else if (ntver & NETLOGON_NT_VERSION_5EX) {
@@ -99,7 +100,9 @@ NTSTATUS pull_netlogon_samlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
                if (!ndr) {
                        return NT_STATUS_NO_MEMORY;
                }
-               ndr_err = ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_EX_with_flags(ndr, NDR_SCALARS|NDR_BUFFERS, &response->nt5_ex, ntver);
+               ndr_err = ndr_pull_NETLOGON_SAM_LOGON_RESPONSE_EX_with_flags(
+                       ndr, NDR_SCALARS|NDR_BUFFERS, &response->data.nt5_ex,
+                       ntver);
                if (ndr->offset < ndr->data_size) {
                        ndr_err = ndr_pull_error(ndr, NDR_ERR_UNREAD_BYTES,
                                                 "not all bytes consumed ofs[%u] size[%u]",
@@ -107,17 +110,19 @@ NTSTATUS pull_netlogon_samlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
                }
                response->ntver = NETLOGON_NT_VERSION_5EX;
                if (NDR_ERR_CODE_IS_SUCCESS(ndr_err) && DEBUGLEVEL >= 10) {
-                       NDR_PRINT_DEBUG(NETLOGON_SAM_LOGON_RESPONSE_EX, &response->nt5_ex);
+                       NDR_PRINT_DEBUG(NETLOGON_SAM_LOGON_RESPONSE_EX,
+                                       &response->data.nt5_ex);
                }
 
        } else if (ntver & NETLOGON_NT_VERSION_5) {
                ndr_err = ndr_pull_struct_blob_all(data, mem_ctx,
                                                   iconv_convenience,
-                                                  &response->nt5,
+                                                  &response->data.nt5,
                                                   (ndr_pull_flags_fn_t)ndr_pull_NETLOGON_SAM_LOGON_RESPONSE);
                response->ntver = NETLOGON_NT_VERSION_5;
                if (NDR_ERR_CODE_IS_SUCCESS(ndr_err) && DEBUGLEVEL >= 10) {
-                       NDR_PRINT_DEBUG(NETLOGON_SAM_LOGON_RESPONSE, &response->nt5);
+                       NDR_PRINT_DEBUG(NETLOGON_SAM_LOGON_RESPONSE,
+                                       &response->data.nt5);
                }
        } else {
                DEBUG(2,("failed to parse netlogon response of type 0x%02x - unknown response type\n",
@@ -144,34 +149,34 @@ void map_netlogon_samlogon_response(struct netlogon_samlogon_response *response)
                break;
        case NETLOGON_NT_VERSION_5:
                ZERO_STRUCT(response_5_ex);
-               response_5_ex.command = response->nt5.command;
-               response_5_ex.pdc_name = response->nt5.pdc_name;
-               response_5_ex.user_name = response->nt5.user_name;
-               response_5_ex.domain = response->nt5.domain_name;
-               response_5_ex.domain_uuid = response->nt5.domain_uuid;
-               response_5_ex.forest = response->nt5.forest;
-               response_5_ex.dns_domain = response->nt5.dns_domain;
-               response_5_ex.pdc_dns_name = response->nt5.pdc_dns_name;
-               response_5_ex.sockaddr.pdc_ip = response->nt5.pdc_ip;
-               response_5_ex.server_type = response->nt5.server_type;
-               response_5_ex.nt_version = response->nt5.nt_version;
-               response_5_ex.lmnt_token = response->nt5.lmnt_token;
-               response_5_ex.lm20_token = response->nt5.lm20_token;
+               response_5_ex.command = response->data.nt5.command;
+               response_5_ex.pdc_name = response->data.nt5.pdc_name;
+               response_5_ex.user_name = response->data.nt5.user_name;
+               response_5_ex.domain = response->data.nt5.domain_name;
+               response_5_ex.domain_uuid = response->data.nt5.domain_uuid;
+               response_5_ex.forest = response->data.nt5.forest;
+               response_5_ex.dns_domain = response->data.nt5.dns_domain;
+               response_5_ex.pdc_dns_name = response->data.nt5.pdc_dns_name;
+               response_5_ex.sockaddr.pdc_ip = response->data.nt5.pdc_ip;
+               response_5_ex.server_type = response->data.nt5.server_type;
+               response_5_ex.nt_version = response->data.nt5.nt_version;
+               response_5_ex.lmnt_token = response->data.nt5.lmnt_token;
+               response_5_ex.lm20_token = response->data.nt5.lm20_token;
                response->ntver = NETLOGON_NT_VERSION_5EX;
-               response->nt5_ex = response_5_ex;
+               response->data.nt5_ex = response_5_ex;
                break;
 
        case NETLOGON_NT_VERSION_1:
                ZERO_STRUCT(response_5_ex);
-               response_5_ex.command = response->nt4.command;
-               response_5_ex.pdc_name = response->nt4.server;
-               response_5_ex.user_name = response->nt4.user_name;
-               response_5_ex.domain = response->nt4.domain;
-               response_5_ex.nt_version = response->nt4.nt_version;
-               response_5_ex.lmnt_token = response->nt4.lmnt_token;
-               response_5_ex.lm20_token = response->nt4.lm20_token;
+               response_5_ex.command = response->data.nt4.command;
+               response_5_ex.pdc_name = response->data.nt4.server;
+               response_5_ex.user_name = response->data.nt4.user_name;
+               response_5_ex.domain = response->data.nt4.domain;
+               response_5_ex.nt_version = response->data.nt4.nt_version;
+               response_5_ex.lmnt_token = response->data.nt4.lmnt_token;
+               response_5_ex.lm20_token = response->data.nt4.lm20_token;
                response->ntver = NETLOGON_NT_VERSION_5EX;
-               response->nt5_ex = response_5_ex;
+               response->data.nt5_ex = response_5_ex;
                break;
        }
        return;
@@ -185,7 +190,9 @@ NTSTATUS push_nbt_netlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
        enum ndr_err_code ndr_err;
        switch (response->response_type) {
        case NETLOGON_GET_PDC:
-               ndr_err = ndr_push_struct_blob(data, mem_ctx, iconv_convenience, &response->get_pdc,
+               ndr_err = ndr_push_struct_blob(data, mem_ctx,
+                                              iconv_convenience,
+                                              &response->data.get_pdc,
                                               (ndr_push_flags_fn_t)ndr_push_nbt_netlogon_response_from_pdc);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        status = ndr_map_error2ntstatus(ndr_err);
@@ -199,7 +206,9 @@ NTSTATUS push_nbt_netlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
                status = NT_STATUS_OK;
                break;
        case NETLOGON_SAMLOGON:
-               status = push_netlogon_samlogon_response(data, mem_ctx, iconv_convenience, &response->samlogon);
+               status = push_netlogon_samlogon_response(
+                       data, mem_ctx, iconv_convenience,
+                       &response->data.samlogon);
                break;
        }
        return status;
@@ -221,7 +230,9 @@ NTSTATUS pull_nbt_netlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
 
        switch (command) {
        case NETLOGON_RESPONSE_FROM_PDC:
-               ndr_err = ndr_pull_struct_blob_all(data, mem_ctx, iconv_convenience, &response->get_pdc,
+               ndr_err = ndr_pull_struct_blob_all(data, mem_ctx,
+                                                  iconv_convenience,
+                                                  &response->data.get_pdc,
                                                   (ndr_pull_flags_fn_t)ndr_pull_nbt_netlogon_response_from_pdc);
                if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                        status = ndr_map_error2ntstatus(ndr_err);
@@ -241,7 +252,9 @@ NTSTATUS pull_nbt_netlogon_response(DATA_BLOB *data, TALLOC_CTX *mem_ctx,
        case LOGON_SAM_LOGON_RESPONSE_EX:
        case LOGON_SAM_LOGON_PAUSE_RESPONSE_EX:
        case LOGON_SAM_LOGON_USER_UNKNOWN_EX:
-               status = pull_netlogon_samlogon_response(data, mem_ctx, iconv_convenience, &response->samlogon);
+               status = pull_netlogon_samlogon_response(
+                       data, mem_ctx, iconv_convenience,
+                       &response->data.samlogon);
                response->response_type = NETLOGON_SAMLOGON;
                break;
 
index 8bd9d0d90a7b5e770ea7b1ce79af5f477422e69b..6ca3de3366ea35ddc1d950577957981b8fa49aa8 100644 (file)
@@ -36,7 +36,7 @@ struct netlogon_samlogon_response
                struct NETLOGON_SAM_LOGON_RESPONSE_NT40 nt4;
                struct NETLOGON_SAM_LOGON_RESPONSE nt5;
                struct NETLOGON_SAM_LOGON_RESPONSE_EX nt5_ex;
-       };
+       } data;
 
 };
 
@@ -46,7 +46,7 @@ struct nbt_netlogon_response
        union {
                struct nbt_netlogon_response_from_pdc get_pdc;
                struct netlogon_samlogon_response samlogon;
-       };
+       } data;
 };
 
 #include "../libcli/netlogon_proto.h"
index edabbed0e93bdda6ab91620dcc9379fa8a87fa95..c37220c9030a6669e427a9a54bb6eb9bac10cc05 100644 (file)
@@ -283,7 +283,7 @@ bool ads_cldap_netlogon_5(TALLOC_CTX *mem_ctx,
                return false;
        }
 
-       *reply5 = reply->nt5_ex;
+       *reply5 = reply->data.nt5_ex;
 
        return true;
 }
index e8799bce4794602c41520a3cc8a4801fcb6ebb66..611ae0870c4f2bf6e8eb3a683dea3f8e87d1b364 100644 (file)
@@ -279,8 +279,8 @@ bool receive_getdc_response(TALLOC_CTX *mem_ctx,
        /* do we still need this ? */
        *nt_version = r.ntver;
 
-       returned_domain = r.nt5_ex.domain;
-       returned_dc = r.nt5_ex.pdc_name;
+       returned_domain = r.data.nt5_ex.domain;
+       returned_dc = r.data.nt5_ex.pdc_name;
 
        if (!strequal(returned_domain, domain_name)) {
                DEBUG(3, ("GetDC: Expected domain %s, got %s\n",
index d2ede1d875b6955fdc95a0703d175addc83538ef..18010aaa1ce74b567588a2af5c370829b6d07e30 100644 (file)
@@ -272,12 +272,12 @@ static uint32_t get_cldap_reply_server_flags(struct netlogon_samlogon_response *
                case 3:
                case 18:
                case 19:
-                       return r->nt5.server_type;
+                       return r->data.nt5.server_type;
                case 4:
                case 5:
                case 6:
                case 7:
-                       return r->nt5_ex.server_type;
+                       return r->data.nt5_ex.server_type;
                case 8:
                case 9:
                case 10:
@@ -286,7 +286,7 @@ static uint32_t get_cldap_reply_server_flags(struct netlogon_samlogon_response *
                case 13:
                case 14:
                case 15:
-                       return r->nt5_ex.server_type;
+                       return r->data.nt5_ex.server_type;
                case 20:
                case 21:
                case 22:
@@ -296,11 +296,11 @@ static uint32_t get_cldap_reply_server_flags(struct netlogon_samlogon_response *
                case 26:
                case 27:
                case 28:
-                       return r->nt5_ex.server_type;
+                       return r->data.nt5_ex.server_type;
                case 29:
                case 30:
                case 31:
-                       return r->nt5_ex.server_type;
+                       return r->data.nt5_ex.server_type;
                default:
                        return 0;
        }
@@ -913,10 +913,10 @@ static NTSTATUS process_dc_dns(TALLOC_CTX *mem_ctx,
        }
 
        status = make_dc_info_from_cldap_reply(mem_ctx, flags, &dclist[i].ss,
-                                              &r->nt5_ex, info);
+                                              &r->data.nt5_ex, info);
        if (NT_STATUS_IS_OK(status)) {
                return store_cldap_reply(mem_ctx, flags, &dclist[i].ss,
-                                        nt_version, &r->nt5_ex);
+                                        nt_version, &r->data.nt5_ex);
        }
 
        return status;
@@ -1035,7 +1035,7 @@ static NTSTATUS process_dc_netbios(TALLOC_CTX *mem_ctx,
                        logon1.domain = talloc_strdup_upper(mem_ctx, domain_name);
                        NT_STATUS_HAVE_NO_MEMORY(logon1.domain);
 
-                       r->nt4 = logon1;
+                       r->data.nt4 = logon1;
                        r->ntver = nt_version;
 
                        namecache_store(tmp_dc_name, NBT_NAME_SERVER, 1, &ip_list);
@@ -1049,10 +1049,10 @@ static NTSTATUS process_dc_netbios(TALLOC_CTX *mem_ctx,
  make_reply:
 
        status = make_dc_info_from_cldap_reply(mem_ctx, flags, &dclist[i].ss,
-                                              &r->nt5_ex, info);
+                                              &r->data.nt5_ex, info);
        if (NT_STATUS_IS_OK(status) && store_cache) {
                return store_cldap_reply(mem_ctx, flags, &dclist[i].ss,
-                                        nt_version, &r->nt5_ex);
+                                        nt_version, &r->data.nt5_ex);
        }
 
        return status;
index 7dccd81fad2a17d6195dd1a71402b4178fcaf6a4..aac74f5d777be421bdd16d160886805e0b8cb3dd 100644 (file)
@@ -331,68 +331,68 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx,
 
                /* could check if the user exists */
                if (user_known) {
-                       netlogon->nt5_ex.command      = LOGON_SAM_LOGON_RESPONSE_EX;
+                       netlogon->data.nt5_ex.command      = LOGON_SAM_LOGON_RESPONSE_EX;
                } else {
-                       netlogon->nt5_ex.command      = LOGON_SAM_LOGON_USER_UNKNOWN_EX;
+                       netlogon->data.nt5_ex.command      = LOGON_SAM_LOGON_USER_UNKNOWN_EX;
                }
-               netlogon->nt5_ex.server_type  = server_type;
-               netlogon->nt5_ex.domain_uuid  = domain_uuid;
-               netlogon->nt5_ex.forest       = realm;
-               netlogon->nt5_ex.dns_domain   = dns_domain;
-               netlogon->nt5_ex.pdc_dns_name = pdc_dns_name;
-               netlogon->nt5_ex.domain       = flatname;
-               netlogon->nt5_ex.pdc_name     = lp_netbios_name(lp_ctx);
-               netlogon->nt5_ex.user_name    = user;
-               netlogon->nt5_ex.server_site  = server_site;
-               netlogon->nt5_ex.client_site  = client_site;
+               netlogon->data.nt5_ex.server_type  = server_type;
+               netlogon->data.nt5_ex.domain_uuid  = domain_uuid;
+               netlogon->data.nt5_ex.forest       = realm;
+               netlogon->data.nt5_ex.dns_domain   = dns_domain;
+               netlogon->data.nt5_ex.pdc_dns_name = pdc_dns_name;
+               netlogon->data.nt5_ex.domain       = flatname;
+               netlogon->data.nt5_ex.pdc_name     = lp_netbios_name(lp_ctx);
+               netlogon->data.nt5_ex.user_name    = user;
+               netlogon->data.nt5_ex.server_site  = server_site;
+               netlogon->data.nt5_ex.client_site  = client_site;
 
                if (version & NETLOGON_NT_VERSION_5EX_WITH_IP) {
                        /* Clearly this needs to be fixed up for IPv6 */
                        extra_flags = NETLOGON_NT_VERSION_5EX_WITH_IP;
-                       netlogon->nt5_ex.sockaddr.sa_family    = 2;
-                       netlogon->nt5_ex.sockaddr.pdc_ip       = pdc_ip;
-                       netlogon->nt5_ex.sockaddr.remaining = data_blob_talloc_zero(mem_ctx, 8);
+                       netlogon->data.nt5_ex.sockaddr.sa_family    = 2;
+                       netlogon->data.nt5_ex.sockaddr.pdc_ip       = pdc_ip;
+                       netlogon->data.nt5_ex.sockaddr.remaining = data_blob_talloc_zero(mem_ctx, 8);
                }
-               netlogon->nt5_ex.nt_version   = NETLOGON_NT_VERSION_1|NETLOGON_NT_VERSION_5EX|extra_flags;
-               netlogon->nt5_ex.lmnt_token   = 0xFFFF;
-               netlogon->nt5_ex.lm20_token   = 0xFFFF;
+               netlogon->data.nt5_ex.nt_version   = NETLOGON_NT_VERSION_1|NETLOGON_NT_VERSION_5EX|extra_flags;
+               netlogon->data.nt5_ex.lmnt_token   = 0xFFFF;
+               netlogon->data.nt5_ex.lm20_token   = 0xFFFF;
 
        } else if (version & NETLOGON_NT_VERSION_5) {
                netlogon->ntver = NETLOGON_NT_VERSION_5;
 
                /* could check if the user exists */
                if (user_known) {
-                       netlogon->nt5.command      = LOGON_SAM_LOGON_RESPONSE;
+                       netlogon->data.nt5.command      = LOGON_SAM_LOGON_RESPONSE;
                } else {
-                       netlogon->nt5.command      = LOGON_SAM_LOGON_USER_UNKNOWN;
+                       netlogon->data.nt5.command      = LOGON_SAM_LOGON_USER_UNKNOWN;
                }
-               netlogon->nt5.pdc_name     = pdc_name;
-               netlogon->nt5.user_name    = user;
-               netlogon->nt5.domain_name  = flatname;
-               netlogon->nt5.domain_uuid  = domain_uuid;
-               netlogon->nt5.forest       = realm;
-               netlogon->nt5.dns_domain   = dns_domain;
-               netlogon->nt5.pdc_dns_name = pdc_dns_name;
-               netlogon->nt5.pdc_ip       = pdc_ip;
-               netlogon->nt5.server_type  = server_type;
-               netlogon->nt5.nt_version   = NETLOGON_NT_VERSION_1|NETLOGON_NT_VERSION_5;
-               netlogon->nt5.lmnt_token   = 0xFFFF;
-               netlogon->nt5.lm20_token   = 0xFFFF;
+               netlogon->data.nt5.pdc_name     = pdc_name;
+               netlogon->data.nt5.user_name    = user;
+               netlogon->data.nt5.domain_name  = flatname;
+               netlogon->data.nt5.domain_uuid  = domain_uuid;
+               netlogon->data.nt5.forest       = realm;
+               netlogon->data.nt5.dns_domain   = dns_domain;
+               netlogon->data.nt5.pdc_dns_name = pdc_dns_name;
+               netlogon->data.nt5.pdc_ip       = pdc_ip;
+               netlogon->data.nt5.server_type  = server_type;
+               netlogon->data.nt5.nt_version   = NETLOGON_NT_VERSION_1|NETLOGON_NT_VERSION_5;
+               netlogon->data.nt5.lmnt_token   = 0xFFFF;
+               netlogon->data.nt5.lm20_token   = 0xFFFF;
 
        } else /* (version & NETLOGON_NT_VERSION_1) and all other cases */ {
                netlogon->ntver = NETLOGON_NT_VERSION_1;
                /* could check if the user exists */
                if (user_known) {
-                       netlogon->nt4.command      = LOGON_SAM_LOGON_RESPONSE;
+                       netlogon->data.nt4.command      = LOGON_SAM_LOGON_RESPONSE;
                } else {
-                       netlogon->nt4.command      = LOGON_SAM_LOGON_USER_UNKNOWN;
+                       netlogon->data.nt4.command      = LOGON_SAM_LOGON_USER_UNKNOWN;
                }
-               netlogon->nt4.server      = pdc_name;
-               netlogon->nt4.user_name   = user;
-               netlogon->nt4.domain      = flatname;
-               netlogon->nt4.nt_version  = NETLOGON_NT_VERSION_1;
-               netlogon->nt4.lmnt_token  = 0xFFFF;
-               netlogon->nt4.lm20_token  = 0xFFFF;
+               netlogon->data.nt4.server      = pdc_name;
+               netlogon->data.nt4.user_name   = user;
+               netlogon->data.nt4.domain      = flatname;
+               netlogon->data.nt4.nt_version  = NETLOGON_NT_VERSION_1;
+               netlogon->data.nt4.lmnt_token  = 0xFFFF;
+               netlogon->data.nt4.lm20_token  = 0xFFFF;
        }
 
        return NT_STATUS_OK;
index b9071d5eb1dbbae8f16c2bf2570cefb598503800..4cbebbf6d0af1a69f45170eb36c514b903485263 100644 (file)
@@ -770,7 +770,7 @@ static void becomeDC_recv_cldap(struct cldap_request *req)
        c->status = cldap_netlogon_recv(req, s, &s->cldap.io);
        if (!composite_is_ok(c)) return;
 
-       s->cldap.netlogon = s->cldap.io.out.netlogon.nt5_ex;
+       s->cldap.netlogon = s->cldap.io.out.netlogon.data.nt5_ex;
 
        s->domain.dns_name              = s->cldap.netlogon.dns_domain;
        s->domain.netbios_name          = s->cldap.netlogon.domain;
index 5647a93b8d283a75d08a96268af9175283338239..4a32ab92ed58b4a1e6559ecfac473f254e29eac1 100644 (file)
@@ -58,7 +58,8 @@ NTSTATUS libnet_FindSite(TALLOC_CTX *ctx, struct libnet_context *lctx, struct li
 
        cldap = cldap_socket_init(tmp_ctx, lctx->event_ctx, lp_iconv_convenience(lctx->lp_ctx));
        status = cldap_netlogon(cldap, tmp_ctx, &search);
-       if (!NT_STATUS_IS_OK(status) || !search.out.netlogon.nt5_ex.client_site) {
+       if (!NT_STATUS_IS_OK(status)
+           || !search.out.netlogon.data.nt5_ex.client_site) {
                /*
                  If cldap_netlogon() returns in error,
                  default to using Default-First-Site-Name.
@@ -72,7 +73,7 @@ NTSTATUS libnet_FindSite(TALLOC_CTX *ctx, struct libnet_context *lctx, struct li
                }
        } else {
                site_name_str = talloc_asprintf(tmp_ctx, "%s",
-                                       search.out.netlogon.nt5_ex.client_site);
+                                       search.out.netlogon.data.nt5_ex.client_site);
                if (!site_name_str) {
                        r->out.error_string = NULL;
                        talloc_free(tmp_ctx);
index 4eeaf1b80c306b0b062e739791d3739f8c254da2..3a9a5cebd80c4ee02e48258ef99a632bfeb6360e 100644 (file)
@@ -289,7 +289,7 @@ static void unbecomeDC_recv_cldap(struct cldap_request *req)
        c->status = cldap_netlogon_recv(req, s, &s->cldap.io);
        if (!composite_is_ok(c)) return;
 
-       s->cldap.netlogon = s->cldap.io.out.netlogon.nt5_ex;
+       s->cldap.netlogon = s->cldap.io.out.netlogon.data.nt5_ex;
 
        s->domain.dns_name              = s->cldap.netlogon.dns_domain;
        s->domain.netbios_name          = s->cldap.netlogon.domain;
index 5e95270b7d2f8f01960b552055748fd308dd454f..1bc3e2b62fd63f7b260ec1549111719f95ec6cc2 100644 (file)
@@ -77,7 +77,7 @@ static void nbtd_netlogon_getdc(struct dgram_mailslot_handler *dgmslot,
        /* setup a GETDC reply */
        ZERO_STRUCT(netlogon_response);
        netlogon_response.response_type = NETLOGON_GET_PDC;
-       pdc = &netlogon_response.get_pdc;
+       pdc = &netlogon_response.data.get_pdc;
 
        pdc->command = NETLOGON_RESPONSE_FROM_PDC;
        pdc->pdc_name         = lp_netbios_name(iface->nbtsrv->task->lp_ctx);
@@ -132,7 +132,7 @@ static void nbtd_netlogon_samlogon(struct dgram_mailslot_handler *dgmslot,
 
        status = fill_netlogon_samlogon_response(samctx, packet, NULL, name->name, sid, NULL, 
                                                 netlogon->req.logon.user_name, netlogon->req.logon.acct_control, src->addr, 
-                                                netlogon->req.logon.nt_version, iface->nbtsrv->task->lp_ctx, &netlogon_response.samlogon);
+                                                netlogon->req.logon.nt_version, iface->nbtsrv->task->lp_ctx, &netlogon_response.data.samlogon);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(2,("NBT netlogon query failed domain=%s sid=%s version=%d - %s\n",
                         name->name, dom_sid_string(packet, sid), netlogon->req.logon.nt_version, nt_errstr(status)));
index 8f1f74afcf2bfe1d391c077fb78d8ac7e60b7eb7..fc61372ead8377b7be865f286fe75e0b3c267d52 100644 (file)
@@ -79,16 +79,17 @@ static void getdc_recv_netlogon_reply(struct dgram_mailslot_handler *dgmslot,
 
        /* We asked for version 1 only */
        if (netlogon.response_type == NETLOGON_SAMLOGON
-           && netlogon.samlogon.ntver != NETLOGON_NT_VERSION_1) {
+           && netlogon.data.samlogon.ntver != NETLOGON_NT_VERSION_1) {
                status = NT_STATUS_INVALID_NETWORK_RESPONSE;
                goto done;
        }
 
-       p = netlogon.samlogon.nt4.server;
+       p = netlogon.data.samlogon.data.nt4.server;
 
        DEBUG(10, ("NTLOGON_SAM_LOGON_REPLY: server: %s, user: %s, "
-                  "domain: %s\n", p, netlogon.samlogon.nt4.user_name,
-                  netlogon.samlogon.nt4.domain));
+                  "domain: %s\n", p,
+                  netlogon.data.samlogon.data.nt4.user_name,
+                  netlogon.data.samlogon.data.nt4.domain));
 
        if (*p == '\\') p += 1;
        if (*p == '\\') p += 1;
index 3730193c86fb22034eba4a6113d56944aba4f8e8..23b0554c4f65ecc7eb0688083baeaea8171355ae 100644 (file)
@@ -64,7 +64,7 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        n1 = search.out.netlogon;
 
        search.in.user         = "Administrator";
-       search.in.realm        = n1.nt5_ex.dns_domain;
+       search.in.realm        = n1.data.nt5_ex.dns_domain;
        search.in.host         = "__cldap_torture__";
 
        printf("Scanning for netlogon levels\n");
@@ -93,8 +93,8 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        search.in.user = NULL;
        status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
-       CHECK_STRING(search.out.netlogon.nt5_ex.user_name, "");
-       CHECK_VAL(search.out.netlogon.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, "");
+       CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
 
        printf("Trying with User=Administrator\n");
 
@@ -102,8 +102,8 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
 
-       CHECK_STRING(search.out.netlogon.nt5_ex.user_name, search.in.user);
-       CHECK_VAL(search.out.netlogon.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN_EX);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, search.in.user);
+       CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN_EX);
 
        search.in.version = NETLOGON_NT_VERSION_5;
        status = cldap_netlogon(cldap, tctx, &search);
@@ -114,8 +114,8 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        search.in.user = NULL;
        status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
-       CHECK_STRING(search.out.netlogon.nt5_ex.user_name, "");
-       CHECK_VAL(search.out.netlogon.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, "");
+       CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE);
 
        printf("Trying with User=Administrator\n");
 
@@ -123,18 +123,18 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
 
-       CHECK_STRING(search.out.netlogon.nt5_ex.user_name, search.in.user);
-       CHECK_VAL(search.out.netlogon.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, search.in.user);
+       CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN);
 
        search.in.version = NETLOGON_NT_VERSION_5 | NETLOGON_NT_VERSION_5EX;
 
        printf("Trying with a GUID\n");
        search.in.realm       = NULL;
-       search.in.domain_guid = GUID_string(tctx, &n1.nt5_ex.domain_uuid);
+       search.in.domain_guid = GUID_string(tctx, &n1.data.nt5_ex.domain_uuid);
        status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
-       CHECK_VAL(search.out.netlogon.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN_EX);
-       CHECK_STRING(GUID_string(tctx, &search.out.netlogon.nt5_ex.domain_uuid), search.in.domain_guid);
+       CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN_EX);
+       CHECK_STRING(GUID_string(tctx, &search.out.netlogon.data.nt5_ex.domain_uuid), search.in.domain_guid);
 
        printf("Trying with a incorrect GUID\n");
        guid = GUID_random();
@@ -145,53 +145,53 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
 
        printf("Trying with a AAC\n");
        search.in.acct_control = ACB_WSTRUST|ACB_SVRTRUST;
-       search.in.realm = n1.nt5_ex.dns_domain;
+       search.in.realm = n1.data.nt5_ex.dns_domain;
        status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
-       CHECK_VAL(search.out.netlogon.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
-       CHECK_STRING(search.out.netlogon.nt5_ex.user_name, "");
+       CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, "");
 
        printf("Trying with a zero AAC\n");
        search.in.acct_control = 0x0;
-       search.in.realm = n1.nt5_ex.dns_domain;
+       search.in.realm = n1.data.nt5_ex.dns_domain;
        status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
-       CHECK_VAL(search.out.netlogon.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
-       CHECK_STRING(search.out.netlogon.nt5_ex.user_name, "");
+       CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, "");
 
        printf("Trying with a zero AAC and user=Administrator\n");
        search.in.acct_control = 0x0;
        search.in.user = "Administrator";
-       search.in.realm = n1.nt5_ex.dns_domain;
+       search.in.realm = n1.data.nt5_ex.dns_domain;
        status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
-       CHECK_VAL(search.out.netlogon.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN_EX);
-       CHECK_STRING(search.out.netlogon.nt5_ex.user_name, "Administrator");
+       CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN_EX);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, "Administrator");
 
        printf("Trying with a bad AAC\n");
        search.in.user = NULL;
        search.in.acct_control = 0xFF00FF00;
-       search.in.realm = n1.nt5_ex.dns_domain;
+       search.in.realm = n1.data.nt5_ex.dns_domain;
        status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
-       CHECK_VAL(search.out.netlogon.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
-       CHECK_STRING(search.out.netlogon.nt5_ex.user_name, "");
+       CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, "");
 
        printf("Trying with a user only\n");
        search = empty_search;
        search.in.user = "Administrator";
        status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
-       CHECK_STRING(search.out.netlogon.nt5_ex.dns_domain, n1.nt5_ex.dns_domain);
-       CHECK_STRING(search.out.netlogon.nt5_ex.user_name, search.in.user);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.dns_domain, n1.data.nt5_ex.dns_domain);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, search.in.user);
 
        printf("Trying with just a bad username\n");
        search.in.user = "___no_such_user___";
        status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
-       CHECK_STRING(search.out.netlogon.nt5_ex.user_name, search.in.user);
-       CHECK_STRING(search.out.netlogon.nt5_ex.dns_domain, n1.nt5_ex.dns_domain);
-       CHECK_VAL(search.out.netlogon.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN_EX);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, search.in.user);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.dns_domain, n1.data.nt5_ex.dns_domain);
+       CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN_EX);
 
        printf("Trying with just a bad domain\n");
        search = empty_search;
@@ -200,29 +200,29 @@ static bool test_cldap_netlogon(struct torture_context *tctx, const char *dest)
        CHECK_STATUS(status, NT_STATUS_NOT_FOUND);
 
        printf("Trying with a incorrect domain and correct guid\n");
-       search.in.domain_guid = GUID_string(tctx, &n1.nt5_ex.domain_uuid);
+       search.in.domain_guid = GUID_string(tctx, &n1.data.nt5_ex.domain_uuid);
        status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
-       CHECK_STRING(search.out.netlogon.nt5_ex.dns_domain, n1.nt5_ex.dns_domain);
-       CHECK_STRING(search.out.netlogon.nt5_ex.user_name, "");
-       CHECK_VAL(search.out.netlogon.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.dns_domain, n1.data.nt5_ex.dns_domain);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, "");
+       CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
 
        printf("Trying with a incorrect domain and incorrect guid\n");
        search.in.domain_guid = GUID_string(tctx, &guid);
        status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_NOT_FOUND);
-       CHECK_STRING(search.out.netlogon.nt5_ex.dns_domain, n1.nt5_ex.dns_domain);
-       CHECK_STRING(search.out.netlogon.nt5_ex.user_name, "");
-       CHECK_VAL(search.out.netlogon.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.dns_domain, n1.data.nt5_ex.dns_domain);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, "");
+       CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
 
        printf("Trying with a incorrect GUID and correct domain\n");
        search.in.domain_guid = GUID_string(tctx, &guid);
-       search.in.realm = n1.nt5_ex.dns_domain;
+       search.in.realm = n1.data.nt5_ex.dns_domain;
        status = cldap_netlogon(cldap, tctx, &search);
        CHECK_STATUS(status, NT_STATUS_OK);
-       CHECK_STRING(search.out.netlogon.nt5_ex.dns_domain, n1.nt5_ex.dns_domain);
-       CHECK_STRING(search.out.netlogon.nt5_ex.user_name, "");
-       CHECK_VAL(search.out.netlogon.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.dns_domain, n1.data.nt5_ex.dns_domain);
+       CHECK_STRING(search.out.netlogon.data.nt5_ex.user_name, "");
+       CHECK_VAL(search.out.netlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX);
 
        return true;
 }
@@ -255,9 +255,9 @@ static bool test_cldap_netlogon_flags(struct torture_context *tctx,
 
        n1 = search.out.netlogon;
        if (n1.ntver == NETLOGON_NT_VERSION_5)
-               server_type = n1.nt5.server_type;
+               server_type = n1.data.nt5.server_type;
        else if (n1.ntver == NETLOGON_NT_VERSION_5EX)
-               server_type = n1.nt5_ex.server_type;    
+               server_type = n1.data.nt5_ex.server_type;       
 
        printf("The word is: %i\n", server_type);
        if (server_type & NBT_SERVER_PDC)
@@ -366,9 +366,9 @@ static bool test_cldap_netlogon_flag_ds_dns_forest(struct torture_context *tctx,
 
        n1 = search.out.netlogon;
        if (n1.ntver == NETLOGON_NT_VERSION_5)
-               server_type = n1.nt5.server_type;
+               server_type = n1.data.nt5.server_type;
        else if (n1.ntver == NETLOGON_NT_VERSION_5EX)
-               server_type = n1.nt5_ex.server_type;
+               server_type = n1.data.nt5_ex.server_type;
 
        if (server_type & NBT_SERVER_DS_DNS_FOREST) {
                struct cldap_search search2;
index eac2b1fe30951169663a50f66ba1edefb6848408..5d26d65e0c0f25b1d296fca42af38cab6b92acfd 100644 (file)
@@ -148,7 +148,7 @@ static bool nbt_test_netlogon(struct torture_context *tctx)
        torture_assert(tctx, response != NULL, "Failed to receive a netlogon reply packet");
 
        torture_assert(tctx, response->response_type == NETLOGON_GET_PDC, "Got incorrect type of netlogon response");
-       torture_assert(tctx, response->get_pdc.command == NETLOGON_RESPONSE_FROM_PDC, "Got incorrect netlogon response command");
+       torture_assert(tctx, response->data.get_pdc.command == NETLOGON_RESPONSE_FROM_PDC, "Got incorrect netlogon response command");
 
        return true;
 }
@@ -243,10 +243,10 @@ static bool nbt_test_netlogon2(struct torture_context *tctx)
        torture_assert(tctx, response != NULL, "Failed to receive a netlogon reply packet");
 
        torture_assert_int_equal(tctx, response->response_type, NETLOGON_SAMLOGON, "Got incorrect type of netlogon response");
-       map_netlogon_samlogon_response(&response->samlogon);
+       map_netlogon_samlogon_response(&response->data.samlogon);
 
-       torture_assert_int_equal(tctx, response->samlogon.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX, "Got incorrect netlogon response command");
-       torture_assert_int_equal(tctx, response->samlogon.nt5_ex.nt_version, NETLOGON_NT_VERSION_5EX_WITH_IP|NETLOGON_NT_VERSION_5EX|NETLOGON_NT_VERSION_1, "Got incorrect netlogon response command");
+       torture_assert_int_equal(tctx, response->data.samlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE_EX, "Got incorrect netlogon response command");
+       torture_assert_int_equal(tctx, response->data.samlogon.data.nt5_ex.nt_version, NETLOGON_NT_VERSION_5EX_WITH_IP|NETLOGON_NT_VERSION_5EX|NETLOGON_NT_VERSION_1, "Got incorrect netlogon response command");
 
        /* setup (another) temporary mailslot listener for replies */
        dgmslot = dgram_mailslot_temp(dgmsock, NBT_MAILSLOT_GETDC,
@@ -282,11 +282,11 @@ static bool nbt_test_netlogon2(struct torture_context *tctx)
        torture_assert(tctx, response != NULL, "Failed to receive a netlogon reply packet");
 
        torture_assert_int_equal(tctx, response->response_type, NETLOGON_SAMLOGON, "Got incorrect type of netlogon response");
-       map_netlogon_samlogon_response(&response->samlogon);
+       map_netlogon_samlogon_response(&response->data.samlogon);
 
-       torture_assert_int_equal(tctx, response->samlogon.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN, "Got incorrect netlogon response command");
+       torture_assert_int_equal(tctx, response->data.samlogon.data.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN, "Got incorrect netlogon response command");
 
-       torture_assert_str_equal(tctx, response->samlogon.nt5_ex.user_name, TEST_NAME"$", "Got incorrect user in netlogon response");
+       torture_assert_str_equal(tctx, response->data.samlogon.data.nt5_ex.user_name, TEST_NAME"$", "Got incorrect user in netlogon response");
 
        join_ctx = torture_join_domain(tctx, TEST_NAME, 
                                       ACB_WSTRUST, &machine_credentials);
@@ -333,9 +333,9 @@ static bool nbt_test_netlogon2(struct torture_context *tctx)
        torture_assert(tctx, response != NULL, "Failed to receive a netlogon reply packet");
 
        torture_assert_int_equal(tctx, response->response_type, NETLOGON_SAMLOGON, "Got incorrect type of netlogon response");
-       map_netlogon_samlogon_response(&response->samlogon);
+       map_netlogon_samlogon_response(&response->data.samlogon);
 
-       torture_assert_int_equal(tctx, response->samlogon.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN, "Got incorrect netlogon response command");
+       torture_assert_int_equal(tctx, response->data.samlogon.data.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN, "Got incorrect netlogon response command");
 
        /* setup (another) temporary mailslot listener for replies */
        dgmslot = dgram_mailslot_temp(dgmsock, NBT_MAILSLOT_GETDC,
@@ -374,9 +374,9 @@ static bool nbt_test_netlogon2(struct torture_context *tctx)
        torture_assert(tctx, response != NULL, "Failed to receive a netlogon reply packet");
 
        torture_assert_int_equal(tctx, response->response_type, NETLOGON_SAMLOGON, "Got incorrect type of netlogon response");
-       map_netlogon_samlogon_response(&response->samlogon);
+       map_netlogon_samlogon_response(&response->data.samlogon);
 
-       torture_assert_int_equal(tctx, response->samlogon.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE, "Got incorrect netlogon response command");
+       torture_assert_int_equal(tctx, response->data.samlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE, "Got incorrect netlogon response command");
 
        dgmslot->private = NULL;
 
@@ -413,9 +413,9 @@ static bool nbt_test_netlogon2(struct torture_context *tctx)
        torture_assert(tctx, response != NULL, "Failed to receive a netlogon reply packet");
 
        torture_assert_int_equal(tctx, response->response_type, NETLOGON_SAMLOGON, "Got incorrect type of netlogon response");
-       map_netlogon_samlogon_response(&response->samlogon);
+       map_netlogon_samlogon_response(&response->data.samlogon);
 
-       torture_assert_int_equal(tctx, response->samlogon.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN, "Got incorrect netlogon response command");
+       torture_assert_int_equal(tctx, response->data.samlogon.data.nt5_ex.command, LOGON_SAM_LOGON_USER_UNKNOWN, "Got incorrect netlogon response command");
 
        torture_leave_domain(tctx, join_ctx);
        return true;
@@ -522,11 +522,11 @@ static bool nbt_test_ntlogon(struct torture_context *tctx)
        torture_assert(tctx, response != NULL, "Failed to receive a netlogon reply packet");
 
        torture_assert_int_equal(tctx, response->response_type, NETLOGON_SAMLOGON, "Got incorrect type of netlogon response");
-       map_netlogon_samlogon_response(&response->samlogon);
+       map_netlogon_samlogon_response(&response->data.samlogon);
 
-       torture_assert_int_equal(tctx, response->samlogon.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE, "Got incorrect netlogon response command");
+       torture_assert_int_equal(tctx, response->data.samlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE, "Got incorrect netlogon response command");
 
-       torture_assert_str_equal(tctx, response->samlogon.nt5_ex.user_name, TEST_NAME"$", "Got incorrect user in netlogon response");
+       torture_assert_str_equal(tctx, response->data.samlogon.data.nt5_ex.user_name, TEST_NAME"$", "Got incorrect user in netlogon response");
 
 
        /* setup a temporary mailslot listener for replies */
@@ -566,11 +566,11 @@ static bool nbt_test_ntlogon(struct torture_context *tctx)
        torture_assert(tctx, response != NULL, "Failed to receive a netlogon reply packet");
 
        torture_assert_int_equal(tctx, response->response_type, NETLOGON_SAMLOGON, "Got incorrect type of netlogon response");
-       map_netlogon_samlogon_response(&response->samlogon);
+       map_netlogon_samlogon_response(&response->data.samlogon);
 
-       torture_assert_int_equal(tctx, response->samlogon.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE, "Got incorrect netlogon response command");
+       torture_assert_int_equal(tctx, response->data.samlogon.data.nt5_ex.command, LOGON_SAM_LOGON_RESPONSE, "Got incorrect netlogon response command");
 
-       torture_assert_str_equal(tctx, response->samlogon.nt5_ex.user_name, TEST_NAME"$", "Got incorrect user in netlogon response");
+       torture_assert_str_equal(tctx, response->data.samlogon.data.nt5_ex.user_name, TEST_NAME"$", "Got incorrect user in netlogon response");
 
 
        /* setup (another) temporary mailslot listener for replies */
@@ -606,7 +606,7 @@ static bool nbt_test_ntlogon(struct torture_context *tctx)
        torture_assert(tctx, response != NULL, "Failed to receive a netlogon reply packet");
 
        torture_assert_int_equal(tctx, response->response_type, NETLOGON_GET_PDC, "Got incorrect type of ntlogon response");
-       torture_assert_int_equal(tctx, response->get_pdc.command, NETLOGON_RESPONSE_FROM_PDC, "Got incorrect ntlogon response command");
+       torture_assert_int_equal(tctx, response->data.get_pdc.command, NETLOGON_RESPONSE_FROM_PDC, "Got incorrect ntlogon response command");
 
        torture_leave_domain(tctx, join_ctx);
 
@@ -643,7 +643,7 @@ static bool nbt_test_ntlogon(struct torture_context *tctx)
        torture_assert(tctx, response != NULL, "Failed to receive a netlogon reply packet");
 
        torture_assert_int_equal(tctx, response->response_type, NETLOGON_GET_PDC, "Got incorrect type of ntlogon response");
-       torture_assert_int_equal(tctx, response->get_pdc.command, NETLOGON_RESPONSE_FROM_PDC, "Got incorrect ntlogon response command");
+       torture_assert_int_equal(tctx, response->data.get_pdc.command, NETLOGON_RESPONSE_FROM_PDC, "Got incorrect ntlogon response command");
 
 
        return true;
index df16c860cbf6dc2bf744150eed322218a3099cfc..41bb168619138e8d2289247969f670f11c15f1aa 100644 (file)
@@ -310,14 +310,14 @@ static bool test_GetInfo(struct torture_context *tctx, struct DsSyncTest *ctx)
                ctx->site_name = talloc_asprintf(ctx, "%s", "Default-First-Site-Name");
                printf("cldap_netlogon() returned %s. Defaulting to Site-Name: %s\n", errstr, ctx->site_name);          
        } else {
-               ctx->site_name = talloc_steal(ctx, search.out.netlogon.nt5_ex.client_site);
+               ctx->site_name = talloc_steal(ctx, search.out.netlogon.data.nt5_ex.client_site);
                printf("cldap_netlogon() returned Client Site-Name: %s.\n",ctx->site_name);
-               printf("cldap_netlogon() returned Server Site-Name: %s.\n",search.out.netlogon.nt5_ex.server_site);
+               printf("cldap_netlogon() returned Server Site-Name: %s.\n",search.out.netlogon.data.nt5_ex.server_site);
        }
 
        if (!ctx->domain_dn) {
                struct ldb_context *ldb = ldb_init(ctx, tctx->ev);
-               struct ldb_dn *dn = samdb_dns_domain_to_dn(ldb, ctx, search.out.netlogon.nt5_ex.dns_domain);
+               struct ldb_dn *dn = samdb_dns_domain_to_dn(ldb, ctx, search.out.netlogon.data.nt5_ex.dns_domain);
                ctx->domain_dn = ldb_dn_alloc_linearized(ctx, dn);
                talloc_free(dn);
                talloc_free(ldb);