3 #include "bin/default/librpc/gen_ndr/s3compat_oxidresolver.h"
5 struct _s3_compat_ResolveOxid_state {
6 struct tevent_context *ev;
7 struct dcerpc_call_handle *call;
11 static struct tevent_req *_s3_compat_ResolveOxid_send(TALLOC_CTX *mem_ctx,
12 struct tevent_context *ev,
13 struct dcerpc_call_handle *call,
14 struct ResolveOxid *r)
16 struct tevent_req *req
17 struct _s3_compat_ResolveOxid_state *state;
18 struct pipes_struct *p;
20 req = tevent_req_create(mem_ctx, &state,
21 struct _s3_compat_ResolveOxid_state);
29 p = dcerpc_call_handle_get_pipes_struct(call);
32 r->out.ppdsaOxidBindings = talloc_zero(r, struct DUALSTRINGARRAY *);
33 if (tevent_req_nomem(r->out.ppdsaOxidBindings, req)) {
34 return tevent_req_post(req, ev);
37 r->out.pipidRemUnknown = talloc_zero(r, struct GUID);
38 if (tevent_req_nomem(r->out.pipidRemUnknown, req)) {
39 return tevent_req_post(req, ev);
42 r->out.pAuthnHint = talloc_zero(r, uint32_t);
43 if (tevent_req_nomem(r->out.pAuthnHint, req)) {
44 return tevent_req_post(req, ev);
47 r->out.result = _ResolveOxid(p, r);
50 NTSTATUS status = dcerpc_fault_to_nt_status(p->fault_state);
51 tevent_req_nterror(status);
52 return tevent_req_post(req, ev);
56 return tevent_req_post(req, ev);
59 static NTSTATUS _s3_compat_ResolveOxid_recv(struct tevent_req *req)
61 return tevent_req_simple_recv_ntstatus(req);
64 struct _s3_compat_SimplePing_state {
65 struct tevent_context *ev;
66 struct dcerpc_call_handle *call;
70 static struct tevent_req *_s3_compat_SimplePing_send(TALLOC_CTX *mem_ctx,
71 struct tevent_context *ev,
72 struct dcerpc_call_handle *call,
75 struct tevent_req *req
76 struct _s3_compat_SimplePing_state *state;
77 struct pipes_struct *p;
79 req = tevent_req_create(mem_ctx, &state,
80 struct _s3_compat_SimplePing_state);
88 p = dcerpc_call_handle_get_pipes_struct(call);
90 r->out.result = _SimplePing(p, r);
93 NTSTATUS status = dcerpc_fault_to_nt_status(p->fault_state);
94 tevent_req_nterror(status);
95 return tevent_req_post(req, ev);
99 return tevent_req_post(req, ev);
102 static NTSTATUS _s3_compat_SimplePing_recv(struct tevent_req *req)
104 return tevent_req_simple_recv_ntstatus(req);
107 struct _s3_compat_ComplexPing_state {
108 struct tevent_context *ev;
109 struct dcerpc_call_handle *call;
110 struct ComplexPing *r;
113 static struct tevent_req *_s3_compat_ComplexPing_send(TALLOC_CTX *mem_ctx,
114 struct tevent_context *ev,
115 struct dcerpc_call_handle *call,
116 struct ComplexPing *r)
118 struct tevent_req *req
119 struct _s3_compat_ComplexPing_state *state;
120 struct pipes_struct *p;
122 req = tevent_req_create(mem_ctx, &state,
123 struct _s3_compat_ComplexPing_state);
131 p = dcerpc_call_handle_get_pipes_struct(call);
134 r->out.SetId = r->in.SetId;
135 r->out.PingBackoffFactor = talloc_zero(r, uint16_t);
136 if (tevent_req_nomem(r->out.PingBackoffFactor, req)) {
137 return tevent_req_post(req, ev);
140 r->out.result = _ComplexPing(p, r);
142 if (p->fault_state) {
143 NTSTATUS status = dcerpc_fault_to_nt_status(p->fault_state);
144 tevent_req_nterror(status);
145 return tevent_req_post(req, ev);
148 tevent_req_done(req);
149 return tevent_req_post(req, ev);
152 static NTSTATUS _s3_compat_ComplexPing_recv(struct tevent_req *req)
154 return tevent_req_simple_recv_ntstatus(req);
157 struct _s3_compat_ServerAlive_state {
158 struct tevent_context *ev;
159 struct dcerpc_call_handle *call;
160 struct ServerAlive *r;
163 static struct tevent_req *_s3_compat_ServerAlive_send(TALLOC_CTX *mem_ctx,
164 struct tevent_context *ev,
165 struct dcerpc_call_handle *call,
166 struct ServerAlive *r)
168 struct tevent_req *req
169 struct _s3_compat_ServerAlive_state *state;
170 struct pipes_struct *p;
172 req = tevent_req_create(mem_ctx, &state,
173 struct _s3_compat_ServerAlive_state);
181 p = dcerpc_call_handle_get_pipes_struct(call);
183 r->out.result = _ServerAlive(p, r);
185 if (p->fault_state) {
186 NTSTATUS status = dcerpc_fault_to_nt_status(p->fault_state);
187 tevent_req_nterror(status);
188 return tevent_req_post(req, ev);
191 tevent_req_done(req);
192 return tevent_req_post(req, ev);
195 static NTSTATUS _s3_compat_ServerAlive_recv(struct tevent_req *req)
197 return tevent_req_simple_recv_ntstatus(req);
200 struct _s3_compat_ResolveOxid2_state {
201 struct tevent_context *ev;
202 struct dcerpc_call_handle *call;
203 struct ResolveOxid2 *r;
206 static struct tevent_req *_s3_compat_ResolveOxid2_send(TALLOC_CTX *mem_ctx,
207 struct tevent_context *ev,
208 struct dcerpc_call_handle *call,
209 struct ResolveOxid2 *r)
211 struct tevent_req *req
212 struct _s3_compat_ResolveOxid2_state *state;
213 struct pipes_struct *p;
215 req = tevent_req_create(mem_ctx, &state,
216 struct _s3_compat_ResolveOxid2_state);
224 p = dcerpc_call_handle_get_pipes_struct(call);
227 r->out.pdsaOxidBindings = talloc_zero(r, struct DUALSTRINGARRAY *);
228 if (tevent_req_nomem(r->out.pdsaOxidBindings, req)) {
229 return tevent_req_post(req, ev);
232 r->out.ipidRemUnknown = talloc_zero(r, struct GUID);
233 if (tevent_req_nomem(r->out.ipidRemUnknown, req)) {
234 return tevent_req_post(req, ev);
237 r->out.AuthnHint = talloc_zero(r, uint32_t);
238 if (tevent_req_nomem(r->out.AuthnHint, req)) {
239 return tevent_req_post(req, ev);
242 r->out.ComVersion = talloc_zero(r, struct COMVERSION);
243 if (tevent_req_nomem(r->out.ComVersion, req)) {
244 return tevent_req_post(req, ev);
247 r->out.result = _ResolveOxid2(p, r);
249 if (p->fault_state) {
250 NTSTATUS status = dcerpc_fault_to_nt_status(p->fault_state);
251 tevent_req_nterror(status);
252 return tevent_req_post(req, ev);
255 tevent_req_done(req);
256 return tevent_req_post(req, ev);
259 static NTSTATUS _s3_compat_ResolveOxid2_recv(struct tevent_req *req)
261 return tevent_req_simple_recv_ntstatus(req);
264 struct _s3_compat_ServerAlive2_state {
265 struct tevent_context *ev;
266 struct dcerpc_call_handle *call;
267 struct ServerAlive2 *r;
270 static struct tevent_req *_s3_compat_ServerAlive2_send(TALLOC_CTX *mem_ctx,
271 struct tevent_context *ev,
272 struct dcerpc_call_handle *call,
273 struct ServerAlive2 *r)
275 struct tevent_req *req
276 struct _s3_compat_ServerAlive2_state *state;
277 struct pipes_struct *p;
279 req = tevent_req_create(mem_ctx, &state,
280 struct _s3_compat_ServerAlive2_state);
288 p = dcerpc_call_handle_get_pipes_struct(call);
291 r->out.info = talloc_zero(r, struct COMINFO);
292 if (tevent_req_nomem(r->out.info, req)) {
293 return tevent_req_post(req, ev);
296 r->out.dualstring = talloc_zero(r, struct DUALSTRINGARRAY);
297 if (tevent_req_nomem(r->out.dualstring, req)) {
298 return tevent_req_post(req, ev);
301 r->out.unknown2 = talloc_zero(r, uint8_t);
302 if (tevent_req_nomem(r->out.unknown2, req)) {
303 return tevent_req_post(req, ev);
306 r->out.unknown3 = talloc_zero(r, uint8_t);
307 if (tevent_req_nomem(r->out.unknown3, req)) {
308 return tevent_req_post(req, ev);
311 r->out.unknown4 = talloc_zero(r, uint8_t);
312 if (tevent_req_nomem(r->out.unknown4, req)) {
313 return tevent_req_post(req, ev);
316 r->out.result = _ServerAlive2(p, r);
318 if (p->fault_state) {
319 NTSTATUS status = dcerpc_fault_to_nt_status(p->fault_state);
320 tevent_req_nterror(status);
321 return tevent_req_post(req, ev);
324 tevent_req_done(req);
325 return tevent_req_post(req, ev);
328 static NTSTATUS _s3_compat_ServerAlive2_recv(struct tevent_req *req)
330 return tevent_req_simple_recv_ntstatus(req);
334 static const struct dcerpc_call_entry_point_fns struct _s3_compat_IOXIDResolver_fns[] = {
336 .send_fn = (dcerpc_call_entry_point_send_fn_t)
337 _s3_compat_ResolveOxid_send,
338 .recv_fn = (dcerpc_call_entry_point_recv_fn_t)
339 _s3_compat_ResolveOxid_recv,
342 .send_fn = (dcerpc_call_entry_point_send_fn_t)
343 _s3_compat_SimplePing_send,
344 .recv_fn = (dcerpc_call_entry_point_recv_fn_t)
345 _s3_compat_SimplePing_recv,
348 .send_fn = (dcerpc_call_entry_point_send_fn_t)
349 _s3_compat_ComplexPing_send,
350 .recv_fn = (dcerpc_call_entry_point_recv_fn_t)
351 _s3_compat_ComplexPing_recv,
354 .send_fn = (dcerpc_call_entry_point_send_fn_t)
355 _s3_compat_ServerAlive_send,
356 .recv_fn = (dcerpc_call_entry_point_recv_fn_t)
357 _s3_compat_ServerAlive_recv,
360 .send_fn = (dcerpc_call_entry_point_send_fn_t)
361 _s3_compat_ResolveOxid2_send,
362 .recv_fn = (dcerpc_call_entry_point_recv_fn_t)
363 _s3_compat_ResolveOxid2_recv,
366 .send_fn = (dcerpc_call_entry_point_send_fn_t)
367 _s3_compat_ServerAlive2_send,
368 .recv_fn = (dcerpc_call_entry_point_recv_fn_t)
369 _s3_compat_ServerAlive2_recv,
377 static const struct dcerpc_call_entry_point_vector _s3_compat_IOXIDResolver_epv[] = {
378 .name = "_s3_compat_IOXIDResolver",
379 .table = &ndr_table_IOXIDResolver,
381 .fns = _s3_compat_IOXIDResolver_fns,
384 NTSTATUS dcerpc_server_setup_s3compat_IOXIDResolver(struct dcerpc_server *server)
386 return NT_STATUS_NOT_IMPLEMENTED;