The branch, master has been updated
       via  af1c802791e3c9f54220d8c80c3de79ef422d726 (commit)
      from  8641b54a736c5c924bf38cf4574d1f8e34d2d0cd (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit af1c802791e3c9f54220d8c80c3de79ef422d726
Author: Volker Lendecke <[EMAIL PROTECTED]>
Date:   Thu Oct 2 08:09:25 2008 +0200

    The IRIX compiler does not like embedded unnamed unions

-----------------------------------------------------------------------

Summary of changes:
 libcli/netlogon.c                   |   83 +++++++++++++++++++--------------
 libcli/netlogon.h                   |    4 +-
 source3/libads/cldap.c              |    2 +-
 source3/libsmb/clidgram.c           |    4 +-
 source3/libsmb/dsgetdcname.c        |   20 ++++----
 source4/cldap_server/netlogon.c     |   80 ++++++++++++++++----------------
 source4/libnet/libnet_become_dc.c   |    2 +-
 source4/libnet/libnet_site.c        |    5 +-
 source4/libnet/libnet_unbecome_dc.c |    2 +-
 source4/nbt_server/dgram/netlogon.c |    4 +-
 source4/nbt_server/irpc.c           |    9 ++--
 source4/torture/ldap/cldap.c        |   88 +++++++++++++++++-----------------
 source4/torture/nbt/dgram.c         |   42 ++++++++--------
 source4/torture/rpc/dssync.c        |    6 +-
 14 files changed, 183 insertions(+), 168 deletions(-)


Changeset truncated at 500 lines:

diff --git a/libcli/netlogon.c b/libcli/netlogon.c
index 36d9e5f..acfce61 100644
--- a/libcli/netlogon.c
+++ b/libcli/netlogon.c
@@ -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;
 
diff --git a/libcli/netlogon.h b/libcli/netlogon.h
index 8bd9d0d..6ca3de3 100644
--- a/libcli/netlogon.h
+++ b/libcli/netlogon.h
@@ -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"
diff --git a/source3/libads/cldap.c b/source3/libads/cldap.c
index edabbed..c37220c 100644
--- a/source3/libads/cldap.c
+++ b/source3/libads/cldap.c
@@ -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;
 }
diff --git a/source3/libsmb/clidgram.c b/source3/libsmb/clidgram.c
index e8799bc..611ae08 100644
--- a/source3/libsmb/clidgram.c
+++ b/source3/libsmb/clidgram.c
@@ -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",
diff --git a/source3/libsmb/dsgetdcname.c b/source3/libsmb/dsgetdcname.c
index d2ede1d..18010aa 100644
--- a/source3/libsmb/dsgetdcname.c
+++ b/source3/libsmb/dsgetdcname.c
@@ -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;
diff --git a/source4/cldap_server/netlogon.c b/source4/cldap_server/netlogon.c
index 7dccd81..aac74f5 100644
--- a/source4/cldap_server/netlogon.c
+++ b/source4/cldap_server/netlogon.c
@@ -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;
diff --git a/source4/libnet/libnet_become_dc.c 
b/source4/libnet/libnet_become_dc.c
index b9071d5..4cbebbf 100644
--- a/source4/libnet/libnet_become_dc.c
+++ b/source4/libnet/libnet_become_dc.c
@@ -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;
diff --git a/source4/libnet/libnet_site.c b/source4/libnet/libnet_site.c
index 5647a93..4a32ab9 100644
--- a/source4/libnet/libnet_site.c
+++ b/source4/libnet/libnet_site.c
@@ -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);
diff --git a/source4/libnet/libnet_unbecome_dc.c 
b/source4/libnet/libnet_unbecome_dc.c
index 4eeaf1b..3a9a5ce 100644
--- a/source4/libnet/libnet_unbecome_dc.c
+++ b/source4/libnet/libnet_unbecome_dc.c
@@ -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;
diff --git a/source4/nbt_server/dgram/netlogon.c 
b/source4/nbt_server/dgram/netlogon.c
index 5e95270..1bc3e2b 100644
--- a/source4/nbt_server/dgram/netlogon.c
+++ b/source4/nbt_server/dgram/netlogon.c
@@ -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)));
diff --git a/source4/nbt_server/irpc.c b/source4/nbt_server/irpc.c
index 8f1f74a..fc61372 100644
--- a/source4/nbt_server/irpc.c
+++ b/source4/nbt_server/irpc.c
@@ -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;
        }
 


-- 
Samba Shared Repository

Reply via email to