2
* Unix SMB/CIFS implementation.
3
* server auto-generated by pidl. DO NOT MODIFY!
8
#include "librpc/gen_ndr/srv_msgsvc.h"
10
static bool api_NetrMessageNameAdd(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 NetrMessageNameAdd *r;
18
call = &ndr_table_msgsvc.calls[NDR_NETRMESSAGENAMEADD];
20
r = talloc(talloc_tos(), struct NetrMessageNameAdd);
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(NetrMessageNameAdd, NDR_IN, r);
45
_NetrMessageNameAdd(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(NetrMessageNameAdd, 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);
83
static bool api_NetrMessageNameEnum(struct pipes_struct *p)
85
const struct ndr_interface_call *call;
86
struct ndr_pull *pull;
87
struct ndr_push *push;
88
enum ndr_err_code ndr_err;
89
struct NetrMessageNameEnum *r;
91
call = &ndr_table_msgsvc.calls[NDR_NETRMESSAGENAMEENUM];
93
r = talloc(talloc_tos(), struct NetrMessageNameEnum);
98
pull = ndr_pull_init_blob(&p->in_data.data, r);
104
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
106
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
108
ndr_err = call->ndr_pull(pull, NDR_IN, r);
109
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
114
if (DEBUGLEVEL >= 10) {
115
NDR_PRINT_FUNCTION_DEBUG(NetrMessageNameEnum, NDR_IN, r);
118
_NetrMessageNameEnum(p, r);
120
if (p->rng_fault_state) {
122
/* Return true here, srv_pipe_hnd.c will take care */
126
if (DEBUGLEVEL >= 10) {
127
NDR_PRINT_FUNCTION_DEBUG(NetrMessageNameEnum, NDR_OUT | NDR_SET_VALUES, r);
130
push = ndr_push_init_ctx(r);
137
* carry over the pointer count to the reply in case we are
138
* using full pointer. See NDR specification for full pointers
140
push->ptr_count = pull->ptr_count;
142
ndr_err = call->ndr_push(push, NDR_OUT, r);
143
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
148
p->out_data.rdata = ndr_push_blob(push);
149
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
156
static bool api_NetrMessageNameGetInfo(struct pipes_struct *p)
158
const struct ndr_interface_call *call;
159
struct ndr_pull *pull;
160
struct ndr_push *push;
161
enum ndr_err_code ndr_err;
162
struct NetrMessageNameGetInfo *r;
164
call = &ndr_table_msgsvc.calls[NDR_NETRMESSAGENAMEGETINFO];
166
r = talloc(talloc_tos(), struct NetrMessageNameGetInfo);
171
pull = ndr_pull_init_blob(&p->in_data.data, r);
177
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
179
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
181
ndr_err = call->ndr_pull(pull, NDR_IN, r);
182
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
187
if (DEBUGLEVEL >= 10) {
188
NDR_PRINT_FUNCTION_DEBUG(NetrMessageNameGetInfo, NDR_IN, r);
191
_NetrMessageNameGetInfo(p, r);
193
if (p->rng_fault_state) {
195
/* Return true here, srv_pipe_hnd.c will take care */
199
if (DEBUGLEVEL >= 10) {
200
NDR_PRINT_FUNCTION_DEBUG(NetrMessageNameGetInfo, NDR_OUT | NDR_SET_VALUES, r);
203
push = ndr_push_init_ctx(r);
210
* carry over the pointer count to the reply in case we are
211
* using full pointer. See NDR specification for full pointers
213
push->ptr_count = pull->ptr_count;
215
ndr_err = call->ndr_push(push, NDR_OUT, r);
216
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
221
p->out_data.rdata = ndr_push_blob(push);
222
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
229
static bool api_NetrMessageNameDel(struct pipes_struct *p)
231
const struct ndr_interface_call *call;
232
struct ndr_pull *pull;
233
struct ndr_push *push;
234
enum ndr_err_code ndr_err;
235
struct NetrMessageNameDel *r;
237
call = &ndr_table_msgsvc.calls[NDR_NETRMESSAGENAMEDEL];
239
r = talloc(talloc_tos(), struct NetrMessageNameDel);
244
pull = ndr_pull_init_blob(&p->in_data.data, r);
250
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
252
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
254
ndr_err = call->ndr_pull(pull, NDR_IN, r);
255
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
260
if (DEBUGLEVEL >= 10) {
261
NDR_PRINT_FUNCTION_DEBUG(NetrMessageNameDel, NDR_IN, r);
264
_NetrMessageNameDel(p, r);
266
if (p->rng_fault_state) {
268
/* Return true here, srv_pipe_hnd.c will take care */
272
if (DEBUGLEVEL >= 10) {
273
NDR_PRINT_FUNCTION_DEBUG(NetrMessageNameDel, NDR_OUT | NDR_SET_VALUES, r);
276
push = ndr_push_init_ctx(r);
283
* carry over the pointer count to the reply in case we are
284
* using full pointer. See NDR specification for full pointers
286
push->ptr_count = pull->ptr_count;
288
ndr_err = call->ndr_push(push, NDR_OUT, r);
289
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
294
p->out_data.rdata = ndr_push_blob(push);
295
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
304
static struct api_struct api_msgsvc_cmds[] =
306
{"NETRMESSAGENAMEADD", NDR_NETRMESSAGENAMEADD, api_NetrMessageNameAdd},
307
{"NETRMESSAGENAMEENUM", NDR_NETRMESSAGENAMEENUM, api_NetrMessageNameEnum},
308
{"NETRMESSAGENAMEGETINFO", NDR_NETRMESSAGENAMEGETINFO, api_NetrMessageNameGetInfo},
309
{"NETRMESSAGENAMEDEL", NDR_NETRMESSAGENAMEDEL, api_NetrMessageNameDel},
312
void msgsvc_get_pipe_fns(struct api_struct **fns, int *n_fns)
314
*fns = api_msgsvc_cmds;
315
*n_fns = sizeof(api_msgsvc_cmds) / sizeof(struct api_struct);
318
NTSTATUS rpc_msgsvc_init(const struct rpc_srv_callbacks *rpc_srv_cb)
320
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "msgsvc", "msgsvc", &ndr_table_msgsvc, api_msgsvc_cmds, sizeof(api_msgsvc_cmds) / sizeof(struct api_struct), rpc_srv_cb);
323
NTSTATUS rpc_msgsvc_shutdown(void)
325
return rpc_srv_unregister(&ndr_table_msgsvc);
327
static bool api_NetrSendMessage(struct pipes_struct *p)
329
const struct ndr_interface_call *call;
330
struct ndr_pull *pull;
331
struct ndr_push *push;
332
enum ndr_err_code ndr_err;
333
struct NetrSendMessage *r;
335
call = &ndr_table_msgsvcsend.calls[NDR_NETRSENDMESSAGE];
337
r = talloc(talloc_tos(), struct NetrSendMessage);
342
pull = ndr_pull_init_blob(&p->in_data.data, r);
348
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
350
pull->flags |= LIBNDR_FLAG_BIGENDIAN;
352
ndr_err = call->ndr_pull(pull, NDR_IN, r);
353
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
358
if (DEBUGLEVEL >= 10) {
359
NDR_PRINT_FUNCTION_DEBUG(NetrSendMessage, NDR_IN, r);
362
_NetrSendMessage(p, r);
364
if (p->rng_fault_state) {
366
/* Return true here, srv_pipe_hnd.c will take care */
370
if (DEBUGLEVEL >= 10) {
371
NDR_PRINT_FUNCTION_DEBUG(NetrSendMessage, NDR_OUT | NDR_SET_VALUES, r);
374
push = ndr_push_init_ctx(r);
381
* carry over the pointer count to the reply in case we are
382
* using full pointer. See NDR specification for full pointers
384
push->ptr_count = pull->ptr_count;
386
ndr_err = call->ndr_push(push, NDR_OUT, r);
387
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
392
p->out_data.rdata = ndr_push_blob(push);
393
talloc_steal(p->mem_ctx, p->out_data.rdata.data);
402
static struct api_struct api_msgsvcsend_cmds[] =
404
{"NETRSENDMESSAGE", NDR_NETRSENDMESSAGE, api_NetrSendMessage},
407
void msgsvcsend_get_pipe_fns(struct api_struct **fns, int *n_fns)
409
*fns = api_msgsvcsend_cmds;
410
*n_fns = sizeof(api_msgsvcsend_cmds) / sizeof(struct api_struct);
413
NTSTATUS rpc_msgsvcsend_init(const struct rpc_srv_callbacks *rpc_srv_cb)
415
return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "msgsvcsend", "msgsvcsend", &ndr_table_msgsvcsend, api_msgsvcsend_cmds, sizeof(api_msgsvcsend_cmds) / sizeof(struct api_struct), rpc_srv_cb);
418
NTSTATUS rpc_msgsvcsend_shutdown(void)
420
return rpc_srv_unregister(&ndr_table_msgsvcsend);