2 * Unix SMB/CIFS implementation.
3 * server auto-generated by pidl. DO NOT MODIFY!
8 #include "bin/default/librpc/gen_ndr/srv_nbt.h"
10 static bool api_decode_nbt_netlogon_packet(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_nbt_netlogon_packet *r;
18 call = &ndr_table_nbt.calls[NDR_DECODE_NBT_NETLOGON_PACKET];
20 r = talloc(talloc_tos(), struct decode_nbt_netlogon_packet);
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_nbt_netlogon_packet, NDR_IN, r);
45 _decode_nbt_netlogon_packet(p, r);
49 /* Return true here, srv_pipe_hnd.c will take care */
53 if (DEBUGLEVEL >= 10) {
54 NDR_PRINT_FUNCTION_DEBUG(decode_nbt_netlogon_packet, 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_nbt_cmds[] =
87 {"DECODE_NBT_NETLOGON_PACKET", NDR_DECODE_NBT_NETLOGON_PACKET, api_decode_nbt_netlogon_packet},
90 void nbt_get_pipe_fns(struct api_struct **fns, int *n_fns)
93 *n_fns = sizeof(api_nbt_cmds) / sizeof(struct api_struct);
96 NTSTATUS rpc_nbt_init(const struct rpc_srv_callbacks *rpc_srv_cb)
98 return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "nbt", "nbt", &ndr_table_nbt, api_nbt_cmds, sizeof(api_nbt_cmds) / sizeof(struct api_struct), rpc_srv_cb);
101 NTSTATUS rpc_nbt_shutdown(void)
103 return rpc_srv_unregister(&ndr_table_nbt);