------------------------------------------------------------ revno: 11212 revision-id: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Jelmer Vernooij <[EMAIL PROTECTED]> branch nick: 4.0-mgmt timestamp: Tue 2007-01-16 14:26:25 +0100 message: Implement inq_if_ids. removed: source/rpc_server/mgmt/ svn-v2:[EMAIL PROTECTED] modified: .bzrignore svn-v2:[EMAIL PROTECTED] source/librpc/idl/mgmt.idl svn-v2:[EMAIL PROTECTED] source/rpc_server/dcesrv_mgmt.c svn-v2:[EMAIL PROTECTED] source/torture/rpc/mgmt.c svn-v2:[EMAIL PROTECTED] === removed directory 'source/rpc_server/mgmt' === modified file '.bzrignore' --- a/.bzrignore 2007-01-16 11:28:41 +0000 +++ b/.bzrignore 2007-01-16 13:26:25 +0000 @@ -150,3 +150,8 @@ source/heimdal/lib/roken/err.h source/scripting/ejs/ejsnet/proto.h source/heimdal/lib/hx509/asn1_*.c +bin/shared +bin/shared/*.so.* +source/bin/shared +source/bin/shared/*.so* +source/st
=== modified file 'source/librpc/idl/mgmt.idl' --- a/source/librpc/idl/mgmt.idl 2007-01-16 12:52:47 +0000 +++ b/source/librpc/idl/mgmt.idl 2007-01-16 13:26:25 +0000 @@ -23,7 +23,7 @@ /***********************/ /* Function 0x00 */ WERROR mgmt_inq_if_ids ( - [out,unique] rpc_if_id_vector_t *if_id_vector + [out] rpc_if_id_vector_t **if_id_vector ); === modified file 'source/rpc_server/dcesrv_mgmt.c' --- a/source/rpc_server/dcesrv_mgmt.c 2007-01-16 12:52:47 +0000 +++ b/source/rpc_server/dcesrv_mgmt.c 2007-01-16 13:26:25 +0000 @@ -31,7 +31,19 @@ static WERROR mgmt_inq_if_ids(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct mgmt_inq_if_ids *r) { - DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); + const struct dcesrv_endpoint *ep = dce_call->conn->endpoint; + struct dcesrv_if_list *l; + struct rpc_if_id_vector_t *vector; + + vector = *r->out.if_id_vector = talloc(mem_ctx, struct rpc_if_id_vector_t); + vector->count = 0; + vector->if_id = NULL; + for (l = ep->interface_list; l; l = l->next) { + vector->count++; + vector->if_id = talloc_realloc(mem_ctx, vector->if_id, struct dcerpc_syntax_id_p, vector->count); + vector->if_id[vector->count-1].id = &l->iface.syntax_id; + } + return WERR_OK; } @@ -62,7 +74,7 @@ static WERROR mgmt_stop_server_listening(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct mgmt_stop_server_listening *r) { - DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); + return WERR_ACCESS_DENIED; } === modified file 'source/torture/rpc/mgmt.c' --- a/source/torture/rpc/mgmt.c 2007-01-16 12:52:47 +0000 +++ b/source/torture/rpc/mgmt.c 2007-01-16 13:26:25 +0000 @@ -30,12 +30,15 @@ /* ask the server what interface IDs are available on this endpoint */ -static BOOL test_inq_if_ids(struct dcerpc_pipe *p, - TALLOC_CTX *mem_ctx) +static BOOL test_inq_if_ids(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx) { NTSTATUS status; struct mgmt_inq_if_ids r; + struct rpc_if_id_vector_t *vector; int i; + + vector = talloc(mem_ctx, struct rpc_if_id_vector_t); + r.out.if_id_vector = &vector; status = dcerpc_mgmt_inq_if_ids(p, mem_ctx, &r); if (!NT_STATUS_IS_OK(status)) { @@ -48,13 +51,13 @@ return False; } - if (!r.out.if_id_vector) { + if (!vector) { printf("inq_if_ids gave NULL if_id_vector\n"); return False; } - for (i=0;i<r.out.if_id_vector->count;i++) { - struct dcerpc_syntax_id *id = r.out.if_id_vector->if_id[i].id; + for (i=0;i<vector->count;i++) { + struct dcerpc_syntax_id *id = vector->if_id[i].id; if (!id) continue; printf("\tuuid %s version 0x%08x '%s'\n",