1 /* client functions auto-generated by pidl */
5 #include "lib/util/tevent_ntstatus.h"
6 #include "bin/default/librpc/gen_ndr/ndr_nbt.h"
7 #include "bin/default/librpc/gen_ndr/ndr_nbt_c.h"
9 /* nbt - client functions generated by pidl */
11 struct dcerpc_decode_netlogon_samlogon_response_packet_r_state {
12 TALLOC_CTX *out_mem_ctx;
15 static void dcerpc_decode_netlogon_samlogon_response_packet_r_done(struct tevent_req *subreq);
17 struct tevent_req *dcerpc_decode_netlogon_samlogon_response_packet_r_send(TALLOC_CTX *mem_ctx,
18 struct tevent_context *ev,
19 struct dcerpc_binding_handle *h,
20 struct decode_netlogon_samlogon_response_packet *r)
22 struct tevent_req *req;
23 struct dcerpc_decode_netlogon_samlogon_response_packet_r_state *state;
24 struct tevent_req *subreq;
26 req = tevent_req_create(mem_ctx, &state,
27 struct dcerpc_decode_netlogon_samlogon_response_packet_r_state);
32 state->out_mem_ctx = NULL;
34 subreq = dcerpc_binding_handle_call_send(state, ev, h,
36 NDR_DECODE_NETLOGON_SAMLOGON_RESPONSE_PACKET, state, r);
37 if (tevent_req_nomem(subreq, req)) {
38 return tevent_req_post(req, ev);
40 tevent_req_set_callback(subreq, dcerpc_decode_netlogon_samlogon_response_packet_r_done, req);
45 static void dcerpc_decode_netlogon_samlogon_response_packet_r_done(struct tevent_req *subreq)
47 struct tevent_req *req =
48 tevent_req_callback_data(subreq,
52 status = dcerpc_binding_handle_call_recv(subreq);
54 if (tevent_req_nterror(req, status)) {
61 NTSTATUS dcerpc_decode_netlogon_samlogon_response_packet_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
63 struct dcerpc_decode_netlogon_samlogon_response_packet_r_state *state =
65 struct dcerpc_decode_netlogon_samlogon_response_packet_r_state);
68 if (tevent_req_is_nterror(req, &status)) {
69 tevent_req_received(req);
73 talloc_steal(mem_ctx, state->out_mem_ctx);
75 tevent_req_received(req);
79 NTSTATUS dcerpc_decode_netlogon_samlogon_response_packet_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct decode_netlogon_samlogon_response_packet *r)
83 status = dcerpc_binding_handle_call(h,
85 NDR_DECODE_NETLOGON_SAMLOGON_RESPONSE_PACKET, mem_ctx, r);
90 struct dcerpc_decode_netlogon_samlogon_response_packet_state {
91 struct decode_netlogon_samlogon_response_packet orig;
92 struct decode_netlogon_samlogon_response_packet tmp;
93 TALLOC_CTX *out_mem_ctx;
96 static void dcerpc_decode_netlogon_samlogon_response_packet_done(struct tevent_req *subreq);
98 struct tevent_req *dcerpc_decode_netlogon_samlogon_response_packet_send(TALLOC_CTX *mem_ctx,
99 struct tevent_context *ev,
100 struct dcerpc_binding_handle *h,
101 struct netlogon_samlogon_response _packet /* [in] */)
103 struct tevent_req *req;
104 struct dcerpc_decode_netlogon_samlogon_response_packet_state *state;
105 struct tevent_req *subreq;
107 req = tevent_req_create(mem_ctx, &state,
108 struct dcerpc_decode_netlogon_samlogon_response_packet_state);
112 state->out_mem_ctx = NULL;
115 state->orig.in.packet = _packet;
119 /* make a temporary copy, that we pass to the dispatch function */
120 state->tmp = state->orig;
122 subreq = dcerpc_decode_netlogon_samlogon_response_packet_r_send(state, ev, h, &state->tmp);
123 if (tevent_req_nomem(subreq, req)) {
124 return tevent_req_post(req, ev);
126 tevent_req_set_callback(subreq, dcerpc_decode_netlogon_samlogon_response_packet_done, req);
130 static void dcerpc_decode_netlogon_samlogon_response_packet_done(struct tevent_req *subreq)
132 struct tevent_req *req = tevent_req_callback_data(
133 subreq, struct tevent_req);
134 struct dcerpc_decode_netlogon_samlogon_response_packet_state *state = tevent_req_data(
135 req, struct dcerpc_decode_netlogon_samlogon_response_packet_state);
139 if (state->out_mem_ctx) {
140 mem_ctx = state->out_mem_ctx;
145 status = dcerpc_decode_netlogon_samlogon_response_packet_r_recv(subreq, mem_ctx);
147 if (tevent_req_nterror(req, status)) {
151 /* Copy out parameters */
153 /* Reset temporary structure */
154 ZERO_STRUCT(state->tmp);
156 tevent_req_done(req);
159 NTSTATUS dcerpc_decode_netlogon_samlogon_response_packet_recv(struct tevent_req *req,
162 struct dcerpc_decode_netlogon_samlogon_response_packet_state *state = tevent_req_data(
163 req, struct dcerpc_decode_netlogon_samlogon_response_packet_state);
166 if (tevent_req_is_nterror(req, &status)) {
167 tevent_req_received(req);
171 /* Steal possible out parameters to the callers context */
172 talloc_steal(mem_ctx, state->out_mem_ctx);
174 tevent_req_received(req);
178 NTSTATUS dcerpc_decode_netlogon_samlogon_response_packet(struct dcerpc_binding_handle *h,
180 struct netlogon_samlogon_response _packet /* [in] */)
182 struct decode_netlogon_samlogon_response_packet r;
186 r.in.packet = _packet;
190 status = dcerpc_decode_netlogon_samlogon_response_packet_r(h, mem_ctx, &r);
191 if (!NT_STATUS_IS_OK(status)) {
195 /* Return variables */
202 struct dcerpc_decode_nbt_netlogon_packet_r_state {
203 TALLOC_CTX *out_mem_ctx;
206 static void dcerpc_decode_nbt_netlogon_packet_r_done(struct tevent_req *subreq);
208 struct tevent_req *dcerpc_decode_nbt_netlogon_packet_r_send(TALLOC_CTX *mem_ctx,
209 struct tevent_context *ev,
210 struct dcerpc_binding_handle *h,
211 struct decode_nbt_netlogon_packet *r)
213 struct tevent_req *req;
214 struct dcerpc_decode_nbt_netlogon_packet_r_state *state;
215 struct tevent_req *subreq;
217 req = tevent_req_create(mem_ctx, &state,
218 struct dcerpc_decode_nbt_netlogon_packet_r_state);
223 state->out_mem_ctx = NULL;
225 subreq = dcerpc_binding_handle_call_send(state, ev, h,
226 NULL, &ndr_table_nbt,
227 NDR_DECODE_NBT_NETLOGON_PACKET, state, r);
228 if (tevent_req_nomem(subreq, req)) {
229 return tevent_req_post(req, ev);
231 tevent_req_set_callback(subreq, dcerpc_decode_nbt_netlogon_packet_r_done, req);
236 static void dcerpc_decode_nbt_netlogon_packet_r_done(struct tevent_req *subreq)
238 struct tevent_req *req =
239 tevent_req_callback_data(subreq,
243 status = dcerpc_binding_handle_call_recv(subreq);
245 if (tevent_req_nterror(req, status)) {
249 tevent_req_done(req);
252 NTSTATUS dcerpc_decode_nbt_netlogon_packet_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
254 struct dcerpc_decode_nbt_netlogon_packet_r_state *state =
256 struct dcerpc_decode_nbt_netlogon_packet_r_state);
259 if (tevent_req_is_nterror(req, &status)) {
260 tevent_req_received(req);
264 talloc_steal(mem_ctx, state->out_mem_ctx);
266 tevent_req_received(req);
270 NTSTATUS dcerpc_decode_nbt_netlogon_packet_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct decode_nbt_netlogon_packet *r)
274 status = dcerpc_binding_handle_call(h,
275 NULL, &ndr_table_nbt,
276 NDR_DECODE_NBT_NETLOGON_PACKET, mem_ctx, r);
281 struct dcerpc_decode_nbt_netlogon_packet_state {
282 struct decode_nbt_netlogon_packet orig;
283 struct decode_nbt_netlogon_packet tmp;
284 TALLOC_CTX *out_mem_ctx;
287 static void dcerpc_decode_nbt_netlogon_packet_done(struct tevent_req *subreq);
289 struct tevent_req *dcerpc_decode_nbt_netlogon_packet_send(TALLOC_CTX *mem_ctx,
290 struct tevent_context *ev,
291 struct dcerpc_binding_handle *h,
292 struct nbt_netlogon_packet _packet /* [in] */)
294 struct tevent_req *req;
295 struct dcerpc_decode_nbt_netlogon_packet_state *state;
296 struct tevent_req *subreq;
298 req = tevent_req_create(mem_ctx, &state,
299 struct dcerpc_decode_nbt_netlogon_packet_state);
303 state->out_mem_ctx = NULL;
306 state->orig.in.packet = _packet;
310 /* make a temporary copy, that we pass to the dispatch function */
311 state->tmp = state->orig;
313 subreq = dcerpc_decode_nbt_netlogon_packet_r_send(state, ev, h, &state->tmp);
314 if (tevent_req_nomem(subreq, req)) {
315 return tevent_req_post(req, ev);
317 tevent_req_set_callback(subreq, dcerpc_decode_nbt_netlogon_packet_done, req);
321 static void dcerpc_decode_nbt_netlogon_packet_done(struct tevent_req *subreq)
323 struct tevent_req *req = tevent_req_callback_data(
324 subreq, struct tevent_req);
325 struct dcerpc_decode_nbt_netlogon_packet_state *state = tevent_req_data(
326 req, struct dcerpc_decode_nbt_netlogon_packet_state);
330 if (state->out_mem_ctx) {
331 mem_ctx = state->out_mem_ctx;
336 status = dcerpc_decode_nbt_netlogon_packet_r_recv(subreq, mem_ctx);
338 if (tevent_req_nterror(req, status)) {
342 /* Copy out parameters */
344 /* Reset temporary structure */
345 ZERO_STRUCT(state->tmp);
347 tevent_req_done(req);
350 NTSTATUS dcerpc_decode_nbt_netlogon_packet_recv(struct tevent_req *req,
353 struct dcerpc_decode_nbt_netlogon_packet_state *state = tevent_req_data(
354 req, struct dcerpc_decode_nbt_netlogon_packet_state);
357 if (tevent_req_is_nterror(req, &status)) {
358 tevent_req_received(req);
362 /* Steal possible out parameters to the callers context */
363 talloc_steal(mem_ctx, state->out_mem_ctx);
365 tevent_req_received(req);
369 NTSTATUS dcerpc_decode_nbt_netlogon_packet(struct dcerpc_binding_handle *h,
371 struct nbt_netlogon_packet _packet /* [in] */)
373 struct decode_nbt_netlogon_packet r;
377 r.in.packet = _packet;
381 status = dcerpc_decode_nbt_netlogon_packet_r(h, mem_ctx, &r);
382 if (!NT_STATUS_IS_OK(status)) {
386 /* Return variables */