[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-test-2566-g9ac2606

Günther Deschner gd at samba.org
Wed Feb 27 23:45:25 GMT 2008


The branch, v3-2-test has been updated
       via  9ac2606d5214f1bf4a8ec2ac46bcaeba62e56992 (commit)
       via  19048ab4ad1b262536efae5b8b8b4411ec088921 (commit)
       via  86061904136706443e5abfda254a2c3a14ffd304 (commit)
       via  67293496c5ae287e8bf2823fe21ed17c22bb4fac (commit)
       via  a69c6422bb7b1ab64236cbab193d54fd90c106f0 (commit)
       via  7c1d30f3dca068d7a3b6ec138d1d01141f0386c2 (commit)
       via  6a84317aec9ae3fcd813390b0eec655387e036ec (commit)
       via  b1edbc7649561fa2e518281a8035765916a684f2 (commit)
      from  1edfeb9951b77a21044f0ea4e75255faef308e67 (commit)

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


- Log -----------------------------------------------------------------
commit 9ac2606d5214f1bf4a8ec2ac46bcaeba62e56992
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 28 00:34:45 2008 +0100

    Remove unused marshalling for SVCCTL_SET_SERVICE_SEC.
    
    Guenther

commit 19048ab4ad1b262536efae5b8b8b4411ec088921
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 28 00:33:06 2008 +0100

    Use pidl for _svcctl_SetServiceObjectSecurity().
    
    Guenther

commit 86061904136706443e5abfda254a2c3a14ffd304
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 28 00:18:37 2008 +0100

    Re-run make idl.
    
    Guenther

commit 67293496c5ae287e8bf2823fe21ed17c22bb4fac
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 28 00:17:30 2008 +0100

    Fill in IDL for svcctl_SetServiceObjectSecurity.
    
    Guenther

commit a69c6422bb7b1ab64236cbab193d54fd90c106f0
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 28 00:16:46 2008 +0100

    Remove unused marshalling for SVCCTL_QUERY_SERVICE_SEC.
    
    Guenther

commit 7c1d30f3dca068d7a3b6ec138d1d01141f0386c2
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 28 00:05:23 2008 +0100

    Use pidl for _svcctl_QueryServiceObjectSecurity().
    
    Guenther

commit 6a84317aec9ae3fcd813390b0eec655387e036ec
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 28 00:03:00 2008 +0100

    Re-run make idl.
    
    Guenther

commit b1edbc7649561fa2e518281a8035765916a684f2
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 28 00:03:20 2008 +0100

    Fill in IDL for svcctl_QueryServiceObjectSecurity.
    
    Guenther

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

Summary of changes:
 source/include/rpc_svcctl.h        |   29 ----------
 source/librpc/gen_ndr/cli_svcctl.c |   18 ++++++
 source/librpc/gen_ndr/cli_svcctl.h |    9 +++
 source/librpc/gen_ndr/ndr_svcctl.c |  106 +++++++++++++++++++++++++++++++++++
 source/librpc/gen_ndr/srv_svcctl.c |   13 ++++
 source/librpc/gen_ndr/svcctl.h     |   15 +++++
 source/librpc/idl/svcctl.idl       |    9 +++
 source/rpc_parse/parse_svcctl.c    |  107 ------------------------------------
 source/rpc_server/srv_svcctl.c     |   36 +-----------
 source/rpc_server/srv_svcctl_nt.c  |   55 ++++++++++---------
 10 files changed, 201 insertions(+), 196 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/include/rpc_svcctl.h b/source/include/rpc_svcctl.h
index 99d0c70..5a87e35 100644
--- a/source/include/rpc_svcctl.h
+++ b/source/include/rpc_svcctl.h
@@ -271,34 +271,5 @@ typedef struct {
 	WERROR status;
 } SVCCTL_R_QUERY_SERVICE_STATUSEX;
 
-
-/**************************/
-
-typedef struct {
-	POLICY_HND handle;
-	uint32 security_flags;
-	uint32 buffer_size;	
-} SVCCTL_Q_QUERY_SERVICE_SEC;
-
-typedef struct {
-	RPC_BUFFER buffer;
-	uint32 needed;
-	WERROR status;
-} SVCCTL_R_QUERY_SERVICE_SEC;
-
-/**************************/
-
-typedef struct {
-	POLICY_HND handle; 
-	uint32 security_flags;        
-	RPC_BUFFER buffer;
-	uint32 buffer_size;
-} SVCCTL_Q_SET_SERVICE_SEC;
-
-typedef struct {
-	WERROR status;
-} SVCCTL_R_SET_SERVICE_SEC;
-
-
 #endif /* _RPC_SVCCTL_H */
 
diff --git a/source/librpc/gen_ndr/cli_svcctl.c b/source/librpc/gen_ndr/cli_svcctl.c
index 2a5d6ba..b8f18af 100644
--- a/source/librpc/gen_ndr/cli_svcctl.c
+++ b/source/librpc/gen_ndr/cli_svcctl.c
@@ -191,12 +191,20 @@ NTSTATUS rpccli_svcctl_LockServiceDatabase(struct rpc_pipe_client *cli,
 
 NTSTATUS rpccli_svcctl_QueryServiceObjectSecurity(struct rpc_pipe_client *cli,
 						  TALLOC_CTX *mem_ctx,
+						  struct policy_handle *handle,
+						  uint32_t security_flags,
+						  uint8_t *buffer,
+						  uint32_t buffer_size,
+						  uint32_t *needed,
 						  WERROR *werror)
 {
 	struct svcctl_QueryServiceObjectSecurity r;
 	NTSTATUS status;
 
 	/* In parameters */
+	r.in.handle = handle;
+	r.in.security_flags = security_flags;
+	r.in.buffer_size = buffer_size;
 
 	if (DEBUGLEVEL >= 10) {
 		NDR_PRINT_IN_DEBUG(svcctl_QueryServiceObjectSecurity, &r);
@@ -222,6 +230,8 @@ NTSTATUS rpccli_svcctl_QueryServiceObjectSecurity(struct rpc_pipe_client *cli,
 	}
 
 	/* Return variables */
+	memcpy(buffer, r.out.buffer, r.in.buffer_size);
+	*needed = *r.out.needed;
 
 	/* Return result */
 	if (werror) {
@@ -233,12 +243,20 @@ NTSTATUS rpccli_svcctl_QueryServiceObjectSecurity(struct rpc_pipe_client *cli,
 
 NTSTATUS rpccli_svcctl_SetServiceObjectSecurity(struct rpc_pipe_client *cli,
 						TALLOC_CTX *mem_ctx,
+						struct policy_handle *handle,
+						uint32_t security_flags,
+						uint8_t *buffer,
+						uint32_t buffer_size,
 						WERROR *werror)
 {
 	struct svcctl_SetServiceObjectSecurity r;
 	NTSTATUS status;
 
 	/* In parameters */
+	r.in.handle = handle;
+	r.in.security_flags = security_flags;
+	r.in.buffer = buffer;
+	r.in.buffer_size = buffer_size;
 
 	if (DEBUGLEVEL >= 10) {
 		NDR_PRINT_IN_DEBUG(svcctl_SetServiceObjectSecurity, &r);
diff --git a/source/librpc/gen_ndr/cli_svcctl.h b/source/librpc/gen_ndr/cli_svcctl.h
index e9eeb2d..7c62519 100644
--- a/source/librpc/gen_ndr/cli_svcctl.h
+++ b/source/librpc/gen_ndr/cli_svcctl.h
@@ -22,9 +22,18 @@ NTSTATUS rpccli_svcctl_LockServiceDatabase(struct rpc_pipe_client *cli,
 					   WERROR *werror);
 NTSTATUS rpccli_svcctl_QueryServiceObjectSecurity(struct rpc_pipe_client *cli,
 						  TALLOC_CTX *mem_ctx,
+						  struct policy_handle *handle,
+						  uint32_t security_flags,
+						  uint8_t *buffer,
+						  uint32_t buffer_size,
+						  uint32_t *needed,
 						  WERROR *werror);
 NTSTATUS rpccli_svcctl_SetServiceObjectSecurity(struct rpc_pipe_client *cli,
 						TALLOC_CTX *mem_ctx,
+						struct policy_handle *handle,
+						uint32_t security_flags,
+						uint8_t *buffer,
+						uint32_t buffer_size,
 						WERROR *werror);
 NTSTATUS rpccli_svcctl_QueryServiceStatus(struct rpc_pipe_client *cli,
 					  TALLOC_CTX *mem_ctx,
diff --git a/source/librpc/gen_ndr/ndr_svcctl.c b/source/librpc/gen_ndr/ndr_svcctl.c
index b2dfd0e..16e0416 100644
--- a/source/librpc/gen_ndr/ndr_svcctl.c
+++ b/source/librpc/gen_ndr/ndr_svcctl.c
@@ -588,8 +588,23 @@ _PUBLIC_ void ndr_print_svcctl_LockServiceDatabase(struct ndr_print *ndr, const
 static enum ndr_err_code ndr_push_svcctl_QueryServiceObjectSecurity(struct ndr_push *ndr, int flags, const struct svcctl_QueryServiceObjectSecurity *r)
 {
 	if (flags & NDR_IN) {
+		if (r->in.handle == NULL) {
+			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+		}
+		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.security_flags));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
 	}
 	if (flags & NDR_OUT) {
+		if (r->out.buffer == NULL) {
+			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+		}
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
+		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.buffer_size));
+		if (r->out.needed == NULL) {
+			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+		}
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
 		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 	}
 	return NDR_ERR_SUCCESS;
@@ -597,10 +612,48 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceObjectSecurity(struct ndr_p
 
 static enum ndr_err_code ndr_pull_svcctl_QueryServiceObjectSecurity(struct ndr_pull *ndr, int flags, struct svcctl_QueryServiceObjectSecurity *r)
 {
+	TALLOC_CTX *_mem_save_handle_0;
+	TALLOC_CTX *_mem_save_needed_0;
 	if (flags & NDR_IN) {
+		ZERO_STRUCT(r->out);
+
+		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+			NDR_PULL_ALLOC(ndr, r->in.handle);
+		}
+		_mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+		NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
+		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
+		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.security_flags));
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffer_size));
+		if (r->in.buffer_size < 0 || r->in.buffer_size > 0x40000) {
+			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+		}
+		NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.buffer_size);
+		memset(r->out.buffer, 0, (r->in.buffer_size) * sizeof(*r->out.buffer));
+		NDR_PULL_ALLOC(ndr, r->out.needed);
+		ZERO_STRUCTP(r->out.needed);
 	}
 	if (flags & NDR_OUT) {
+		NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
+		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+			NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
+		}
+		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
+		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+			NDR_PULL_ALLOC(ndr, r->out.needed);
+		}
+		_mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
+		NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
+		if (*r->out.needed < 0 || *r->out.needed > 0x40000) {
+			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+		}
+		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
 		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
+		if (r->out.buffer) {
+			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.buffer_size));
+		}
 	}
 	return NDR_ERR_SUCCESS;
 }
