The branch, master has been updated
       via  4d1c88123980dc7ac92c5881aa05c016d2d060f6 (commit)
      from  9b844e7ff3ea512c4967dbdaba07b36ab187a704 (commit)

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


- Log -----------------------------------------------------------------
commit 4d1c88123980dc7ac92c5881aa05c016d2d060f6
Author: Günther Deschner <[email protected]>
Date:   Wed Aug 12 20:19:47 2009 +0200

    ntlmssp: re-run make samba3-idl and add generated files.
    
    Guenther

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

Summary of changes:
 librpc/gen_ndr/ndr_ntlmssp.c | 2096 ++++++++++++++++++++++++++++++++++++++++++
 librpc/gen_ndr/ndr_ntlmssp.h |   60 ++
 librpc/gen_ndr/ntlmssp.h     |  285 ++++++
 3 files changed, 2441 insertions(+), 0 deletions(-)
 create mode 100644 librpc/gen_ndr/ndr_ntlmssp.c
 create mode 100644 librpc/gen_ndr/ndr_ntlmssp.h
 create mode 100644 librpc/gen_ndr/ntlmssp.h


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/ndr_ntlmssp.c b/librpc/gen_ndr/ndr_ntlmssp.c
new file mode 100644
index 0000000..549b4de
--- /dev/null
+++ b/librpc/gen_ndr/ndr_ntlmssp.c
@@ -0,0 +1,2096 @@
+/* parser auto-generated by pidl */
+
+#include "includes.h"
+#include "../librpc/gen_ndr/ndr_ntlmssp.h"
+
+static enum ndr_err_code ndr_push_ntlmssp_MessageType(struct ndr_push *ndr, 
int ndr_flags, enum ntlmssp_MessageType r)
+{
+       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_ntlmssp_MessageType(struct ndr_pull *ndr, 
int ndr_flags, enum ntlmssp_MessageType *r)
+{
+       uint32_t v;
+       NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_ntlmssp_MessageType(struct ndr_print *ndr, const char 
*name, enum ntlmssp_MessageType r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case NtLmNegotiate: val = "NtLmNegotiate"; break;
+               case NtLmChallenge: val = "NtLmChallenge"; break;
+               case NtLmAuthenticate: val = "NtLmAuthenticate"; break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_NEGOTIATE(struct ndr_push *ndr, int 
ndr_flags, uint32_t r)
+{
+       NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_NEGOTIATE(struct ndr_pull *ndr, int 
ndr_flags, uint32_t *r)
+{
+       uint32_t v;
+       NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_NEGOTIATE(struct ndr_print *ndr, const char *name, 
uint32_t r)
+{
+       ndr_print_uint32(ndr, name, r);
+       ndr->depth++;
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_NEGOTIATE_UNICODE", NTLMSSP_NEGOTIATE_UNICODE, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_OEM", 
NTLMSSP_NEGOTIATE_OEM, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_REQUEST_TARGET", 
NTLMSSP_REQUEST_TARGET, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_SIGN", 
NTLMSSP_NEGOTIATE_SIGN, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_SEAL", 
NTLMSSP_NEGOTIATE_SEAL, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_NEGOTIATE_DATAGRAM", NTLMSSP_NEGOTIATE_DATAGRAM, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_NEGOTIATE_LM_KEY", NTLMSSP_NEGOTIATE_LM_KEY, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_NEGOTIATE_NETWARE", NTLMSSP_NEGOTIATE_NETWARE, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_NTLM", 
NTLMSSP_NEGOTIATE_NTLM, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_NEGOTIATE_NT_ONLY", NTLMSSP_NEGOTIATE_NT_ONLY, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_ANONYMOUS", 
NTLMSSP_ANONYMOUS, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED", NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED, 
r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED", 
NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL", NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL, 
r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_NEGOTIATE_ALWAYS_SIGN", NTLMSSP_NEGOTIATE_ALWAYS_SIGN, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_TARGET_TYPE_DOMAIN", NTLMSSP_TARGET_TYPE_DOMAIN, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_TARGET_TYPE_SERVER", NTLMSSP_TARGET_TYPE_SERVER, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_TARGET_TYPE_SHARE", NTLMSSP_TARGET_TYPE_SHARE, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY", 
NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_NEGOTIATE_IDENTIFY", NTLMSSP_NEGOTIATE_IDENTIFY, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_REQUEST_NON_NT_SESSION_KEY", NTLMSSP_REQUEST_NON_NT_SESSION_KEY, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_NEGOTIATE_TARGET_INFO", NTLMSSP_NEGOTIATE_TARGET_INFO, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_NEGOTIATE_VERSION", NTLMSSP_NEGOTIATE_VERSION, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_128", 
NTLMSSP_NEGOTIATE_128, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), 
"NTLMSSP_NEGOTIATE_KEY_EXCH", NTLMSSP_NEGOTIATE_KEY_EXCH, r);
+       ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_56", 
NTLMSSP_NEGOTIATE_56, r);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_ntlmssp_WindowsMajorVersion(struct ndr_push 
*ndr, int ndr_flags, enum ntlmssp_WindowsMajorVersion r)
+{
+       NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_ntlmssp_WindowsMajorVersion(struct ndr_pull 
*ndr, int ndr_flags, enum ntlmssp_WindowsMajorVersion *r)
+{
+       uint8_t v;
+       NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_ntlmssp_WindowsMajorVersion(struct ndr_print *ndr, 
const char *name, enum ntlmssp_WindowsMajorVersion r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case NTLMSSP_WINDOWS_MAJOR_VERSION_5: val = 
"NTLMSSP_WINDOWS_MAJOR_VERSION_5"; break;
+               case NTLMSSP_WINDOWS_MAJOR_VERSION_6: val = 
"NTLMSSP_WINDOWS_MAJOR_VERSION_6"; break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_ntlmssp_WindowsMinorVersion(struct ndr_push 
*ndr, int ndr_flags, enum ntlmssp_WindowsMinorVersion r)
+{
+       NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_ntlmssp_WindowsMinorVersion(struct ndr_pull 
*ndr, int ndr_flags, enum ntlmssp_WindowsMinorVersion *r)
+{
+       uint8_t v;
+       NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_ntlmssp_WindowsMinorVersion(struct ndr_print *ndr, 
const char *name, enum ntlmssp_WindowsMinorVersion r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case NTLMSSP_WINDOWS_MINOR_VERSION_0: val = 
"NTLMSSP_WINDOWS_MINOR_VERSION_0"; break;
+               case NTLMSSP_WINDOWS_MINOR_VERSION_1: val = 
"NTLMSSP_WINDOWS_MINOR_VERSION_1"; break;
+               case NTLMSSP_WINDOWS_MINOR_VERSION_2: val = 
"NTLMSSP_WINDOWS_MINOR_VERSION_2"; break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_ntlmssp_NTLMRevisionCurrent(struct ndr_push 
*ndr, int ndr_flags, enum ntlmssp_NTLMRevisionCurrent r)
+{
+       NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_ntlmssp_NTLMRevisionCurrent(struct ndr_pull 
*ndr, int ndr_flags, enum ntlmssp_NTLMRevisionCurrent *r)
+{
+       uint8_t v;
+       NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_ntlmssp_NTLMRevisionCurrent(struct ndr_print *ndr, 
const char *name, enum ntlmssp_NTLMRevisionCurrent r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case NTLMSSP_REVISION_W2K3_RC1: val = 
"NTLMSSP_REVISION_W2K3_RC1"; break;
+               case NTLMSSP_REVISION_W2K3: val = "NTLMSSP_REVISION_W2K3"; 
break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_VERSION(struct ndr_push *ndr, int ndr_flags, 
const struct VERSION *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 2));
+               NDR_CHECK(ndr_push_ntlmssp_WindowsMajorVersion(ndr, 
NDR_SCALARS, r->ProductMajorVersion));
+               NDR_CHECK(ndr_push_ntlmssp_WindowsMinorVersion(ndr, 
NDR_SCALARS, r->ProductMinorVersion));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ProductBuild));
+               NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Reserved, 
3));
+               NDR_CHECK(ndr_push_ntlmssp_NTLMRevisionCurrent(ndr, 
NDR_SCALARS, r->NTLMRevisionCurrent));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_VERSION(struct ndr_pull *ndr, int ndr_flags, 
struct VERSION *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 2));
+               NDR_CHECK(ndr_pull_ntlmssp_WindowsMajorVersion(ndr, 
NDR_SCALARS, &r->ProductMajorVersion));
+               NDR_CHECK(ndr_pull_ntlmssp_WindowsMinorVersion(ndr, 
NDR_SCALARS, &r->ProductMinorVersion));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ProductBuild));
+               NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Reserved, 
3));
+               NDR_CHECK(ndr_pull_ntlmssp_NTLMRevisionCurrent(ndr, 
NDR_SCALARS, &r->NTLMRevisionCurrent));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_VERSION(struct ndr_print *ndr, const char *name, const 
struct VERSION *r)
+{
+       ndr_print_struct(ndr, name, "VERSION");
+       ndr->depth++;
+       ndr_print_ntlmssp_WindowsMajorVersion(ndr, "ProductMajorVersion", 
r->ProductMajorVersion);
+       ndr_print_ntlmssp_WindowsMinorVersion(ndr, "ProductMinorVersion", 
r->ProductMinorVersion);
+       ndr_print_uint16(ndr, "ProductBuild", r->ProductBuild);
+       ndr_print_array_uint8(ndr, "Reserved", r->Reserved, 3);
+       ndr_print_ntlmssp_NTLMRevisionCurrent(ndr, "NTLMRevisionCurrent", 
r->NTLMRevisionCurrent);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_ntlmssp_Version(struct ndr_push *ndr, int 
ndr_flags, const union ntlmssp_Version *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               int level = ndr_push_get_switch_value(ndr, r);
+               switch (level) {
+                       case NTLMSSP_NEGOTIATE_VERSION: {
+                               NDR_CHECK(ndr_push_VERSION(ndr, NDR_SCALARS, 
&r->version));
+                       break; }
+
+                       default: {
+                       break; }
+
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               int level = ndr_push_get_switch_value(ndr, r);
+               switch (level) {
+                       case NTLMSSP_NEGOTIATE_VERSION:
+                       break;
+
+                       default:
+                       break;
+
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_ntlmssp_Version(struct ndr_pull *ndr, int 
ndr_flags, union ntlmssp_Version *r)
+{
+       int level;
+       level = ndr_pull_get_switch_value(ndr, r);
+       if (ndr_flags & NDR_SCALARS) {
+               switch (level) {
+                       case NTLMSSP_NEGOTIATE_VERSION: {
+                               NDR_CHECK(ndr_pull_VERSION(ndr, NDR_SCALARS, 
&r->version));
+                       break; }
+
+                       default: {
+                       break; }
+
+               }
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               switch (level) {
+                       case NTLMSSP_NEGOTIATE_VERSION:
+                       break;
+
+                       default:
+                       break;
+
+               }
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_ntlmssp_Version(struct ndr_print *ndr, const char 
*name, const union ntlmssp_Version *r)
+{
+       int level;
+       level = ndr_print_get_switch_value(ndr, r);
+       ndr_print_union(ndr, name, level, "ntlmssp_Version");
+       switch (level) {
+               case NTLMSSP_NEGOTIATE_VERSION:
+                       ndr_print_VERSION(ndr, "version", &r->version);
+               break;
+
+               default:
+               break;
+
+       }
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_NEGOTIATE_MESSAGE(struct ndr_push *ndr, 
int ndr_flags, const struct NEGOTIATE_MESSAGE *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, "NTLMSSP", 8, 
sizeof(uint8_t), CH_DOS));
+               NDR_CHECK(ndr_push_ntlmssp_MessageType(ndr, NDR_SCALARS, 
NtLmNegotiate));
+               NDR_CHECK(ndr_push_NEGOTIATE(ndr, NDR_SCALARS, 
r->NegotiateFlags));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 
strlen(r->DomainName)));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 
strlen(r->DomainName)));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
+                       NDR_CHECK(ndr_push_relative_ptr1(ndr, r->DomainName));
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 
strlen(r->Workstation)));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 
strlen(r->Workstation)));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
+                       NDR_CHECK(ndr_push_relative_ptr1(ndr, r->Workstation));
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_push_set_switch_value(ndr, &r->Version, 
r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
+               NDR_CHECK(ndr_push_ntlmssp_Version(ndr, NDR_SCALARS, 
&r->Version));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
+                       if (r->DomainName) {
+                               NDR_CHECK(ndr_push_relative_ptr2(ndr, 
r->DomainName));
+                               {
+                                       struct ndr_push *_ndr_DomainName;
+                                       
NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_DomainName, 0, 
strlen(r->DomainName)));
+                                       
NDR_CHECK(ndr_push_string(_ndr_DomainName, NDR_SCALARS, r->DomainName));
+                                       NDR_CHECK(ndr_push_subcontext_end(ndr, 
_ndr_DomainName, 0, strlen(r->DomainName)));
+                               }
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
+                       if (r->Workstation) {
+                               NDR_CHECK(ndr_push_relative_ptr2(ndr, 
r->Workstation));
+                               {
+                                       struct ndr_push *_ndr_Workstation;
+                                       
NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_Workstation, 0, 
strlen(r->Workstation)));
+                                       
NDR_CHECK(ndr_push_string(_ndr_Workstation, NDR_SCALARS, r->Workstation));
+                                       NDR_CHECK(ndr_push_subcontext_end(ndr, 
_ndr_Workstation, 0, strlen(r->Workstation)));
+                               }
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_push_ntlmssp_Version(ndr, NDR_BUFFERS, 
&r->Version));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_NEGOTIATE_MESSAGE(struct ndr_pull *ndr, 
int ndr_flags, struct NEGOTIATE_MESSAGE *r)
+{
+       uint32_t _ptr_DomainName;
+       TALLOC_CTX *_mem_save_DomainName_0;
+       uint32_t _ptr_Workstation;
+       TALLOC_CTX *_mem_save_Workstation_0;
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_pull_align(ndr, 4));
+               NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->Signature, 8, 
sizeof(uint8_t), CH_DOS));
+               NDR_CHECK(ndr_pull_ntlmssp_MessageType(ndr, NDR_SCALARS, 
&r->MessageType));
+               NDR_CHECK(ndr_pull_NEGOTIATE(ndr, NDR_SCALARS, 
&r->NegotiateFlags));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DomainNameLen));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, 
&r->DomainNameMaxLen));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
+                       NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_DomainName));
+                       if (_ptr_DomainName) {
+                               NDR_PULL_ALLOC(ndr, r->DomainName);
+                               NDR_CHECK(ndr_pull_relative_ptr1(ndr, 
r->DomainName, _ptr_DomainName));
+                       } else {
+                               r->DomainName = NULL;
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, 
&r->WorkstationLen));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, 
&r->WorkstationMaxLen));
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
+                       NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Workstation));
+                       if (_ptr_Workstation) {
+                               NDR_PULL_ALLOC(ndr, r->Workstation);
+                               NDR_CHECK(ndr_pull_relative_ptr1(ndr, 
r->Workstation, _ptr_Workstation));
+                       } else {
+                               r->Workstation = NULL;
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->Version, 
r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
+               NDR_CHECK(ndr_pull_ntlmssp_Version(ndr, NDR_SCALARS, 
&r->Version));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
+                       if (r->DomainName) {
+                               uint32_t _relative_save_offset;
+                               _relative_save_offset = ndr->offset;
+                               NDR_CHECK(ndr_pull_relative_ptr2(ndr, 
r->DomainName));
+                               _mem_save_DomainName_0 = 
NDR_PULL_GET_MEM_CTX(ndr);
+                               NDR_PULL_SET_MEM_CTX(ndr, r->DomainName, 0);
+                               {
+                                       struct ndr_pull *_ndr_DomainName;
+                                       
NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_DomainName, 0, 
r->DomainNameLen));
+                                       
NDR_CHECK(ndr_pull_string(_ndr_DomainName, NDR_SCALARS, &r->DomainName));
+                                       NDR_CHECK(ndr_pull_subcontext_end(ndr, 
_ndr_DomainName, 0, r->DomainNameLen));
+                               }
+                               NDR_PULL_SET_MEM_CTX(ndr, 
_mem_save_DomainName_0, 0);
+                               ndr->offset = _relative_save_offset;
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               {
+                       uint32_t _flags_save_string = ndr->flags;
+                       ndr_set_flags(&ndr->flags, 
ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
+                       if (r->Workstation) {
+                               uint32_t _relative_save_offset;
+                               _relative_save_offset = ndr->offset;
+                               NDR_CHECK(ndr_pull_relative_ptr2(ndr, 
r->Workstation));
+                               _mem_save_Workstation_0 = 
NDR_PULL_GET_MEM_CTX(ndr);
+                               NDR_PULL_SET_MEM_CTX(ndr, r->Workstation, 0);
+                               {
+                                       struct ndr_pull *_ndr_Workstation;
+                                       
NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_Workstation, 0, 
r->WorkstationLen));
+                                       
NDR_CHECK(ndr_pull_string(_ndr_Workstation, NDR_SCALARS, &r->Workstation));
+                                       NDR_CHECK(ndr_pull_subcontext_end(ndr, 
_ndr_Workstation, 0, r->WorkstationLen));
+                               }
+                               NDR_PULL_SET_MEM_CTX(ndr, 
_mem_save_Workstation_0, 0);
+                               ndr->offset = _relative_save_offset;
+                       }
+                       ndr->flags = _flags_save_string;
+               }
+               NDR_CHECK(ndr_pull_ntlmssp_Version(ndr, NDR_BUFFERS, 
&r->Version));
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_NEGOTIATE_MESSAGE(struct ndr_print *ndr, const char 
*name, const struct NEGOTIATE_MESSAGE *r)
+{
+       ndr_print_struct(ndr, name, "NEGOTIATE_MESSAGE");
+       ndr->depth++;
+       ndr_print_string(ndr, "Signature", (ndr->flags & 
LIBNDR_PRINT_SET_VALUES)?"NTLMSSP":r->Signature);
+       ndr_print_ntlmssp_MessageType(ndr, "MessageType", (ndr->flags & 
LIBNDR_PRINT_SET_VALUES)?NtLmNegotiate:r->MessageType);
+       ndr_print_NEGOTIATE(ndr, "NegotiateFlags", r->NegotiateFlags);
+       ndr_print_uint16(ndr, "DomainNameLen", (ndr->flags & 
LIBNDR_PRINT_SET_VALUES)?strlen(r->DomainName):r->DomainNameLen);
+       ndr_print_uint16(ndr, "DomainNameMaxLen", (ndr->flags & 
LIBNDR_PRINT_SET_VALUES)?r->DomainNameLen:r->DomainNameMaxLen);
+       ndr_print_ptr(ndr, "DomainName", r->DomainName);
+       ndr->depth++;
+       if (r->DomainName) {
+               ndr_print_string(ndr, "DomainName", r->DomainName);
+       }
+       ndr->depth--;
+       ndr_print_uint16(ndr, "WorkstationLen", (ndr->flags & 
LIBNDR_PRINT_SET_VALUES)?strlen(r->Workstation):r->WorkstationLen);
+       ndr_print_uint16(ndr, "WorkstationMaxLen", (ndr->flags & 
LIBNDR_PRINT_SET_VALUES)?r->WorkstationLen:r->WorkstationMaxLen);
+       ndr_print_ptr(ndr, "Workstation", r->Workstation);
+       ndr->depth++;
+       if (r->Workstation) {
+               ndr_print_string(ndr, "Workstation", r->Workstation);
+       }
+       ndr->depth--;
+       ndr_print_set_switch_value(ndr, &r->Version, r->NegotiateFlags & 
NTLMSSP_NEGOTIATE_VERSION);
+       ndr_print_ntlmssp_Version(ndr, "Version", &r->Version);
+       ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_ntlmssp_AvId(struct ndr_push *ndr, int 
ndr_flags, enum ntlmssp_AvId r)
+{
+       NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_ntlmssp_AvId(struct ndr_pull *ndr, int 
ndr_flags, enum ntlmssp_AvId *r)
+{
+       uint16_t v;
+       NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
+       *r = v;
+       return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_ntlmssp_AvId(struct ndr_print *ndr, const char *name, 
enum ntlmssp_AvId r)
+{
+       const char *val = NULL;
+
+       switch (r) {
+               case MsvAvEOL: val = "MsvAvEOL"; break;
+               case MsvAvNbComputerName: val = "MsvAvNbComputerName"; break;
+               case MsvAvNbDomainName: val = "MsvAvNbDomainName"; break;
+               case MsvAvDnsComputerName: val = "MsvAvDnsComputerName"; break;
+               case MsvAvDnsDomainName: val = "MsvAvDnsDomainName"; break;
+               case MsvAvDnsTreeName: val = "MsvAvDnsTreeName"; break;
+               case MsvAvFlags: val = "MsvAvFlags"; break;
+               case MsvAvTimestamp: val = "MsvAvTimestamp"; break;
+               case MsAvRestrictions: val = "MsAvRestrictions"; break;
+               case MsvAvTargetName: val = "MsvAvTargetName"; break;
+               case MsvChannelBindings: val = "MsvChannelBindings"; break;
+       }
+       ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_Restriction_Encoding(struct ndr_push *ndr, 
int ndr_flags, const struct Restriction_Encoding *r)
+{
+       if (ndr_flags & NDR_SCALARS) {
+               NDR_CHECK(ndr_push_align(ndr, 4));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Size));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->IntegrityLevel));
+               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 
r->SubjectIntegrityLevel));
+               NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->MachineId, 
32));
+       }
+       if (ndr_flags & NDR_BUFFERS) {
+       }
+       return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_Restriction_Encoding(struct ndr_pull *ndr, 
int ndr_flags, struct Restriction_Encoding *r)


-- 
Samba Shared Repository

Reply via email to