[SCM] Samba Shared Repository - branch master updated - af1c802791e3c9f54220d8c80c3de79ef422d726

Volker Lendecke vlendec at samba.org
Thu Oct 2 06:11:03 GMT 2008


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 <vl at samba.org>
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


More information about the samba-cvs mailing list