@@ -615,11 +668,25 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceObjectSecurity(struct ndr_print *ndr,
 	if (flags & NDR_IN) {
 		ndr_print_struct(ndr, "in", "svcctl_QueryServiceObjectSecurity");
 		ndr->depth++;
+		ndr_print_ptr(ndr, "handle", r->in.handle);
+		ndr->depth++;
+		ndr_print_policy_handle(ndr, "handle", r->in.handle);
+		ndr->depth--;
+		ndr_print_uint32(ndr, "security_flags", r->in.security_flags);
+		ndr_print_uint32(ndr, "buffer_size", r->in.buffer_size);
 		ndr->depth--;
 	}
 	if (flags & NDR_OUT) {
 		ndr_print_struct(ndr, "out", "svcctl_QueryServiceObjectSecurity");
 		ndr->depth++;
+		ndr_print_ptr(ndr, "buffer", r->out.buffer);
+		ndr->depth++;
+		ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.buffer_size);
+		ndr->depth--;
+		ndr_print_ptr(ndr, "needed", r->out.needed);
+		ndr->depth++;
+		ndr_print_uint32(ndr, "needed", *r->out.needed);
+		ndr->depth--;
 		ndr_print_WERROR(ndr, "result", r->out.result);
 		ndr->depth--;
 	}
