[SCM] Samba Shared Repository - branch master updated - tevent-0-9-8-171-ga155f3f
Günther Deschner
gd at samba.org
Thu Sep 10 18:58:37 MDT 2009
The branch, master has been updated
via a155f3f9a92d57c2fa18ef44780e85e16cb32d1f (commit)
via 9ab5d9be8d5df7f5d894159d75f343913d9d8778 (commit)
via 721b76cfbadb6a9466e6015c5e77bbb8f6491c3d (commit)
via 38ab500b787a96788cf59c14fadfc4f5a42bd029 (commit)
from 3c70480f3b01befe3fa8e7f0bdf5853949d55449 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit a155f3f9a92d57c2fa18ef44780e85e16cb32d1f
Author: Günther Deschner <gd at samba.org>
Date: Fri Sep 11 02:21:33 2009 +0200
s3-schannel: remove unused code.
Guenther
commit 9ab5d9be8d5df7f5d894159d75f343913d9d8778
Author: Günther Deschner <gd at samba.org>
Date: Fri Sep 11 02:20:59 2009 +0200
s3-schannel: use NL_AUTH_MESSAGE for schannel bind reply.
Guenther
commit 721b76cfbadb6a9466e6015c5e77bbb8f6491c3d
Author: Günther Deschner <gd at samba.org>
Date: Fri Sep 11 02:18:59 2009 +0200
schannel: more work on reponse NL_AUTH_MESSAGES.
Guenther
commit 38ab500b787a96788cf59c14fadfc4f5a42bd029
Author: Günther Deschner <gd at samba.org>
Date: Fri Sep 11 02:17:51 2009 +0200
s3-nterr: add NT_STATUS_RPC_NT_PROTOCOL_ERROR to nt_errstr().
Guenther
-----------------------------------------------------------------------
Summary of changes:
librpc/gen_ndr/ndr_schannel.c | 64 +++++++++++++++++++++++++++++++++++++++++
librpc/gen_ndr/ndr_schannel.h | 3 ++
librpc/gen_ndr/schannel.h | 5 +++
librpc/idl/schannel.idl | 8 ++++-
librpc/ndr/ndr_schannel.c | 15 +++++++++
librpc/ndr/ndr_schannel.h | 2 +
source3/include/proto.h | 6 ----
source3/include/rpc_dce.h | 6 ----
source3/libsmb/nterr.c | 1 +
source3/rpc_parse/parse_rpc.c | 63 ----------------------------------------
source3/rpc_server/srv_pipe.c | 27 +++++++++++------
11 files changed, 114 insertions(+), 86 deletions(-)
Changeset truncated at 500 lines:
diff --git a/librpc/gen_ndr/ndr_schannel.c b/librpc/gen_ndr/ndr_schannel.c
index 98021e5..4bbb56a 100644
--- a/librpc/gen_ndr/ndr_schannel.c
+++ b/librpc/gen_ndr/ndr_schannel.c
@@ -571,6 +571,62 @@ _PUBLIC_ enum ndr_err_code ndr_pull_NL_AUTH_MESSAGE_BUFFER(struct ndr_pull *ndr,
return NDR_ERR_SUCCESS;
}
+_PUBLIC_ enum ndr_err_code ndr_push_NL_AUTH_MESSAGE_BUFFER_REPLY(struct ndr_push *ndr, int ndr_flags, const union NL_AUTH_MESSAGE_BUFFER_REPLY *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ int level = ndr_push_get_switch_value(ndr, r);
+ switch (level) {
+ case NL_NEGOTIATE_RESPONSE: {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy));
+ break; }
+
+ default: {
+ break; }
+
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ int level = ndr_push_get_switch_value(ndr, r);
+ switch (level) {
+ case NL_NEGOTIATE_RESPONSE:
+ break;
+
+ default:
+ break;
+
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_NL_AUTH_MESSAGE_BUFFER_REPLY(struct ndr_pull *ndr, int ndr_flags, union NL_AUTH_MESSAGE_BUFFER_REPLY *r)
+{
+ int level;
+ level = ndr_pull_get_switch_value(ndr, r);
+ if (ndr_flags & NDR_SCALARS) {
+ switch (level) {
+ case NL_NEGOTIATE_RESPONSE: {
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
+ break; }
+
+ default: {
+ break; }
+
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ switch (level) {
+ case NL_NEGOTIATE_RESPONSE:
+ break;
+
+ default:
+ break;
+
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
_PUBLIC_ enum ndr_err_code ndr_push_NL_AUTH_MESSAGE(struct ndr_push *ndr, int ndr_flags, const struct NL_AUTH_MESSAGE *r)
{
{
@@ -590,6 +646,8 @@ _PUBLIC_ enum ndr_err_code ndr_push_NL_AUTH_MESSAGE(struct ndr_push *ndr, int nd
NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr, NDR_SCALARS, &r->utf8_dns_host));
NDR_CHECK(ndr_push_set_switch_value(ndr, &r->utf8_netbios_computer, r->Flags & NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME));
NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr, NDR_SCALARS, &r->utf8_netbios_computer));
+ NDR_CHECK(ndr_push_set_switch_value(ndr, &r->Buffer, r->MessageType & NL_NEGOTIATE_RESPONSE));
+ NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER_REPLY(ndr, NDR_SCALARS, &r->Buffer));
}
if (ndr_flags & NDR_BUFFERS) {
NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr, NDR_BUFFERS, &r->oem_netbios_domain));
@@ -597,6 +655,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_NL_AUTH_MESSAGE(struct ndr_push *ndr, int nd
NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr, NDR_BUFFERS, &r->utf8_dns_domain));
NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr, NDR_BUFFERS, &r->utf8_dns_host));
NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr, NDR_BUFFERS, &r->utf8_netbios_computer));
+ NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER_REPLY(ndr, NDR_BUFFERS, &r->Buffer));
}
ndr->flags = _flags_save_STRUCT;
}
@@ -622,6 +681,8 @@ _PUBLIC_ enum ndr_err_code ndr_pull_NL_AUTH_MESSAGE(struct ndr_pull *ndr, int nd
NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr, NDR_SCALARS, &r->utf8_dns_host));
NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->utf8_netbios_computer, r->Flags & NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME));
NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr, NDR_SCALARS, &r->utf8_netbios_computer));
+ NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->Buffer, r->MessageType & NL_NEGOTIATE_RESPONSE));
+ NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER_REPLY(ndr, NDR_SCALARS, &r->Buffer));
}
if (ndr_flags & NDR_BUFFERS) {
NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr, NDR_BUFFERS, &r->oem_netbios_domain));
@@ -629,6 +690,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_NL_AUTH_MESSAGE(struct ndr_pull *ndr, int nd
NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr, NDR_BUFFERS, &r->utf8_dns_domain));
NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr, NDR_BUFFERS, &r->utf8_dns_host));
NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr, NDR_BUFFERS, &r->utf8_netbios_computer));
+ NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER_REPLY(ndr, NDR_BUFFERS, &r->Buffer));
}
ndr->flags = _flags_save_STRUCT;
}
@@ -654,6 +716,8 @@ _PUBLIC_ void ndr_print_NL_AUTH_MESSAGE(struct ndr_print *ndr, const char *name,
ndr_print_NL_AUTH_MESSAGE_BUFFER(ndr, "utf8_dns_host", &r->utf8_dns_host);
ndr_print_set_switch_value(ndr, &r->utf8_netbios_computer, r->Flags & NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME);
ndr_print_NL_AUTH_MESSAGE_BUFFER(ndr, "utf8_netbios_computer", &r->utf8_netbios_computer);
+ ndr_print_set_switch_value(ndr, &r->Buffer, r->MessageType & NL_NEGOTIATE_RESPONSE);
+ ndr_print_NL_AUTH_MESSAGE_BUFFER_REPLY(ndr, "Buffer", &r->Buffer);
ndr->depth--;
ndr->flags = _flags_save_STRUCT;
}
diff --git a/librpc/gen_ndr/ndr_schannel.h b/librpc/gen_ndr/ndr_schannel.h
index 3e04905..ed40933 100644
--- a/librpc/gen_ndr/ndr_schannel.h
+++ b/librpc/gen_ndr/ndr_schannel.h
@@ -25,6 +25,9 @@ void ndr_print_NL_AUTH_MESSAGE_FLAGS(struct ndr_print *ndr, const char *name, ui
enum ndr_err_code ndr_push_NL_AUTH_MESSAGE_BUFFER(struct ndr_push *ndr, int ndr_flags, const union NL_AUTH_MESSAGE_BUFFER *r);
enum ndr_err_code ndr_pull_NL_AUTH_MESSAGE_BUFFER(struct ndr_pull *ndr, int ndr_flags, union NL_AUTH_MESSAGE_BUFFER *r);
void ndr_print_NL_AUTH_MESSAGE_BUFFER(struct ndr_print *ndr, const char *name, const union NL_AUTH_MESSAGE_BUFFER *r);
+enum ndr_err_code ndr_push_NL_AUTH_MESSAGE_BUFFER_REPLY(struct ndr_push *ndr, int ndr_flags, const union NL_AUTH_MESSAGE_BUFFER_REPLY *r);
+enum ndr_err_code ndr_pull_NL_AUTH_MESSAGE_BUFFER_REPLY(struct ndr_pull *ndr, int ndr_flags, union NL_AUTH_MESSAGE_BUFFER_REPLY *r);
+void ndr_print_NL_AUTH_MESSAGE_BUFFER_REPLY(struct ndr_print *ndr, const char *name, const union NL_AUTH_MESSAGE_BUFFER_REPLY *r);
enum ndr_err_code ndr_push_NL_AUTH_MESSAGE(struct ndr_push *ndr, int ndr_flags, const struct NL_AUTH_MESSAGE *r);
enum ndr_err_code ndr_pull_NL_AUTH_MESSAGE(struct ndr_pull *ndr, int ndr_flags, struct NL_AUTH_MESSAGE *r);
void ndr_print_NL_AUTH_MESSAGE(struct ndr_print *ndr, const char *name, const struct NL_AUTH_MESSAGE *r);
diff --git a/librpc/gen_ndr/schannel.h b/librpc/gen_ndr/schannel.h
index 83357d8..6a85af2 100644
--- a/librpc/gen_ndr/schannel.h
+++ b/librpc/gen_ndr/schannel.h
@@ -76,6 +76,10 @@ union NL_AUTH_MESSAGE_BUFFER {
const char * u;/* [case(NL_FLAG_UTF8_DNS_DOMAIN_NAME)] */
}/* [noprint,nodiscriminant,public] */;
+union NL_AUTH_MESSAGE_BUFFER_REPLY {
+ uint32_t dummy;/* [case(NL_NEGOTIATE_RESPONSE)] */
+}/* [noprint,nodiscriminant,public] */;
+
struct NL_AUTH_MESSAGE {
enum NL_AUTH_MESSAGE_TYPE MessageType;
uint32_t Flags;
@@ -84,6 +88,7 @@ struct NL_AUTH_MESSAGE {
union NL_AUTH_MESSAGE_BUFFER utf8_dns_domain;/* [switch_is(Flags&NL_FLAG_UTF8_DNS_DOMAIN_NAME)] */
union NL_AUTH_MESSAGE_BUFFER utf8_dns_host;/* [switch_is(Flags&NL_FLAG_UTF8_DNS_HOST_NAME)] */
union NL_AUTH_MESSAGE_BUFFER utf8_netbios_computer;/* [switch_is(Flags&NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME)] */
+ union NL_AUTH_MESSAGE_BUFFER_REPLY Buffer;/* [switch_is(MessageType&NL_NEGOTIATE_RESPONSE)] */
}/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
enum NL_SIGNATURE_ALGORITHM
diff --git a/librpc/idl/schannel.idl b/librpc/idl/schannel.idl
index c3bf3aa..d9b230d 100644
--- a/librpc/idl/schannel.idl
+++ b/librpc/idl/schannel.idl
@@ -82,9 +82,14 @@ interface schannel
[case (NL_FLAG_UTF8_DNS_DOMAIN_NAME)] nbt_string u;
[case (NL_FLAG_UTF8_DNS_HOST_NAME)] nbt_string u;
[case (NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME)] nbt_string u;
- [default];
+ [default] ;
} NL_AUTH_MESSAGE_BUFFER;
+ typedef [public,nodiscriminant,noprint] union {
+ [case (NL_NEGOTIATE_RESPONSE)] uint32 dummy;
+ [default] ;
+ } NL_AUTH_MESSAGE_BUFFER_REPLY;
+
typedef [public,flag(NDR_PAHEX)] struct {
NL_AUTH_MESSAGE_TYPE MessageType;
NL_AUTH_MESSAGE_FLAGS Flags;
@@ -93,6 +98,7 @@ interface schannel
[switch_is(Flags & NL_FLAG_UTF8_DNS_DOMAIN_NAME)] NL_AUTH_MESSAGE_BUFFER utf8_dns_domain;
[switch_is(Flags & NL_FLAG_UTF8_DNS_HOST_NAME)] NL_AUTH_MESSAGE_BUFFER utf8_dns_host;
[switch_is(Flags & NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME)] NL_AUTH_MESSAGE_BUFFER utf8_netbios_computer;
+ [switch_is(MessageType & NL_NEGOTIATE_RESPONSE)] NL_AUTH_MESSAGE_BUFFER_REPLY Buffer;
} NL_AUTH_MESSAGE;
/* MS-NRPC 2.2.1.3.2 NL_AUTH_SIGNATURE */
diff --git a/librpc/ndr/ndr_schannel.c b/librpc/ndr/ndr_schannel.c
index 9cf0e09..02796f7 100644
--- a/librpc/ndr/ndr_schannel.c
+++ b/librpc/ndr/ndr_schannel.c
@@ -54,3 +54,18 @@ _PUBLIC_ void ndr_print_NL_AUTH_MESSAGE_BUFFER(struct ndr_print *ndr, const char
}
}
+
+_PUBLIC_ void ndr_print_NL_AUTH_MESSAGE_BUFFER_REPLY(struct ndr_print *ndr, const char *name, const union NL_AUTH_MESSAGE_BUFFER_REPLY *r)
+{
+ int level;
+ level = ndr_print_get_switch_value(ndr, r);
+ switch (level) {
+ case NL_NEGOTIATE_RESPONSE:
+ ndr_print_uint32(ndr, name, r->dummy);
+ break;
+
+ default:
+ break;
+
+ }
+}
diff --git a/librpc/ndr/ndr_schannel.h b/librpc/ndr/ndr_schannel.h
index 5834488..d2dce79 100644
--- a/librpc/ndr/ndr_schannel.h
+++ b/librpc/ndr/ndr_schannel.h
@@ -20,3 +20,5 @@
*/
void ndr_print_NL_AUTH_MESSAGE_BUFFER(struct ndr_print *ndr, const char *name, const union NL_AUTH_MESSAGE_BUFFER *r);
+void ndr_print_NL_AUTH_MESSAGE_BUFFER_REPLY(struct ndr_print *ndr, const char *name, const union NL_AUTH_MESSAGE_BUFFER_REPLY *r);
+
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 5c58468..9de77f9 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -5728,12 +5728,6 @@ void init_rpc_hdr_auth(RPC_HDR_AUTH *rai,
uint8 auth_pad_len,
uint32 auth_context_id);
bool smb_io_rpc_hdr_auth(const char *desc, RPC_HDR_AUTH *rai, prs_struct *ps, int depth);
-bool rpc_auth_verifier_chk(RPC_AUTH_VERIFIER *rav,
- const char *signature, uint32 msg_type);
-void init_rpc_auth_verifier(RPC_AUTH_VERIFIER *rav,
- const char *signature, uint32 msg_type);
-bool smb_io_rpc_auth_verifier(const char *desc, RPC_AUTH_VERIFIER *rav, prs_struct *ps, int depth);
-bool smb_io_rpc_schannel_verifier(const char *desc, RPC_AUTH_VERIFIER *rav, prs_struct *ps, int depth);
bool smb_io_rpc_auth_schannel_chk(const char *desc, int auth_len,
RPC_AUTH_SCHANNEL_CHK * chk,
prs_struct *ps, int depth);
diff --git a/source3/include/rpc_dce.h b/source3/include/rpc_dce.h
index 684880d..7992658 100644
--- a/source3/include/rpc_dce.h
+++ b/source3/include/rpc_dce.h
@@ -228,10 +228,4 @@ typedef struct rpc_hdr_ba_info {
struct ndr_syntax_id transfer; /* the transfer syntax from the request */
} RPC_HDR_BA;
-/* RPC_AUTH_VERIFIER */
-typedef struct rpc_auth_verif_info {
- fstring signature; /* "NTLMSSP".. Ok, not quite anymore */
- uint32 msg_type; /* NTLMSSP_MESSAGE_TYPE (1,2,3) and 5 for schannel */
-} RPC_AUTH_VERIFIER;
-
#endif /* _DCE_RPC_H */
diff --git a/source3/libsmb/nterr.c b/source3/libsmb/nterr.c
index e9084c0..a684f8d 100644
--- a/source3/libsmb/nterr.c
+++ b/source3/libsmb/nterr.c
@@ -541,6 +541,7 @@ static const nt_err_code_struct nt_errs[] =
{ "STATUS_NO_MORE_FILES", STATUS_NO_MORE_FILES },
{ "NT_STATUS_RPC_CANNOT_SUPPORT", NT_STATUS_RPC_CANNOT_SUPPORT },
{ "NT_STATUS_RPC_NT_CALL_FAILED", NT_STATUS_RPC_NT_CALL_FAILED },
+ { "NT_STATUS_RPC_NT_PROTOCOL_ERROR", NT_STATUS_RPC_NT_PROTOCOL_ERROR },
{ NULL, NT_STATUS(0) }
};
diff --git a/source3/rpc_parse/parse_rpc.c b/source3/rpc_parse/parse_rpc.c
index 2e7216c..7b0592c 100644
--- a/source3/rpc_parse/parse_rpc.c
+++ b/source3/rpc_parse/parse_rpc.c
@@ -508,69 +508,6 @@ bool smb_io_rpc_hdr_auth(const char *desc, RPC_HDR_AUTH *rai, prs_struct *ps, in
}
/*******************************************************************
- Checks an RPC_AUTH_VERIFIER structure.
-********************************************************************/
-
-bool rpc_auth_verifier_chk(RPC_AUTH_VERIFIER *rav,
- const char *signature, uint32 msg_type)
-{
- return (strequal(rav->signature, signature) && rav->msg_type == msg_type);
-}
-
-/*******************************************************************
- Inits an RPC_AUTH_VERIFIER structure.
-********************************************************************/
-
-void init_rpc_auth_verifier(RPC_AUTH_VERIFIER *rav,
- const char *signature, uint32 msg_type)
-{
- fstrcpy(rav->signature, signature); /* "NTLMSSP" */
- rav->msg_type = msg_type; /* NTLMSSP_MESSAGE_TYPE */
-}
-
-/*******************************************************************
- Reads or writes an RPC_AUTH_VERIFIER structure.
-********************************************************************/
-
-bool smb_io_rpc_auth_verifier(const char *desc, RPC_AUTH_VERIFIER *rav, prs_struct *ps, int depth)
-{
- if (rav == NULL)
- return False;
-
- prs_debug(ps, depth, desc, "smb_io_rpc_auth_verifier");
- depth++;
-
- /* "NTLMSSP" */
- if(!prs_string("signature", ps, depth, rav->signature,
- sizeof(rav->signature)))
- return False;
- if(!prs_uint32("msg_type ", ps, depth, &rav->msg_type)) /* NTLMSSP_MESSAGE_TYPE */
- return False;
-
- return True;
-}
-
-/*******************************************************************
- This parses an RPC_AUTH_VERIFIER for schannel. I think
-********************************************************************/
-
-bool smb_io_rpc_schannel_verifier(const char *desc, RPC_AUTH_VERIFIER *rav, prs_struct *ps, int depth)
-{
- if (rav == NULL)
- return False;
-
- prs_debug(ps, depth, desc, "smb_io_rpc_schannel_verifier");
- depth++;
-
- if(!prs_string("signature", ps, depth, rav->signature, sizeof(rav->signature)))
- return False;
- if(!prs_uint32("msg_type ", ps, depth, &rav->msg_type))
- return False;
-
- return True;
-}
-
-/*******************************************************************
reads or writes an RPC_AUTH_SCHANNEL_CHK structure.
********************************************************************/
diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c
index e42c81e..5df87e3 100644
--- a/source3/rpc_server/srv_pipe.c
+++ b/source3/rpc_server/srv_pipe.c
@@ -1328,11 +1328,10 @@ static bool pipe_schannel_auth_bind(pipes_struct *p, prs_struct *rpc_in_p,
{
RPC_HDR_AUTH auth_info;
struct NL_AUTH_MESSAGE neg;
- RPC_AUTH_VERIFIER auth_verifier;
+ struct NL_AUTH_MESSAGE reply;
bool ret;
NTSTATUS status;
struct netlogon_creds_CredentialState *creds;
- uint32 flags;
DATA_BLOB session_key;
enum ndr_err_code ndr_err;
DATA_BLOB blob;
@@ -1422,17 +1421,25 @@ static bool pipe_schannel_auth_bind(pipes_struct *p, prs_struct *rpc_in_p,
/*** SCHANNEL verifier ***/
- init_rpc_auth_verifier(&auth_verifier, "\001", 0x0);
- if(!smb_io_rpc_schannel_verifier("", &auth_verifier, pout_auth, 0)) {
- DEBUG(0,("pipe_schannel_auth_bind: marshalling of RPC_AUTH_VERIFIER failed.\n"));
- return False;
+ reply.MessageType = NL_NEGOTIATE_RESPONSE;
+ reply.Flags = 0;
+ reply.Buffer.dummy = 5; /* ??? actually I don't think
+ * this has any meaning
+ * here - gd */
+
+ ndr_err = ndr_push_struct_blob(&blob, talloc_tos(), NULL, &reply,
+ (ndr_push_flags_fn_t)ndr_push_NL_AUTH_MESSAGE);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ DEBUG(0,("Failed to marshall NL_AUTH_MESSAGE.\n"));
+ return false;
}
- prs_align(pout_auth);
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_DEBUG(NL_AUTH_MESSAGE, &reply);
+ }
- flags = 5;
- if(!prs_uint32("flags ", pout_auth, 0, &flags)) {
- return False;
+ if (!prs_copy_data_in(pout_auth, (const char *)blob.data, blob.length)) {
+ return false;
}
DEBUG(10,("pipe_schannel_auth_bind: schannel auth: domain [%s] myname [%s]\n",
--
Samba Shared Repository
More information about the samba-cvs
mailing list