[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-1052-g8a5fadf

Günther Deschner gd at samba.org
Mon Apr 21 18:24:08 GMT 2008


The branch, v3-2-test has been updated
       via  8a5fadf6a183e4e4ccc77283b3ddba0748c6abfb (commit)
       via  5e0ccaf0c02a2d2d87ed8a2999c09ae1ccfc48e8 (commit)
       via  d38c5f4a69f67f29cc057e4aa0ad14f5112f6844 (commit)
       via  538eefe22ad69540b9f73ffaa613d6be045de199 (commit)
       via  4cee7b1bd5cd97c414b73d6f39238958480cdcf3 (commit)
       via  751f3064a508341c0ebae45e8de9f5311d915d70 (commit)
       via  f9d68ca363f7e98bfb21a06283e4f02000d6d79c (commit)
       via  f0917e8990ee6ada993c2c9808179eb0f8cfd662 (commit)
       via  1724000a95f3814a5ce4eaf5807dbf20e7e2e4f0 (commit)
       via  675bf42cfff89b05f21d77ca74eba20c4a24d44c (commit)
      from  a51cb3c1a9549d74c1e5cf05bc43b955af1a25b7 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 8a5fadf6a183e4e4ccc77283b3ddba0748c6abfb
Author: Günther Deschner <gd at samba.org>
Date:   Mon Apr 21 20:14:32 2008 +0200

    net: Add libnetapi context to net's impressive list of globals.
    
    Guenther

commit 5e0ccaf0c02a2d2d87ed8a2999c09ae1ccfc48e8
Author: Günther Deschner <gd at samba.org>
Date:   Mon Apr 21 20:03:17 2008 +0200

    IDL: rerun make idl.
    
    Guenther

commit d38c5f4a69f67f29cc057e4aa0ad14f5112f6844
Author: Günther Deschner <gd at samba.org>
Date:   Mon Apr 21 20:02:46 2008 +0200

    IDL: now that we have nbt.idl, re-add it to the includes again.
    
    Guenther

commit 538eefe22ad69540b9f73ffaa613d6be045de199
Author: Günther Deschner <gd at samba.org>
Date:   Mon Apr 21 19:59:27 2008 +0200

    cldap: avoid duplicate definitions so remove ads_cldap.h.
    
    Guenther

commit 4cee7b1bd5cd97c414b73d6f39238958480cdcf3
Author: Günther Deschner <gd at samba.org>
Date:   Mon Apr 21 19:47:13 2008 +0200

    cldap: add talloc context to ads_cldap_netlogon().
    
    Guenther

commit 751f3064a508341c0ebae45e8de9f5311d915d70
Author: Günther Deschner <gd at samba.org>
Date:   Mon Apr 21 19:26:32 2008 +0200

    libads: Use libnbt for CLDAP reply parsing.
    
    Guenther

commit f9d68ca363f7e98bfb21a06283e4f02000d6d79c
Author: Günther Deschner <gd at samba.org>
Date:   Mon Apr 21 19:29:24 2008 +0200

    IDL: re-run make idl.
    
    Guenther

commit f0917e8990ee6ada993c2c9808179eb0f8cfd662
Author: Günther Deschner <gd at samba.org>
Date:   Mon Apr 21 19:28:13 2008 +0200

    IDL: make nbt_cldap_netlogon_5 public.
    
    Guenther

commit 1724000a95f3814a5ce4eaf5807dbf20e7e2e4f0
Author: Günther Deschner <gd at samba.org>
Date:   Mon Apr 21 19:27:45 2008 +0200

    IDL: Add NTLOGON_RESPONSE_FROM_PDC2 to nbt_logon_request.
    
    Guenther

commit 675bf42cfff89b05f21d77ca74eba20c4a24d44c
Author: Günther Deschner <gd at samba.org>
Date:   Mon Apr 21 17:51:36 2008 +0200

    winbind: pass down existing talloc context.
    
    Guenther

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

Summary of changes:
 source/include/ads_cldap.h           |   60 ------------------
 source/include/includes.h            |    1 -
 source/libads/cldap.c                |  112 ++++++----------------------------
 source/libads/ldap.c                 |   61 +++++++++++--------
 source/librpc/gen_ndr/nbt.h          |    8 ++-
 source/librpc/gen_ndr/ndr_nbt.c      |   15 +++--
 source/librpc/gen_ndr/ndr_nbt.h      |    2 +
 source/librpc/gen_ndr/ndr_netlogon.c |    1 +
 source/librpc/gen_ndr/netlogon.h     |   19 +++---
 source/librpc/idl/nbt.idl            |    7 +-
 source/librpc/idl/netlogon.idl       |   20 +++---
 source/libsmb/clidgram.c             |    8 +-
 source/libsmb/dsgetdcname.c          |   52 ++++++++--------
 source/libsmb/namequery_dc.c         |    2 +-
 source/nmbd/nmbd_processlogon.c      |    4 +-
 source/utils/net.c                   |    7 +--
 source/utils/net.h                   |    1 +
 source/utils/net_ads.c               |   49 +++++++--------
 source/utils/net_rpc.c               |   11 ++--
 source/winbindd/winbindd_cm.c        |   13 ++--
 20 files changed, 164 insertions(+), 289 deletions(-)
 delete mode 100644 source/include/ads_cldap.h


Changeset truncated at 500 lines:

diff --git a/source/include/ads_cldap.h b/source/include/ads_cldap.h
deleted file mode 100644
index 692fc1b..0000000
--- a/source/include/ads_cldap.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* 
-   Samba Unix/Linux SMB client library 
-   net ads cldap functions 
-   Copyright (C) 2001 Andrew Tridgell (tridge at samba.org)
-   Copyright (C) 2003 Jim McDonough (jmcd at us.ibm.com)
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  
-*/
-
-#ifndef _INCLUDE_ADS_CLDAP_H_
-#define _INCLUDE_ADS_CLDAP_H_
-
-#define MAX_DNS_LABEL 255 + 1
-
-struct cldap_netlogon_reply {
-	uint32 type;
-	uint32 flags;
-	UUID_FLAT guid;
-
-	char forest[MAX_DNS_LABEL];
-	char domain[MAX_DNS_LABEL];
-	char hostname[MAX_DNS_LABEL];
-
-	char netbios_domain[MAX_DNS_LABEL];
-	char netbios_hostname[MAX_DNS_LABEL];
-
-	char unk[MAX_DNS_LABEL];
-	char user_name[MAX_DNS_LABEL];
-	char server_site_name[MAX_DNS_LABEL];
-	char client_site_name[MAX_DNS_LABEL];
-
-	uint32 version;
-	uint16 lmnt_token;
-	uint16 lm20_token;
-};
-
-/* Mailslot or cldap getdcname response flags */
-#define ADS_PDC            0x00000001  /* DC is PDC */
-#define ADS_GC             0x00000004  /* DC is a GC of forest */
-#define ADS_LDAP           0x00000008  /* DC is an LDAP server */
-#define ADS_DS             0x00000010  /* DC supports DS */
-#define ADS_KDC            0x00000020  /* DC is running KDC */
-#define ADS_TIMESERV       0x00000040  /* DC is running time services */
-#define ADS_CLOSEST        0x00000080  /* DC is closest to client */
-#define ADS_WRITABLE       0x00000100  /* DC has writable DS */
-#define ADS_GOOD_TIMESERV  0x00000200  /* DC has hardware clock (and running time) */
-#define ADS_NDNC           0x00000400  /* DomainName is non-domain NC serviced by LDAP server */
-
-#endif /* _INCLUDE_ADS_CLDAP_H_ */
diff --git a/source/include/includes.h b/source/include/includes.h
index 06d4195..70e1b48 100644
--- a/source/include/includes.h
+++ b/source/include/includes.h
@@ -673,7 +673,6 @@ typedef char fstring[FSTRING_LEN];
 #include "messages.h"
 #include "locking.h"
 #include "smb.h"
-#include "ads_cldap.h"
 #include "nameserv.h"
 #include "secrets.h"
 #include "byteorder.h"
diff --git a/source/libads/cldap.c b/source/libads/cldap.c
index 39e736f..be084c9 100644
--- a/source/libads/cldap.c
+++ b/source/libads/cldap.c
@@ -21,72 +21,6 @@
 #include "includes.h"
 
 /*
-  These seem to be strings as described in RFC1035 4.1.4 and can be:
-
-   - a sequence of labels ending in a zero octet
-   - a pointer
-   - a sequence of labels ending with a pointer
-
-  A label is a byte where the first two bits must be zero and the remaining
-  bits represent the length of the label followed by the label itself.
-  Therefore, the length of a label is at max 64 bytes.  Under RFC1035, a
-  sequence of labels cannot exceed 255 bytes.
-
-  A pointer consists of a 14 bit offset from the beginning of the data.
-
-  struct ptr {
-    unsigned ident:2; // must be 11
-    unsigned offset:14; // from the beginning of data
-  };
-
-  This is used as a method to compress the packet by eliminated duplicate
-  domain components.  Since a UDP packet should probably be < 512 bytes and a
-  DNS name can be up to 255 bytes, this actually makes a lot of sense.
-*/
-static unsigned pull_netlogon_string(char *ret, const char *ptr,
-				     const char *data)
-{
-	char *pret = ret;
-	int followed_ptr = 0;
-	unsigned ret_len = 0;
-
-	memset(pret, 0, MAX_DNS_LABEL);
-	do {
-		if ((*ptr & 0xc0) == 0xc0) {
-			uint16 len;
-
-			if (!followed_ptr) {
-				ret_len += 2;
-				followed_ptr = 1;
-			}
-			len = ((ptr[0] & 0x3f) << 8) | ptr[1];
-			ptr = data + len;
-		} else if (*ptr) {
-			uint8 len = (uint8)*(ptr++);
-
-			if ((pret - ret + len + 1) >= MAX_DNS_LABEL) {
-				DEBUG(1,("DC returning too long DNS name\n"));
-				return 0;
-			}
-
-			if (pret != ret) {
-				*pret = '.';
-				pret++;
-			}
-			memcpy(pret, ptr, len);
-			pret += len;
-			ptr += len;
-
-			if (!followed_ptr) {
-				ret_len += (len + 1);
-			}
-		}
-	} while (*ptr);
-
-	return followed_ptr ? ret_len : ret_len + 1;
-}
-
-/*
   do a cldap netlogon query
 */
 static int send_cldap_netlogon(int sock, const char *domain, 
@@ -182,7 +116,9 @@ static void gotalarm_sig(void)
 /*
   receive a cldap netlogon reply
 */
-static int recv_cldap_netlogon(int sock, struct cldap_netlogon_reply *reply)
+static int recv_cldap_netlogon(TALLOC_CTX *mem_ctx,
+			       int sock,
+			       struct nbt_cldap_netlogon_5 *reply)
 {
 	int ret;
 	ASN1_DATA data;
@@ -193,7 +129,8 @@ static int recv_cldap_netlogon(int sock, struct cldap_netlogon_reply *reply)
 	int i1;
 	/* half the time of a regular ldap timeout, not less than 3 seconds. */
 	unsigned int al_secs = MAX(3,lp_ldap_timeout()/2);
-	char *p;
+	union nbt_cldap_netlogon p;
+	enum ndr_err_code ndr_err;
 
 	blob = data_blob(NULL, 8192);
 	if (blob.data == NULL) {
@@ -247,33 +184,17 @@ static int recv_cldap_netlogon(int sock, struct cldap_netlogon_reply *reply)
 		return -1;
 	}
 
-	p = (char *)os3.data;
-
-	reply->type = IVAL(p, 0); p += 4;
-	reply->flags = IVAL(p, 0); p += 4;
-
-	memcpy(&reply->guid.info, p, UUID_FLAT_SIZE);
-	p += UUID_FLAT_SIZE;
-
-	p += pull_netlogon_string(reply->forest, p, (const char *)os3.data);
-	p += pull_netlogon_string(reply->domain, p, (const char *)os3.data);
-	p += pull_netlogon_string(reply->hostname, p, (const char *)os3.data);
-	p += pull_netlogon_string(reply->netbios_domain, p, (const char *)os3.data);
-	p += pull_netlogon_string(reply->netbios_hostname, p, (const char *)os3.data);
-	p += pull_netlogon_string(reply->unk, p, (const char *)os3.data);
-
-	if (reply->type == SAMLOGON_AD_R) {
-		p += pull_netlogon_string(reply->user_name, p, (const char *)os3.data);
-	} else {
-		*reply->user_name = 0;
+	ndr_err = ndr_pull_union_blob_all(&os3, mem_ctx, &p, 5,
+		       (ndr_pull_flags_fn_t)ndr_pull_nbt_cldap_netlogon);
+	if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+		return -1;
 	}
 
-	p += pull_netlogon_string(reply->server_site_name, p, (const char *)os3.data);
-	p += pull_netlogon_string(reply->client_site_name, p, (const char *)os3.data);
+	*reply = p.logon5;
 
-	reply->version = IVAL(p, 0);
-	reply->lmnt_token = SVAL(p, 4);
-	reply->lm20_token = SVAL(p, 6);
+	if (DEBUGLEVEL >= 10) {
+		NDR_PRINT_UNION_DEBUG(nbt_cldap_netlogon, 5, &p);
+	}
 
 	data_blob_free(&os1);
 	data_blob_free(&os2);
@@ -289,7 +210,10 @@ static int recv_cldap_netlogon(int sock, struct cldap_netlogon_reply *reply)
   do a cldap netlogon query.  Always 389/udp
 *******************************************************************/
 
-bool ads_cldap_netlogon(const char *server, const char *realm,  struct cldap_netlogon_reply *reply)
+bool ads_cldap_netlogon(TALLOC_CTX *mem_ctx,
+			const char *server,
+			const char *realm,
+			struct nbt_cldap_netlogon_5 *reply)
 {
 	int sock;
 	int ret;
@@ -306,7 +230,7 @@ bool ads_cldap_netlogon(const char *server, const char *realm,  struct cldap_net
 		close(sock);
 		return False;
 	}
-	ret = recv_cldap_netlogon(sock, reply);
+	ret = recv_cldap_netlogon(mem_ctx, sock, reply);
 	close(sock);
 
 	if (ret == -1) {
diff --git a/source/libads/ldap.c b/source/libads/ldap.c
index a9eff48..b0f27b5 100644
--- a/source/libads/ldap.c
+++ b/source/libads/ldap.c
@@ -151,14 +151,14 @@ bool ads_sitename_match(ADS_STRUCT *ads)
 
 bool ads_closest_dc(ADS_STRUCT *ads)
 {
-	if (ads->config.flags & ADS_CLOSEST) {
-		DEBUG(10,("ads_closest_dc: ADS_CLOSEST flag set\n"));
+	if (ads->config.flags & NBT_SERVER_CLOSEST) {
+		DEBUG(10,("ads_closest_dc: NBT_SERVER_CLOSEST flag set\n"));
 		return True;
 	}
 
 	/* not sure if this can ever happen */
 	if (ads_sitename_match(ads)) {
-		DEBUG(10,("ads_closest_dc: ADS_CLOSEST flag not set but sites match\n"));
+		DEBUG(10,("ads_closest_dc: NBT_SERVER_CLOSEST flag not set but sites match\n"));
 		return True;
 	}
 
@@ -176,7 +176,9 @@ bool ads_closest_dc(ADS_STRUCT *ads)
 bool ads_try_connect(ADS_STRUCT *ads, const char *server )
 {
 	char *srv;
-	struct cldap_netlogon_reply cldap_reply;
+	struct nbt_cldap_netlogon_5 cldap_reply;
+	TALLOC_CTX *mem_ctx = NULL;
+	bool ret = false;
 
 	if (!server || !*server) {
 		return False;
@@ -185,25 +187,31 @@ bool ads_try_connect(ADS_STRUCT *ads, const char *server )
 	DEBUG(5,("ads_try_connect: sending CLDAP request to %s (realm: %s)\n", 
 		server, ads->server.realm));
 
+	mem_ctx = talloc_init("ads_try_connect");
+	if (!mem_ctx) {
+		DEBUG(0,("out of memory\n"));
+		return false;
+	}
+
 	/* this copes with inet_ntoa brokenness */
 	
 	srv = SMB_STRDUP(server);
 
 	ZERO_STRUCT( cldap_reply );
 
-	if ( !ads_cldap_netlogon( srv, ads->server.realm, &cldap_reply ) ) {
+	if ( !ads_cldap_netlogon(mem_ctx, srv, ads->server.realm, &cldap_reply ) ) {
 		DEBUG(3,("ads_try_connect: CLDAP request %s failed.\n", srv));
-		SAFE_FREE( srv );
-		return False;
+		ret = false;
+		goto out;
 	}
 
 	/* Check the CLDAP reply flags */
 
-	if ( !(cldap_reply.flags & ADS_LDAP) ) {
+	if ( !(cldap_reply.server_type & NBT_SERVER_LDAP) ) {
 		DEBUG(1,("ads_try_connect: %s's CLDAP reply says it is not an LDAP server!\n",
 			srv));
-		SAFE_FREE( srv );
-		return False;
+		ret = false;
+		goto out;
 	}
 
 	/* Fill in the ads->config values */
@@ -215,36 +223,39 @@ bool ads_try_connect(ADS_STRUCT *ads, const char *server )
 	SAFE_FREE(ads->config.client_site_name);
 	SAFE_FREE(ads->server.workgroup);
 
-	ads->config.flags	       = cldap_reply.flags;
-	ads->config.ldap_server_name   = SMB_STRDUP(cldap_reply.hostname);
-	strupper_m(cldap_reply.domain);
-	ads->config.realm              = SMB_STRDUP(cldap_reply.domain);
+	ads->config.flags	       = cldap_reply.server_type;
+	ads->config.ldap_server_name   = SMB_STRDUP(cldap_reply.pdc_dns_name);
+	ads->config.realm              = SMB_STRDUP(cldap_reply.dns_domain);
+	strupper_m(ads->config.realm);
 	ads->config.bind_path          = ads_build_dn(ads->config.realm);
-	if (*cldap_reply.server_site_name) {
+	if (*cldap_reply.server_site) {
 		ads->config.server_site_name =
-			SMB_STRDUP(cldap_reply.server_site_name);
+			SMB_STRDUP(cldap_reply.server_site);
 	}
-	if (*cldap_reply.client_site_name) {
+	if (*cldap_reply.client_site) {
 		ads->config.client_site_name =
-			SMB_STRDUP(cldap_reply.client_site_name);
+			SMB_STRDUP(cldap_reply.client_site);
 	}
-	ads->server.workgroup          = SMB_STRDUP(cldap_reply.netbios_domain);
+	ads->server.workgroup          = SMB_STRDUP(cldap_reply.domain);
 
 	ads->ldap.port = LDAP_PORT;
 	if (!interpret_string_addr(&ads->ldap.ss, srv, 0)) {
 		DEBUG(1,("ads_try_connect: unable to convert %s "
 			"to an address\n",
 			srv));
-		SAFE_FREE( srv );
-		return False;
+		ret = false;
+		goto out;
 	}
 
-	SAFE_FREE(srv);
-
 	/* Store our site name. */
-	sitename_store( cldap_reply.domain, cldap_reply.client_site_name );
+	sitename_store( cldap_reply.domain, cldap_reply.client_site);
 
-	return True;
+	ret = true;
+ out:
+	SAFE_FREE(srv);
+	TALLOC_FREE(mem_ctx);
+
+	return ret;
 }
 
 /**********************************************************************
diff --git a/source/librpc/gen_ndr/nbt.h b/source/librpc/gen_ndr/nbt.h
index 8f2c38a..bd9bfcd 100644
--- a/source/librpc/gen_ndr/nbt.h
+++ b/source/librpc/gen_ndr/nbt.h
@@ -555,7 +555,7 @@ struct nbt_cldap_netlogon_5 {
 	uint32_t nt_version;/* [value(5)] */
 	uint16_t lmnt_token;
 	uint16_t lm20_token;
-};
+}/* [public] */;
 
 struct nbt_cldap_netlogon_13 {
 	uint32_t type;
@@ -590,13 +590,15 @@ enum nbt_ntlogon_command
  {
 	NTLOGON_SAM_LOGON=0x12,
 	NTLOGON_SAM_LOGON_REPLY=0x13,
-	NTLOGON_SAM_LOGON_REPLY15=0x15
+	NTLOGON_SAM_LOGON_REPLY15=0x15,
+	NTLOGON_RESPONSE_FROM_PDC2=0x17
 }
 #else
  { __donnot_use_enum_nbt_ntlogon_command=0x7FFFFFFF}
 #define NTLOGON_SAM_LOGON ( 0x12 )
 #define NTLOGON_SAM_LOGON_REPLY ( 0x13 )
 #define NTLOGON_SAM_LOGON_REPLY15 ( 0x15 )
+#define NTLOGON_RESPONSE_FROM_PDC2 ( 0x17 )
 #endif
 ;
 
@@ -625,7 +627,7 @@ struct nbt_ntlogon_sam_logon_reply {
 union nbt_ntlogon_request {
 	struct nbt_ntlogon_sam_logon logon;/* [case(NTLOGON_SAM_LOGON)] */
 	struct nbt_ntlogon_sam_logon_reply reply;/* [case(NTLOGON_SAM_LOGON_REPLY)] */
-	struct nbt_netlogon_response_from_pdc2 reply2;/* [case(NETLOGON_RESPONSE_FROM_PDC2)] */
+	struct nbt_netlogon_response_from_pdc2 reply2;/* [case(NTLOGON_RESPONSE_FROM_PDC2)] */
 }/* [nodiscriminant] */;
 
 struct nbt_ntlogon_packet {
diff --git a/source/librpc/gen_ndr/ndr_nbt.c b/source/librpc/gen_ndr/ndr_nbt.c
index 45fd54d..92a9488 100644
--- a/source/librpc/gen_ndr/ndr_nbt.c
+++ b/source/librpc/gen_ndr/ndr_nbt.c
@@ -2577,7 +2577,7 @@ _PUBLIC_ void ndr_print_nbt_cldap_netlogon_3(struct ndr_print *ndr, const char *
 	ndr->depth--;
 }
 
-static enum ndr_err_code ndr_push_nbt_cldap_netlogon_5(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_5 *r)
+_PUBLIC_ enum ndr_err_code ndr_push_nbt_cldap_netlogon_5(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_5 *r)
 {
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_push_align(ndr, 4));
@@ -2601,7 +2601,7 @@ static enum ndr_err_code ndr_push_nbt_cldap_netlogon_5(struct ndr_push *ndr, int
 	return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_nbt_cldap_netlogon_5(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_5 *r)
+_PUBLIC_ enum ndr_err_code ndr_pull_nbt_cldap_netlogon_5(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_5 *r)
 {
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_pull_align(ndr, 4));
@@ -2991,6 +2991,7 @@ _PUBLIC_ void ndr_print_nbt_ntlogon_command(struct ndr_print *ndr, const char *n
 		case NTLOGON_SAM_LOGON: val = "NTLOGON_SAM_LOGON"; break;
 		case NTLOGON_SAM_LOGON_REPLY: val = "NTLOGON_SAM_LOGON_REPLY"; break;
 		case NTLOGON_SAM_LOGON_REPLY15: val = "NTLOGON_SAM_LOGON_REPLY15"; break;
+		case NTLOGON_RESPONSE_FROM_PDC2: val = "NTLOGON_RESPONSE_FROM_PDC2"; break;
 	}
 	ndr_print_enum(ndr, name, "ENUM", val, r);
 }
@@ -3184,7 +3185,7 @@ static enum ndr_err_code ndr_push_nbt_ntlogon_request(struct ndr_push *ndr, int
 				NDR_CHECK(ndr_push_nbt_ntlogon_sam_logon_reply(ndr, NDR_SCALARS, &r->reply));
 			break; }
 
-			case NETLOGON_RESPONSE_FROM_PDC2: {
+			case NTLOGON_RESPONSE_FROM_PDC2: {
 				NDR_CHECK(ndr_push_nbt_netlogon_response_from_pdc2(ndr, NDR_SCALARS, &r->reply2));
 			break; }
 
@@ -3205,7 +3206,7 @@ static enum ndr_err_code ndr_push_nbt_ntlogon_request(struct ndr_push *ndr, int
 			case NTLOGON_SAM_LOGON_REPLY15:
 			break;
 
-			case NETLOGON_RESPONSE_FROM_PDC2:
+			case NTLOGON_RESPONSE_FROM_PDC2:
 			break;
 
 			default:
@@ -3233,7 +3234,7 @@ static enum ndr_err_code ndr_pull_nbt_ntlogon_request(struct ndr_pull *ndr, int
 				NDR_CHECK(ndr_pull_nbt_ntlogon_sam_logon_reply(ndr, NDR_SCALARS, &r->reply));
 			break; }
 
-			case NETLOGON_RESPONSE_FROM_PDC2: {
+			case NTLOGON_RESPONSE_FROM_PDC2: {
 				NDR_CHECK(ndr_pull_nbt_netlogon_response_from_pdc2(ndr, NDR_SCALARS, &r->reply2));
 			break; }
 
@@ -3253,7 +3254,7 @@ static enum ndr_err_code ndr_pull_nbt_ntlogon_request(struct ndr_pull *ndr, int
 			case NTLOGON_SAM_LOGON_REPLY15:
 			break;
 
-			case NETLOGON_RESPONSE_FROM_PDC2:
+			case NTLOGON_RESPONSE_FROM_PDC2:
 			break;
 
 			default:
@@ -3281,7 +3282,7 @@ _PUBLIC_ void ndr_print_nbt_ntlogon_request(struct ndr_print *ndr, const char *n
 			ndr_print_nbt_ntlogon_sam_logon_reply(ndr, "reply", &r->reply);
 		break;
 
-		case NETLOGON_RESPONSE_FROM_PDC2:
+		case NTLOGON_RESPONSE_FROM_PDC2:
 			ndr_print_nbt_netlogon_response_from_pdc2(ndr, "reply2", &r->reply2);
 		break;
 
diff --git a/source/librpc/gen_ndr/ndr_nbt.h b/source/librpc/gen_ndr/ndr_nbt.h
index 6456699..28b8a49 100644
--- a/source/librpc/gen_ndr/ndr_nbt.h
+++ b/source/librpc/gen_ndr/ndr_nbt.h
@@ -57,6 +57,8 @@ enum ndr_err_code ndr_pull_nbt_netlogon_packet(struct ndr_pull *ndr, int ndr_fla
 void ndr_print_nbt_netlogon_packet(struct ndr_print *ndr, const char *name, const struct nbt_netlogon_packet *r);
 void ndr_print_nbt_cldap_netlogon_1(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_1 *r);
 void ndr_print_nbt_cldap_netlogon_3(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_3 *r);
+enum ndr_err_code ndr_push_nbt_cldap_netlogon_5(struct ndr_push *ndr, int ndr_flags, const struct nbt_cldap_netlogon_5 *r);
+enum ndr_err_code ndr_pull_nbt_cldap_netlogon_5(struct ndr_pull *ndr, int ndr_flags, struct nbt_cldap_netlogon_5 *r);
 void ndr_print_nbt_cldap_netlogon_5(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_5 *r);
 void ndr_print_nbt_cldap_netlogon_13(struct ndr_print *ndr, const char *name, const struct nbt_cldap_netlogon_13 *r);
 enum ndr_err_code ndr_push_nbt_cldap_netlogon(struct ndr_push *ndr, int ndr_flags, const union nbt_cldap_netlogon *r);
diff --git a/source/librpc/gen_ndr/ndr_netlogon.c b/source/librpc/gen_ndr/ndr_netlogon.c
index be7d7d1..ce61f8d 100644
--- a/source/librpc/gen_ndr/ndr_netlogon.c
+++ b/source/librpc/gen_ndr/ndr_netlogon.c
@@ -6,6 +6,7 @@
 #include "librpc/gen_ndr/ndr_lsa.h"
 #include "librpc/gen_ndr/ndr_samr.h"
 #include "librpc/gen_ndr/ndr_security.h"


-- 
Samba Shared Repository


More information about the samba-cvs mailing list