@@ -629,6 +696,17 @@ _PUBLIC_ void ndr_print_svcctl_QueryServiceObjectSecurity(struct ndr_print *ndr,
 static enum ndr_err_code ndr_push_svcctl_SetServiceObjectSecurity(struct ndr_push *ndr, int flags, const struct svcctl_SetServiceObjectSecurity *r)
 {
 	if (flags & NDR_IN) {
+		if (r->in.handle == NULL) {
+			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+		}
+		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.security_flags));
+		if (r->in.buffer == NULL) {
+			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+		}
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
+		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.buffer_size));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffer_size));
 	}
 	if (flags & NDR_OUT) {
 		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
@@ -638,7 +716,25 @@ static enum ndr_err_code ndr_push_svcctl_SetServiceObjectSecurity(struct ndr_pus
 
 static enum ndr_err_code ndr_pull_svcctl_SetServiceObjectSecurity(struct ndr_pull *ndr, int flags, struct svcctl_SetServiceObjectSecurity *r)
 {
+	TALLOC_CTX *_mem_save_handle_0;
 	if (flags & NDR_IN) {
+		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+			NDR_PULL_ALLOC(ndr, r->in.handle);
+		}
+		_mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+		NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
+		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.handle));
+		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.security_flags));
+		NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
+		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+			NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
+		}
+		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffer_size));
+		if (r->in.buffer) {
+			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.buffer_size));
+		}
 	}
 	if (flags & NDR_OUT) {
 		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
@@ -656,6 +752,16 @@ _PUBLIC_ void ndr_print_svcctl_SetServiceObjectSecurity(struct ndr_print *ndr, c
 	if (flags & NDR_IN) {
 		ndr_print_struct(ndr, "in", "svcctl_SetServiceObjectSecurity");
 		ndr->depth++;
+		ndr_print_ptr(ndr, "handle", r->in.handle);
+		ndr->depth++;
+		ndr_print_policy_handle(ndr, "handle", r->in.handle);
+		ndr->depth--;
+		ndr_print_uint32(ndr, "security_flags", r->in.security_flags);
+		ndr_print_ptr(ndr, "buffer", r->in.buffer);
+		ndr->depth++;
+		ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.buffer_size);
+		ndr->depth--;
+		ndr_print_uint32(ndr, "buffer_size", r->in.buffer_size);
 		ndr->depth--;
 	}
 	if (flags & NDR_OUT) {
diff --git a/source/librpc/gen_ndr/srv_svcctl.c b/source/librpc/gen_ndr/srv_svcctl.c
index a716391..10db320 100644
--- a/source/librpc/gen_ndr/srv_svcctl.c
+++ b/source/librpc/gen_ndr/srv_svcctl.c
@@ -352,6 +352,19 @@ static bool api_svcctl_QueryServiceObjectSecurity(pipes_struct *p)
 		NDR_PRINT_IN_DEBUG(svcctl_QueryServiceObjectSecurity, r);
 	}
 
+	ZERO_STRUCT(r->out);
+	r->out.buffer = talloc_zero_array(r, uint8_t, r->in.buffer_size);
+	if (r->out.buffer == NULL) {
+		talloc_free(r);
+		return false;
+	}
+
+	r->out.needed = talloc_zero(r, uint32_t);
+	if (r->out.needed == NULL) {
+		talloc_free(r);
+		return false;
+	}
+
 	r->out.result = _svcctl_QueryServiceObjectSecurity(p, r);
 
 	if (p->rng_fault_state) {
diff --git a/source/librpc/gen_ndr/svcctl.h b/source/librpc/gen_ndr/svcctl.h
index 7314be0..c13e96b 100644
--- a/source/librpc/gen_ndr/svcctl.h
+++ b/source/librpc/gen_ndr/svcctl.h
@@ -134,6 +134,14 @@ struct svcctl_LockServiceDatabase {
 
 struct svcctl_QueryServiceObjectSecurity {
 	struct {
+		struct policy_handle *handle;/* [ref] */
+		uint32_t security_flags;
+		uint32_t buffer_size;/* [range(0,0x40000)] */
+	} in;
+
+	struct {
+		uint8_t *buffer;/* [ref,size_is(buffer_size)] */
+		uint32_t *needed;/* [ref,range(0,0x40000)] */
 		WERROR result;
 	} out;
 
@@ -142,6 +150,13 @@ struct svcctl_QueryServiceObjectSecurity {
 
 struct svcctl_SetServiceObjectSecurity {
 	struct {
+		struct policy_handle *handle;/* [ref] */
+		uint32_t security_flags;
+		uint8_t *buffer;/* [ref,size_is(buffer_size)] */
+		uint32_t buffer_size;
+	} in;
+
+	struct {
 		WERROR result;
 	} out;
 
diff --git a/source/librpc/idl/svcctl.idl b/source/librpc/idl/svcctl.idl
index 97c9f0e..e36a091 100644
--- a/source/librpc/idl/svcctl.idl
+++ b/source/librpc/idl/svcctl.idl
@@ -115,11 +115,20 @@
 	/*****************/
 	/* Function 0x04 */
 	WERROR svcctl_QueryServiceObjectSecurity(
+		[in] policy_handle *handle,
+		[in] uint32 security_flags,
+		[out,ref,size_is(buffer_size)] uint8 *buffer,
+		[in,range(0,0x40000)] uint32 buffer_size,
+		[out,ref,range(0,0x40000)] uint32 *needed
 	);
 
 	/*****************/
 	/* Function 0x05 */
 	WERROR svcctl_SetServiceObjectSecurity(
+		[in] policy_handle *handle,
+		[in] uint32 security_flags,
+		[in,ref,size_is(buffer_size)] uint8 *buffer,
+		[in] uint32 buffer_size
 	);
 
 	/*****************/
diff --git a/source/rpc_parse/parse_svcctl.c b/source/rpc_parse/parse_svcctl.c
index ececf1b..62c1e21 100644
--- a/source/rpc_parse/parse_svcctl.c
+++ b/source/rpc_parse/parse_svcctl.c
@@ -589,110 +589,3 @@ bool svcctl_io_r_query_service_status_ex(const char *desc, SVCCTL_R_QUERY_SERVIC
 
 	return True;
 }
-
-/*******************************************************************
-********************************************************************/
-
-bool svcctl_io_q_query_service_sec(const char *desc, SVCCTL_Q_QUERY_SERVICE_SEC *q_u, prs_struct *ps, int depth)
-{
-	if (q_u == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "svcctl_io_q_query_service_sec");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!smb_io_pol_hnd("handle", &q_u->handle, ps, depth))
-		return False;
-	if(!prs_uint32("security_flags", ps, depth, &q_u->security_flags))
-		return False;
-	if(!prs_uint32("buffer_size", ps, depth, &q_u->buffer_size))
-		return False;
-
-	return True;
-
-}
-
-/*******************************************************************
-********************************************************************/
-
-bool svcctl_io_r_query_service_sec(const char *desc, SVCCTL_R_QUERY_SERVICE_SEC *r_u, prs_struct *ps, int depth)
-{
-	if ( !r_u )
-		return False;
-
-	prs_debug(ps, depth, desc, "svcctl_io_r_query_service_sec");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if (!prs_rpcbuffer("buffer", ps, depth, &r_u->buffer))
-		return False;
-
-	if(!prs_uint32("needed", ps, depth, &r_u->needed))
-		return False;
-
-	if(!prs_werror("status", ps, depth, &r_u->status))
-		return False;
-
-	return True;
-}
-
-/*******************************************************************
-********************************************************************/
-
-bool svcctl_io_q_set_service_sec(const char *desc, SVCCTL_Q_SET_SERVICE_SEC *q_u, prs_struct *ps, int depth)
-{
-	if (q_u == NULL)
-		return False;
-
-	prs_debug(ps, depth, desc, "svcctl_io_q_set_service_sec");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!smb_io_pol_hnd("handle", &q_u->handle, ps, depth))
-		return False;
-	if(!prs_uint32("security_flags", ps, depth, &q_u->security_flags))
-		return False;
-
-	if (!prs_rpcbuffer("buffer", ps, depth, &q_u->buffer))
-		return False;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!prs_uint32("buffer_size", ps, depth, &q_u->buffer_size))
-		return False;
-
-	return True;
-
-}
-
-/*******************************************************************
-********************************************************************/
-
-bool svcctl_io_r_set_service_sec(const char *desc, SVCCTL_R_SET_SERVICE_SEC *r_u, prs_struct *ps, int depth)
-{
-	if ( !r_u )
-		return False;
-
-	prs_debug(ps, depth, desc, "svcctl_io_r_set_service_sec");
-	depth++;
-
-	if(!prs_align(ps))
-		return False;
-
-	if(!prs_werror("status", ps, depth, &r_u->status))
-		return False;
-
-	return True;
-}
-
-
-
-
diff --git a/source/rpc_server/srv_svcctl.c b/source/rpc_server/srv_svcctl.c
index 565c93f..5e12514 100644
--- a/source/rpc_server/srv_svcctl.c
+++ b/source/rpc_server/srv_svcctl.c
@@ -236,23 +236,7 @@ static bool api_svcctl_unlock_service_db(pipes_struct *p)
 
 static bool api_svcctl_query_security_sec(pipes_struct *p)
 {
-	SVCCTL_Q_QUERY_SERVICE_SEC q_u;
-	SVCCTL_R_QUERY_SERVICE_SEC r_u;
-	prs_struct *data = &p->in_data.data;
-	prs_struct *rdata = &p->out_data.rdata;
-
-	ZERO_STRUCT(q_u);
-	ZERO_STRUCT(r_u);
-
-	if(!svcctl_io_q_query_service_sec("", &q_u, data, 0))
-		return False;
-
-	r_u.status = _svcctl_query_service_sec(p, &q_u, &r_u);
-
-	if(!svcctl_io_r_query_service_sec("", &r_u, rdata, 0))


-- 
Samba Shared Repository


More information about the samba-cvs mailing list