2
* Unix SMB/CIFS implementation.
3
* server auto-generated by pidl. DO NOT MODIFY!
8
#include "librpc/gen_ndr/srv_preg.h"
10
static bool api_decode_preg_file(struct pipes_struct *p)
12
const struct ndr_interface_call *call;
13
struct ndr_pull *pull;
14
struct ndr_push *push;
15
enum ndr_err_code ndr_err;
16
struct decode_preg_file *r;
18
call = &ndr_table_preg.calls[NDR_DECODE_PREG_FILE];
20
r = talloc(talloc_tos(), struct decode_preg_file);
25
pull = ndr_pull_init_blob(&p->in_data.data, r);
31
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
33
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
35
ndr_err = call->ndr_pull(pull, NDR_IN, r);
36
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
41
if (DEBUGLEVEL >= 10) {
42
NDR_PRINT_FUNCTION_DEBUG(decode_preg_file, NDR_IN, r);
45
_decode_preg_file(p, r);
47
if (p->rng_fault_state) {
49
/* Return true here, srv_pipe_hnd.c will take care */
53
if (DEBUGLEVEL >= 10) {
54
NDR_PRINT_FUNCTION_DEBUG(decode_preg_file, NDR_OUT | NDR_SET_VALUES, r);
57
push = ndr_push_init_ctx(r);
64
* carry over the pointer count to the reply in case we are
65
* using full pointer. See NDR specification for full pointers
67
push->ptr_count = pull->ptr_count;
69
ndr_err = call->ndr_push(push, NDR_OUT, r);
70
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
75
p->out_data.rdata = ndr_push_blob(push);
76
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
85
static struct api_struct api_preg_cmds[] =
87
{"DECODE_PREG_FILE", NDR_DECODE_PREG_FILE, api_decode_preg_file},
90
void preg_get_pipe_fns(struct api_struct **fns, int *n_fns)
93
*n_fns = sizeof(api_preg_cmds) / sizeof(struct api_struct);
96
NTSTATUS rpc_preg_init(const struct rpc_srv_callbacks *rpc_srv_cb)
98
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "preg", "preg", &ndr_table_preg, api_preg_cmds, sizeof(api_preg_cmds) / sizeof(struct api_struct), rpc_srv_cb);
101
NTSTATUS rpc_preg_shutdown(void)
103
return rpc_srv_unregister(&ndr_table_preg);