2 /* Python wrapper functions auto-generated by pidl */
6 #include "librpc/rpc/pyrpc.h"
7 #include "librpc/rpc/pyrpc_util.h"
8 #include "bin/default/librpc/gen_ndr/ndr_dfsblobs.h"
9 #include "bin/default/librpc/gen_ndr/ndr_dfsblobs_c.h"
11 #include "librpc/gen_ndr/misc.h"
12 staticforward PyTypeObject dfs_referral_v1_Type;
13 staticforward PyTypeObject dfs_referral_v2_Type;
14 staticforward PyTypeObject dfs_normal_referral_Type;
15 staticforward PyTypeObject dfs_domain_referral_Type;
16 staticforward PyTypeObject dfs_referral_v3_Type;
17 staticforward PyTypeObject dfs_referral_type_Type;
18 staticforward PyTypeObject dfs_referral_resp_Type;
19 staticforward PyTypeObject dfs_GetDFSReferral_in_Type;
20 staticforward PyTypeObject dfsblobs_InterfaceType;
22 void initdfsblobs(void);static PyTypeObject *Object_Type;
23 static PyTypeObject *ClientConnection_Type;
25 static PyObject *py_dfs_referral_v1_get_size(PyObject *obj, void *closure)
27 struct dfs_referral_v1 *object = (struct dfs_referral_v1 *)pytalloc_get_ptr(obj);
29 py_size = PyInt_FromLong(object->size);
33 static int py_dfs_referral_v1_set_size(PyObject *py_obj, PyObject *value, void *closure)
35 struct dfs_referral_v1 *object = (struct dfs_referral_v1 *)pytalloc_get_ptr(py_obj);
36 PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
37 object->size = PyInt_AsLong(value);
41 static PyObject *py_dfs_referral_v1_get_server_type(PyObject *obj, void *closure)
43 struct dfs_referral_v1 *object = (struct dfs_referral_v1 *)pytalloc_get_ptr(obj);
44 PyObject *py_server_type;
45 py_server_type = PyInt_FromLong(object->server_type);
46 return py_server_type;
49 static int py_dfs_referral_v1_set_server_type(PyObject *py_obj, PyObject *value, void *closure)
51 struct dfs_referral_v1 *object = (struct dfs_referral_v1 *)pytalloc_get_ptr(py_obj);
52 PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
53 object->server_type = PyInt_AsLong(value);
57 static PyObject *py_dfs_referral_v1_get_entry_flags(PyObject *obj, void *closure)
59 struct dfs_referral_v1 *object = (struct dfs_referral_v1 *)pytalloc_get_ptr(obj);
60 PyObject *py_entry_flags;
61 py_entry_flags = PyInt_FromLong(object->entry_flags);
62 return py_entry_flags;
65 static int py_dfs_referral_v1_set_entry_flags(PyObject *py_obj, PyObject *value, void *closure)
67 struct dfs_referral_v1 *object = (struct dfs_referral_v1 *)pytalloc_get_ptr(py_obj);
68 PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
69 object->entry_flags = PyInt_AsLong(value);
73 static PyObject *py_dfs_referral_v1_get_share_name(PyObject *obj, void *closure)
75 struct dfs_referral_v1 *object = (struct dfs_referral_v1 *)pytalloc_get_ptr(obj);
76 PyObject *py_share_name;
77 if (object->share_name == NULL) {
78 py_share_name = Py_None;
79 Py_INCREF(py_share_name);
81 py_share_name = PyString_FromStringOrNULL(object->share_name);
86 static int py_dfs_referral_v1_set_share_name(PyObject *py_obj, PyObject *value, void *closure)
88 struct dfs_referral_v1 *object = (struct dfs_referral_v1 *)pytalloc_get_ptr(py_obj);
89 if (value == Py_None) {
90 object->share_name = NULL;
92 object->share_name = NULL;
93 object->share_name = talloc_strdup(pytalloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
98 static PyGetSetDef py_dfs_referral_v1_getsetters[] = {
99 { discard_const_p(char, "size"), py_dfs_referral_v1_get_size, py_dfs_referral_v1_set_size },
100 { discard_const_p(char, "server_type"), py_dfs_referral_v1_get_server_type, py_dfs_referral_v1_set_server_type },
101 { discard_const_p(char, "entry_flags"), py_dfs_referral_v1_get_entry_flags, py_dfs_referral_v1_set_entry_flags },
102 { discard_const_p(char, "share_name"), py_dfs_referral_v1_get_share_name, py_dfs_referral_v1_set_share_name },
106 static PyObject *py_dfs_referral_v1_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
108 return pytalloc_new(struct dfs_referral_v1, type);
112 static PyTypeObject dfs_referral_v1_Type = {
113 PyObject_HEAD_INIT(NULL) 0,
114 .tp_name = "dfsblobs.dfs_referral_v1",
115 .tp_getset = py_dfs_referral_v1_getsetters,
117 .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
118 .tp_basicsize = sizeof(pytalloc_Object),
119 .tp_new = py_dfs_referral_v1_new,
123 static PyObject *py_dfs_referral_v2_get_size(PyObject *obj, void *closure)
125 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(obj);
127 py_size = PyInt_FromLong(object->size);
131 static int py_dfs_referral_v2_set_size(PyObject *py_obj, PyObject *value, void *closure)
133 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(py_obj);
134 PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
135 object->size = PyInt_AsLong(value);
139 static PyObject *py_dfs_referral_v2_get_server_type(PyObject *obj, void *closure)
141 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(obj);
142 PyObject *py_server_type;
143 py_server_type = PyInt_FromLong(object->server_type);
144 return py_server_type;
147 static int py_dfs_referral_v2_set_server_type(PyObject *py_obj, PyObject *value, void *closure)
149 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(py_obj);
150 if (PyLong_Check(value)) {
151 object->server_type = PyLong_AsLongLong(value);
152 } else if (PyInt_Check(value)) {
153 object->server_type = PyInt_AsLong(value);
155 PyErr_Format(PyExc_TypeError, "Expected type %s or %s",\
156 PyInt_Type.tp_name, PyLong_Type.tp_name);
162 static PyObject *py_dfs_referral_v2_get_entry_flags(PyObject *obj, void *closure)
164 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(obj);
165 PyObject *py_entry_flags;
166 py_entry_flags = PyInt_FromLong(object->entry_flags);
167 return py_entry_flags;
170 static int py_dfs_referral_v2_set_entry_flags(PyObject *py_obj, PyObject *value, void *closure)
172 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(py_obj);
173 if (PyLong_Check(value)) {
174 object->entry_flags = PyLong_AsLongLong(value);
175 } else if (PyInt_Check(value)) {
176 object->entry_flags = PyInt_AsLong(value);
178 PyErr_Format(PyExc_TypeError, "Expected type %s or %s",\
179 PyInt_Type.tp_name, PyLong_Type.tp_name);
185 static PyObject *py_dfs_referral_v2_get_proximity(PyObject *obj, void *closure)
187 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(obj);
188 PyObject *py_proximity;
189 py_proximity = PyInt_FromLong(object->proximity);
193 static int py_dfs_referral_v2_set_proximity(PyObject *py_obj, PyObject *value, void *closure)
195 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(py_obj);
196 PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
197 object->proximity = PyInt_AsLong(value);
201 static PyObject *py_dfs_referral_v2_get_ttl(PyObject *obj, void *closure)
203 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(obj);
205 py_ttl = PyInt_FromLong(object->ttl);
209 static int py_dfs_referral_v2_set_ttl(PyObject *py_obj, PyObject *value, void *closure)
211 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(py_obj);
212 PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
213 object->ttl = PyInt_AsLong(value);
217 static PyObject *py_dfs_referral_v2_get_DFS_path(PyObject *obj, void *closure)
219 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(obj);
220 PyObject *py_DFS_path;
221 if (object->DFS_path == NULL) {
222 py_DFS_path = Py_None;
223 Py_INCREF(py_DFS_path);
225 py_DFS_path = PyString_FromStringOrNULL(object->DFS_path);
230 static int py_dfs_referral_v2_set_DFS_path(PyObject *py_obj, PyObject *value, void *closure)
232 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(py_obj);
233 if (value == Py_None) {
234 object->DFS_path = NULL;
236 object->DFS_path = NULL;
237 object->DFS_path = talloc_strdup(pytalloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
242 static PyObject *py_dfs_referral_v2_get_DFS_alt_path(PyObject *obj, void *closure)
244 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(obj);
245 PyObject *py_DFS_alt_path;
246 if (object->DFS_alt_path == NULL) {
247 py_DFS_alt_path = Py_None;
248 Py_INCREF(py_DFS_alt_path);
250 py_DFS_alt_path = PyString_FromStringOrNULL(object->DFS_alt_path);
252 return py_DFS_alt_path;
255 static int py_dfs_referral_v2_set_DFS_alt_path(PyObject *py_obj, PyObject *value, void *closure)
257 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(py_obj);
258 if (value == Py_None) {
259 object->DFS_alt_path = NULL;
261 object->DFS_alt_path = NULL;
262 object->DFS_alt_path = talloc_strdup(pytalloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
267 static PyObject *py_dfs_referral_v2_get_netw_address(PyObject *obj, void *closure)
269 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(obj);
270 PyObject *py_netw_address;
271 if (object->netw_address == NULL) {
272 py_netw_address = Py_None;
273 Py_INCREF(py_netw_address);
275 py_netw_address = PyString_FromStringOrNULL(object->netw_address);
277 return py_netw_address;
280 static int py_dfs_referral_v2_set_netw_address(PyObject *py_obj, PyObject *value, void *closure)
282 struct dfs_referral_v2 *object = (struct dfs_referral_v2 *)pytalloc_get_ptr(py_obj);
283 if (value == Py_None) {
284 object->netw_address = NULL;
286 object->netw_address = NULL;
287 object->netw_address = talloc_strdup(pytalloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
292 static PyGetSetDef py_dfs_referral_v2_getsetters[] = {
293 { discard_const_p(char, "size"), py_dfs_referral_v2_get_size, py_dfs_referral_v2_set_size },
294 { discard_const_p(char, "server_type"), py_dfs_referral_v2_get_server_type, py_dfs_referral_v2_set_server_type },
295 { discard_const_p(char, "entry_flags"), py_dfs_referral_v2_get_entry_flags, py_dfs_referral_v2_set_entry_flags },
296 { discard_const_p(char, "proximity"), py_dfs_referral_v2_get_proximity, py_dfs_referral_v2_set_proximity },
297 { discard_const_p(char, "ttl"), py_dfs_referral_v2_get_ttl, py_dfs_referral_v2_set_ttl },
298 { discard_const_p(char, "DFS_path"), py_dfs_referral_v2_get_DFS_path, py_dfs_referral_v2_set_DFS_path },
299 { discard_const_p(char, "DFS_alt_path"), py_dfs_referral_v2_get_DFS_alt_path, py_dfs_referral_v2_set_DFS_alt_path },
300 { discard_const_p(char, "netw_address"), py_dfs_referral_v2_get_netw_address, py_dfs_referral_v2_set_netw_address },
304 static PyObject *py_dfs_referral_v2_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
306 return pytalloc_new(struct dfs_referral_v2, type);
310 static PyTypeObject dfs_referral_v2_Type = {
311 PyObject_HEAD_INIT(NULL) 0,
312 .tp_name = "dfsblobs.dfs_referral_v2",
313 .tp_getset = py_dfs_referral_v2_getsetters,
315 .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
316 .tp_basicsize = sizeof(pytalloc_Object),
317 .tp_new = py_dfs_referral_v2_new,
321 static PyObject *py_dfs_normal_referral_get_DFS_path(PyObject *obj, void *closure)
323 struct dfs_normal_referral *object = (struct dfs_normal_referral *)pytalloc_get_ptr(obj);
324 PyObject *py_DFS_path;
325 if (object->DFS_path == NULL) {
326 py_DFS_path = Py_None;
327 Py_INCREF(py_DFS_path);
329 py_DFS_path = PyString_FromStringOrNULL(object->DFS_path);
334 static int py_dfs_normal_referral_set_DFS_path(PyObject *py_obj, PyObject *value, void *closure)
336 struct dfs_normal_referral *object = (struct dfs_normal_referral *)pytalloc_get_ptr(py_obj);
337 if (value == Py_None) {
338 object->DFS_path = NULL;
340 object->DFS_path = NULL;
341 object->DFS_path = talloc_strdup(pytalloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
346 static PyObject *py_dfs_normal_referral_get_DFS_alt_path(PyObject *obj, void *closure)
348 struct dfs_normal_referral *object = (struct dfs_normal_referral *)pytalloc_get_ptr(obj);
349 PyObject *py_DFS_alt_path;
350 if (object->DFS_alt_path == NULL) {
351 py_DFS_alt_path = Py_None;
352 Py_INCREF(py_DFS_alt_path);
354 py_DFS_alt_path = PyString_FromStringOrNULL(object->DFS_alt_path);
356 return py_DFS_alt_path;
359 static int py_dfs_normal_referral_set_DFS_alt_path(PyObject *py_obj, PyObject *value, void *closure)
361 struct dfs_normal_referral *object = (struct dfs_normal_referral *)pytalloc_get_ptr(py_obj);
362 if (value == Py_None) {
363 object->DFS_alt_path = NULL;
365 object->DFS_alt_path = NULL;
366 object->DFS_alt_path = talloc_strdup(pytalloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
371 static PyObject *py_dfs_normal_referral_get_netw_address(PyObject *obj, void *closure)
373 struct dfs_normal_referral *object = (struct dfs_normal_referral *)pytalloc_get_ptr(obj);
374 PyObject *py_netw_address;
375 if (object->netw_address == NULL) {
376 py_netw_address = Py_None;
377 Py_INCREF(py_netw_address);
379 py_netw_address = PyString_FromStringOrNULL(object->netw_address);
381 return py_netw_address;
384 static int py_dfs_normal_referral_set_netw_address(PyObject *py_obj, PyObject *value, void *closure)
386 struct dfs_normal_referral *object = (struct dfs_normal_referral *)pytalloc_get_ptr(py_obj);
387 if (value == Py_None) {
388 object->netw_address = NULL;
390 object->netw_address = NULL;
391 object->netw_address = talloc_strdup(pytalloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
396 static PyGetSetDef py_dfs_normal_referral_getsetters[] = {
397 { discard_const_p(char, "DFS_path"), py_dfs_normal_referral_get_DFS_path, py_dfs_normal_referral_set_DFS_path },
398 { discard_const_p(char, "DFS_alt_path"), py_dfs_normal_referral_get_DFS_alt_path, py_dfs_normal_referral_set_DFS_alt_path },
399 { discard_const_p(char, "netw_address"), py_dfs_normal_referral_get_netw_address, py_dfs_normal_referral_set_netw_address },
403 static PyObject *py_dfs_normal_referral_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
405 return pytalloc_new(struct dfs_normal_referral, type);
409 static PyTypeObject dfs_normal_referral_Type = {
410 PyObject_HEAD_INIT(NULL) 0,
411 .tp_name = "dfsblobs.dfs_normal_referral",
412 .tp_getset = py_dfs_normal_referral_getsetters,
414 .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
415 .tp_basicsize = sizeof(pytalloc_Object),
416 .tp_new = py_dfs_normal_referral_new,
420 static PyObject *py_dfs_domain_referral_get_special_name(PyObject *obj, void *closure)
422 struct dfs_domain_referral *object = (struct dfs_domain_referral *)pytalloc_get_ptr(obj);
423 PyObject *py_special_name;
424 if (object->special_name == NULL) {
425 py_special_name = Py_None;
426 Py_INCREF(py_special_name);
428 py_special_name = PyString_FromStringOrNULL(object->special_name);
430 return py_special_name;
433 static int py_dfs_domain_referral_set_special_name(PyObject *py_obj, PyObject *value, void *closure)
435 struct dfs_domain_referral *object = (struct dfs_domain_referral *)pytalloc_get_ptr(py_obj);
436 if (value == Py_None) {
437 object->special_name = NULL;
439 object->special_name = NULL;
440 object->special_name = talloc_strdup(pytalloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
445 static PyObject *py_dfs_domain_referral_get_nb_expanded_names(PyObject *obj, void *closure)
447 struct dfs_domain_referral *object = (struct dfs_domain_referral *)pytalloc_get_ptr(obj);
448 PyObject *py_nb_expanded_names;
449 py_nb_expanded_names = PyInt_FromLong(object->nb_expanded_names);
450 return py_nb_expanded_names;
453 static int py_dfs_domain_referral_set_nb_expanded_names(PyObject *py_obj, PyObject *value, void *closure)
455 struct dfs_domain_referral *object = (struct dfs_domain_referral *)pytalloc_get_ptr(py_obj);
456 PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
457 object->nb_expanded_names = PyInt_AsLong(value);
461 static PyObject *py_dfs_domain_referral_get_expanded_names(PyObject *obj, void *closure)
463 struct dfs_domain_referral *object = (struct dfs_domain_referral *)pytalloc_get_ptr(obj);
464 PyObject *py_expanded_names;
465 if (object->expanded_names == NULL) {
466 py_expanded_names = Py_None;
467 Py_INCREF(py_expanded_names);
469 py_expanded_names = pytalloc_CObject_FromTallocPtr(object->expanded_names);
471 return py_expanded_names;
474 static int py_dfs_domain_referral_set_expanded_names(PyObject *py_obj, PyObject *value, void *closure)
476 struct dfs_domain_referral *object = (struct dfs_domain_referral *)pytalloc_get_ptr(py_obj);
477 talloc_unlink(pytalloc_get_mem_ctx(py_obj), object->expanded_names);
478 if (value == Py_None) {
479 object->expanded_names = NULL;
481 object->expanded_names = NULL;
482 object->expanded_names = PyCObject_AsVoidPtr(value);
487 static PyGetSetDef py_dfs_domain_referral_getsetters[] = {
488 { discard_const_p(char, "special_name"), py_dfs_domain_referral_get_special_name, py_dfs_domain_referral_set_special_name },
489 { discard_const_p(char, "nb_expanded_names"), py_dfs_domain_referral_get_nb_expanded_names, py_dfs_domain_referral_set_nb_expanded_names },
490 { discard_const_p(char, "expanded_names"), py_dfs_domain_referral_get_expanded_names, py_dfs_domain_referral_set_expanded_names },
494 static PyObject *py_dfs_domain_referral_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
496 return pytalloc_new(struct dfs_domain_referral, type);
500 static PyTypeObject dfs_domain_referral_Type = {
501 PyObject_HEAD_INIT(NULL) 0,
502 .tp_name = "dfsblobs.dfs_domain_referral",
503 .tp_getset = py_dfs_domain_referral_getsetters,
505 .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
506 .tp_basicsize = sizeof(pytalloc_Object),
507 .tp_new = py_dfs_domain_referral_new,
510 PyObject *py_import_dfs_referral(TALLOC_CTX *mem_ctx, int level, union dfs_referral *in)
516 ret = pytalloc_reference_ex(&dfs_normal_referral_Type, mem_ctx, &in->r1);
520 ret = pytalloc_reference_ex(&dfs_domain_referral_Type, mem_ctx, &in->r2);
529 PyErr_SetString(PyExc_TypeError, "unknown union level");
533 union dfs_referral *py_export_dfs_referral(TALLOC_CTX *mem_ctx, int level, PyObject *in)
535 union dfs_referral *ret = talloc_zero(mem_ctx, union dfs_referral);
538 PY_CHECK_TYPE(&dfs_normal_referral_Type, in, talloc_free(ret); return NULL;);
539 if (talloc_reference(mem_ctx, pytalloc_get_mem_ctx(in)) == NULL) {
541 talloc_free(ret); return NULL;
543 ret->r1 = *(struct dfs_normal_referral *)pytalloc_get_ptr(in);
547 PY_CHECK_TYPE(&dfs_domain_referral_Type, in, talloc_free(ret); return NULL;);
548 if (talloc_reference(mem_ctx, pytalloc_get_mem_ctx(in)) == NULL) {
550 talloc_free(ret); return NULL;
552 ret->r2 = *(struct dfs_domain_referral *)pytalloc_get_ptr(in);
563 PyObject *py_import_dfs_padding(TALLOC_CTX *mem_ctx, int level, union dfs_padding *in)
569 ret = PyList_New(16);
575 for (value_cntr_0 = 0; value_cntr_0 < 16; value_cntr_0++) {
576 PyObject *py_value_0;
577 py_value_0 = PyInt_FromLong(in->value[value_cntr_0]);
578 PyList_SetItem(ret, value_cntr_0, py_value_0);
589 PyErr_SetString(PyExc_TypeError, "unknown union level");
593 union dfs_padding *py_export_dfs_padding(TALLOC_CTX *mem_ctx, int level, PyObject *in)
595 union dfs_padding *ret = talloc_zero(mem_ctx, union dfs_padding);
598 PY_CHECK_TYPE(&PyList_Type, in, talloc_free(ret); return NULL;);
601 for (value_cntr_0 = 0; value_cntr_0 < PyList_GET_SIZE(in); value_cntr_0++) {
602 PY_CHECK_TYPE(&PyInt_Type, PyList_GET_ITEM(in, value_cntr_0), talloc_free(ret); return NULL;);
603 ret->value[value_cntr_0] = PyInt_AsLong(PyList_GET_ITEM(in, value_cntr_0));
617 static PyObject *py_dfs_referral_v3_get_size(PyObject *obj, void *closure)
619 struct dfs_referral_v3 *object = (struct dfs_referral_v3 *)pytalloc_get_ptr(obj);
621 py_size = PyInt_FromLong(object->size);
625 static int py_dfs_referral_v3_set_size(PyObject *py_obj, PyObject *value, void *closure)
627 struct dfs_referral_v3 *object = (struct dfs_referral_v3 *)pytalloc_get_ptr(py_obj);
628 PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
629 object->size = PyInt_AsLong(value);
633 static PyObject *py_dfs_referral_v3_get_server_type(PyObject *obj, void *closure)
635 struct dfs_referral_v3 *object = (struct dfs_referral_v3 *)pytalloc_get_ptr(obj);
636 PyObject *py_server_type;
637 py_server_type = PyInt_FromLong(object->server_type);
638 return py_server_type;
641 static int py_dfs_referral_v3_set_server_type(PyObject *py_obj, PyObject *value, void *closure)
643 struct dfs_referral_v3 *object = (struct dfs_referral_v3 *)pytalloc_get_ptr(py_obj);
644 if (PyLong_Check(value)) {
645 object->server_type = PyLong_AsLongLong(value);
646 } else if (PyInt_Check(value)) {
647 object->server_type = PyInt_AsLong(value);
649 PyErr_Format(PyExc_TypeError, "Expected type %s or %s",\
650 PyInt_Type.tp_name, PyLong_Type.tp_name);
656 static PyObject *py_dfs_referral_v3_get_entry_flags(PyObject *obj, void *closure)
658 struct dfs_referral_v3 *object = (struct dfs_referral_v3 *)pytalloc_get_ptr(obj);
659 PyObject *py_entry_flags;
660 py_entry_flags = PyInt_FromLong(object->entry_flags);
661 return py_entry_flags;
664 static int py_dfs_referral_v3_set_entry_flags(PyObject *py_obj, PyObject *value, void *closure)
666 struct dfs_referral_v3 *object = (struct dfs_referral_v3 *)pytalloc_get_ptr(py_obj);
667 if (PyLong_Check(value)) {
668 object->entry_flags = PyLong_AsLongLong(value);
669 } else if (PyInt_Check(value)) {
670 object->entry_flags = PyInt_AsLong(value);
672 PyErr_Format(PyExc_TypeError, "Expected type %s or %s",\
673 PyInt_Type.tp_name, PyLong_Type.tp_name);
679 static PyObject *py_dfs_referral_v3_get_ttl(PyObject *obj, void *closure)
681 struct dfs_referral_v3 *object = (struct dfs_referral_v3 *)pytalloc_get_ptr(obj);
683 py_ttl = PyInt_FromLong(object->ttl);
687 static int py_dfs_referral_v3_set_ttl(PyObject *py_obj, PyObject *value, void *closure)
689 struct dfs_referral_v3 *object = (struct dfs_referral_v3 *)pytalloc_get_ptr(py_obj);
690 PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
691 object->ttl = PyInt_AsLong(value);
695 static PyObject *py_dfs_referral_v3_get_referrals(PyObject *obj, void *closure)
697 struct dfs_referral_v3 *object = (struct dfs_referral_v3 *)pytalloc_get_ptr(obj);
698 PyObject *py_referrals;
699 py_referrals = py_import_dfs_referral(pytalloc_get_mem_ctx(obj), object->entry_flags & DFS_FLAG_REFERRAL_DOMAIN_RESP, &object->referrals);
700 if (py_referrals == NULL) {
706 static int py_dfs_referral_v3_set_referrals(PyObject *py_obj, PyObject *value, void *closure)
708 struct dfs_referral_v3 *object = (struct dfs_referral_v3 *)pytalloc_get_ptr(py_obj);
710 union dfs_referral *referrals_switch_0;
711 referrals_switch_0 = py_export_dfs_referral(pytalloc_get_mem_ctx(py_obj), object->entry_flags & DFS_FLAG_REFERRAL_DOMAIN_RESP, value);
712 if (referrals_switch_0 == NULL) {
715 object->referrals = *referrals_switch_0;
720 static PyObject *py_dfs_referral_v3_get_service_site_guid(PyObject *obj, void *closure)
722 struct dfs_referral_v3 *object = (struct dfs_referral_v3 *)pytalloc_get_ptr(obj);
723 PyObject *py_service_site_guid;
724 py_service_site_guid = py_import_dfs_padding(pytalloc_get_mem_ctx(obj), object->size - 18, &object->service_site_guid);
725 if (py_service_site_guid == NULL) {
728 return py_service_site_guid;
731 static int py_dfs_referral_v3_set_service_site_guid(PyObject *py_obj, PyObject *value, void *closure)
733 struct dfs_referral_v3 *object = (struct dfs_referral_v3 *)pytalloc_get_ptr(py_obj);
735 union dfs_padding *service_site_guid_switch_0;
736 service_site_guid_switch_0 = py_export_dfs_padding(pytalloc_get_mem_ctx(py_obj), object->size - 18, value);
737 if (service_site_guid_switch_0 == NULL) {
740 object->service_site_guid = *service_site_guid_switch_0;
745 static PyGetSetDef py_dfs_referral_v3_getsetters[] = {
746 { discard_const_p(char, "size"), py_dfs_referral_v3_get_size, py_dfs_referral_v3_set_size },
747 { discard_const_p(char, "server_type"), py_dfs_referral_v3_get_server_type, py_dfs_referral_v3_set_server_type },
748 { discard_const_p(char, "entry_flags"), py_dfs_referral_v3_get_entry_flags, py_dfs_referral_v3_set_entry_flags },
749 { discard_const_p(char, "ttl"), py_dfs_referral_v3_get_ttl, py_dfs_referral_v3_set_ttl },
750 { discard_const_p(char, "referrals"), py_dfs_referral_v3_get_referrals, py_dfs_referral_v3_set_referrals },
751 { discard_const_p(char, "service_site_guid"), py_dfs_referral_v3_get_service_site_guid, py_dfs_referral_v3_set_service_site_guid },
755 static PyObject *py_dfs_referral_v3_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
757 return pytalloc_new(struct dfs_referral_v3, type);
761 static PyTypeObject dfs_referral_v3_Type = {
762 PyObject_HEAD_INIT(NULL) 0,
763 .tp_name = "dfsblobs.dfs_referral_v3",
764 .tp_getset = py_dfs_referral_v3_getsetters,
766 .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
767 .tp_basicsize = sizeof(pytalloc_Object),
768 .tp_new = py_dfs_referral_v3_new,
771 PyObject *py_import_dfs_referral_version(TALLOC_CTX *mem_ctx, int level, union dfs_referral_version *in)
777 ret = pytalloc_reference_ex(&dfs_referral_v1_Type, mem_ctx, &in->v1);
781 ret = pytalloc_reference_ex(&dfs_referral_v2_Type, mem_ctx, &in->v2);
785 ret = pytalloc_reference_ex(&dfs_referral_v3_Type, mem_ctx, &in->v3);
789 ret = pytalloc_reference_ex(&dfs_referral_v3_Type, mem_ctx, &in->v4);
798 PyErr_SetString(PyExc_TypeError, "unknown union level");
802 union dfs_referral_version *py_export_dfs_referral_version(TALLOC_CTX *mem_ctx, int level, PyObject *in)
804 union dfs_referral_version *ret = talloc_zero(mem_ctx, union dfs_referral_version);
807 PY_CHECK_TYPE(&dfs_referral_v1_Type, in, talloc_free(ret); return NULL;);
808 if (talloc_reference(mem_ctx, pytalloc_get_mem_ctx(in)) == NULL) {
810 talloc_free(ret); return NULL;
812 ret->v1 = *(struct dfs_referral_v1 *)pytalloc_get_ptr(in);
816 PY_CHECK_TYPE(&dfs_referral_v2_Type, in, talloc_free(ret); return NULL;);
817 if (talloc_reference(mem_ctx, pytalloc_get_mem_ctx(in)) == NULL) {
819 talloc_free(ret); return NULL;
821 ret->v2 = *(struct dfs_referral_v2 *)pytalloc_get_ptr(in);
825 PY_CHECK_TYPE(&dfs_referral_v3_Type, in, talloc_free(ret); return NULL;);
826 if (talloc_reference(mem_ctx, pytalloc_get_mem_ctx(in)) == NULL) {
828 talloc_free(ret); return NULL;
830 ret->v3 = *(struct dfs_referral_v3 *)pytalloc_get_ptr(in);
834 PY_CHECK_TYPE(&dfs_referral_v3_Type, in, talloc_free(ret); return NULL;);
835 if (talloc_reference(mem_ctx, pytalloc_get_mem_ctx(in)) == NULL) {
837 talloc_free(ret); return NULL;
839 ret->v4 = *(struct dfs_referral_v3 *)pytalloc_get_ptr(in);
851 static PyObject *py_dfs_referral_type_get_version(PyObject *obj, void *closure)
853 struct dfs_referral_type *object = (struct dfs_referral_type *)pytalloc_get_ptr(obj);
854 PyObject *py_version;
855 py_version = PyInt_FromLong(object->version);
859 static int py_dfs_referral_type_set_version(PyObject *py_obj, PyObject *value, void *closure)
861 struct dfs_referral_type *object = (struct dfs_referral_type *)pytalloc_get_ptr(py_obj);
862 PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
863 object->version = PyInt_AsLong(value);
867 static PyObject *py_dfs_referral_type_get_referral(PyObject *obj, void *closure)
869 struct dfs_referral_type *object = (struct dfs_referral_type *)pytalloc_get_ptr(obj);
870 PyObject *py_referral;
871 py_referral = py_import_dfs_referral_version(pytalloc_get_mem_ctx(obj), object->version, &object->referral);
872 if (py_referral == NULL) {
878 static int py_dfs_referral_type_set_referral(PyObject *py_obj, PyObject *value, void *closure)
880 struct dfs_referral_type *object = (struct dfs_referral_type *)pytalloc_get_ptr(py_obj);
882 union dfs_referral_version *referral_switch_0;
883 referral_switch_0 = py_export_dfs_referral_version(pytalloc_get_mem_ctx(py_obj), object->version, value);
884 if (referral_switch_0 == NULL) {
887 object->referral = *referral_switch_0;
892 static PyGetSetDef py_dfs_referral_type_getsetters[] = {
893 { discard_const_p(char, "version"), py_dfs_referral_type_get_version, py_dfs_referral_type_set_version },
894 { discard_const_p(char, "referral"), py_dfs_referral_type_get_referral, py_dfs_referral_type_set_referral },
898 static PyObject *py_dfs_referral_type_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
900 return pytalloc_new(struct dfs_referral_type, type);
904 static PyTypeObject dfs_referral_type_Type = {
905 PyObject_HEAD_INIT(NULL) 0,
906 .tp_name = "dfsblobs.dfs_referral_type",
907 .tp_getset = py_dfs_referral_type_getsetters,
909 .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
910 .tp_basicsize = sizeof(pytalloc_Object),
911 .tp_new = py_dfs_referral_type_new,
915 static PyObject *py_dfs_referral_resp_get_path_consumed(PyObject *obj, void *closure)
917 struct dfs_referral_resp *object = (struct dfs_referral_resp *)pytalloc_get_ptr(obj);
918 PyObject *py_path_consumed;
919 py_path_consumed = PyInt_FromLong(object->path_consumed);
920 return py_path_consumed;
923 static int py_dfs_referral_resp_set_path_consumed(PyObject *py_obj, PyObject *value, void *closure)
925 struct dfs_referral_resp *object = (struct dfs_referral_resp *)pytalloc_get_ptr(py_obj);
926 PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
927 object->path_consumed = PyInt_AsLong(value);
931 static PyObject *py_dfs_referral_resp_get_nb_referrals(PyObject *obj, void *closure)
933 struct dfs_referral_resp *object = (struct dfs_referral_resp *)pytalloc_get_ptr(obj);
934 PyObject *py_nb_referrals;
935 py_nb_referrals = PyInt_FromLong(object->nb_referrals);
936 return py_nb_referrals;
939 static int py_dfs_referral_resp_set_nb_referrals(PyObject *py_obj, PyObject *value, void *closure)
941 struct dfs_referral_resp *object = (struct dfs_referral_resp *)pytalloc_get_ptr(py_obj);
942 PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
943 object->nb_referrals = PyInt_AsLong(value);
947 static PyObject *py_dfs_referral_resp_get_header_flags(PyObject *obj, void *closure)
949 struct dfs_referral_resp *object = (struct dfs_referral_resp *)pytalloc_get_ptr(obj);
950 PyObject *py_header_flags;
951 py_header_flags = PyInt_FromLong(object->header_flags);
952 return py_header_flags;
955 static int py_dfs_referral_resp_set_header_flags(PyObject *py_obj, PyObject *value, void *closure)
957 struct dfs_referral_resp *object = (struct dfs_referral_resp *)pytalloc_get_ptr(py_obj);
958 if (PyLong_Check(value)) {
959 object->header_flags = PyLong_AsLongLong(value);
960 } else if (PyInt_Check(value)) {
961 object->header_flags = PyInt_AsLong(value);
963 PyErr_Format(PyExc_TypeError, "Expected type %s or %s",\
964 PyInt_Type.tp_name, PyLong_Type.tp_name);
970 static PyObject *py_dfs_referral_resp_get_referral_entries(PyObject *obj, void *closure)
972 struct dfs_referral_resp *object = (struct dfs_referral_resp *)pytalloc_get_ptr(obj);
973 PyObject *py_referral_entries;
974 py_referral_entries = PyList_New(object->nb_referrals);
975 if (py_referral_entries == NULL) {
979 int referral_entries_cntr_0;
980 for (referral_entries_cntr_0 = 0; referral_entries_cntr_0 < object->nb_referrals; referral_entries_cntr_0++) {
981 PyObject *py_referral_entries_0;
982 py_referral_entries_0 = pytalloc_reference_ex(&dfs_referral_type_Type, object->referral_entries, &object->referral_entries[referral_entries_cntr_0]);
983 PyList_SetItem(py_referral_entries, referral_entries_cntr_0, py_referral_entries_0);
986 return py_referral_entries;
989 static int py_dfs_referral_resp_set_referral_entries(PyObject *py_obj, PyObject *value, void *closure)
991 struct dfs_referral_resp *object = (struct dfs_referral_resp *)pytalloc_get_ptr(py_obj);
992 PY_CHECK_TYPE(&PyList_Type, value, return -1;);
994 int referral_entries_cntr_0;
995 object->referral_entries = talloc_array_ptrtype(pytalloc_get_mem_ctx(py_obj), object->referral_entries, PyList_GET_SIZE(value));
996 if (!object->referral_entries) { return -1;; }
997 talloc_set_name_const(object->referral_entries, "ARRAY: object->referral_entries");
998 for (referral_entries_cntr_0 = 0; referral_entries_cntr_0 < PyList_GET_SIZE(value); referral_entries_cntr_0++) {
999 PY_CHECK_TYPE(&dfs_referral_type_Type, PyList_GET_ITEM(value, referral_entries_cntr_0), return -1;);
1000 if (talloc_reference(object->referral_entries, pytalloc_get_mem_ctx(PyList_GET_ITEM(value, referral_entries_cntr_0))) == NULL) {
1004 object->referral_entries[referral_entries_cntr_0] = *(struct dfs_referral_type *)pytalloc_get_ptr(PyList_GET_ITEM(value, referral_entries_cntr_0));
1010 static PyGetSetDef py_dfs_referral_resp_getsetters[] = {
1011 { discard_const_p(char, "path_consumed"), py_dfs_referral_resp_get_path_consumed, py_dfs_referral_resp_set_path_consumed },
1012 { discard_const_p(char, "nb_referrals"), py_dfs_referral_resp_get_nb_referrals, py_dfs_referral_resp_set_nb_referrals },
1013 { discard_const_p(char, "header_flags"), py_dfs_referral_resp_get_header_flags, py_dfs_referral_resp_set_header_flags },
1014 { discard_const_p(char, "referral_entries"), py_dfs_referral_resp_get_referral_entries, py_dfs_referral_resp_set_referral_entries },
1018 static PyObject *py_dfs_referral_resp_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
1020 return pytalloc_new(struct dfs_referral_resp, type);
1023 static PyObject *py_dfs_referral_resp_ndr_pack(PyObject *py_obj)
1025 struct dfs_referral_resp *object = (struct dfs_referral_resp *)pytalloc_get_ptr(py_obj);
1027 enum ndr_err_code err;
1028 err = ndr_push_struct_blob(&blob, pytalloc_get_mem_ctx(py_obj), object, (ndr_push_flags_fn_t)ndr_push_dfs_referral_resp);
1029 if (err != NDR_ERR_SUCCESS) {
1030 PyErr_SetNdrError(err);
1034 return PyString_FromStringAndSize((char *)blob.data, blob.length);
1037 static PyObject *py_dfs_referral_resp_ndr_unpack(PyObject *py_obj, PyObject *args, PyObject *kwargs)
1039 struct dfs_referral_resp *object = (struct dfs_referral_resp *)pytalloc_get_ptr(py_obj);
1041 int blob_length = 0;
1042 enum ndr_err_code err;
1043 const char * const kwnames[] = { "data_blob", "allow_remaining", NULL };
1044 PyObject *allow_remaining_obj = NULL;
1045 bool allow_remaining = false;
1047 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s#|O:__ndr_unpack__",
1048 discard_const_p(char *, kwnames),
1049 &blob.data, &blob_length,
1050 &allow_remaining_obj)) {
1053 blob.length = blob_length;
1055 if (allow_remaining_obj && PyObject_IsTrue(allow_remaining_obj)) {
1056 allow_remaining = true;
1059 if (allow_remaining) {
1060 err = ndr_pull_struct_blob(&blob, pytalloc_get_mem_ctx(py_obj), object, (ndr_pull_flags_fn_t)ndr_pull_dfs_referral_resp);
1062 err = ndr_pull_struct_blob_all(&blob, pytalloc_get_mem_ctx(py_obj), object, (ndr_pull_flags_fn_t)ndr_pull_dfs_referral_resp);
1064 if (err != NDR_ERR_SUCCESS) {
1065 PyErr_SetNdrError(err);
1072 static PyObject *py_dfs_referral_resp_ndr_print(PyObject *py_obj)
1074 struct dfs_referral_resp *object = (struct dfs_referral_resp *)pytalloc_get_ptr(py_obj);
1078 retstr = ndr_print_struct_string(pytalloc_get_mem_ctx(py_obj), (ndr_print_fn_t)ndr_print_dfs_referral_resp, "dfs_referral_resp", object);
1079 ret = PyString_FromString(retstr);
1080 talloc_free(retstr);
1085 static PyMethodDef py_dfs_referral_resp_methods[] = {
1086 { "__ndr_pack__", (PyCFunction)py_dfs_referral_resp_ndr_pack, METH_NOARGS, "S.ndr_pack(object) -> blob\nNDR pack" },
1087 { "__ndr_unpack__", (PyCFunction)py_dfs_referral_resp_ndr_unpack, METH_VARARGS|METH_KEYWORDS, "S.ndr_unpack(class, blob, allow_remaining=False) -> None\nNDR unpack" },
1088 { "__ndr_print__", (PyCFunction)py_dfs_referral_resp_ndr_print, METH_VARARGS, "S.ndr_print(object) -> None\nNDR print" },
1089 { NULL, NULL, 0, NULL }
1093 static PyTypeObject dfs_referral_resp_Type = {
1094 PyObject_HEAD_INIT(NULL) 0,
1095 .tp_name = "dfsblobs.dfs_referral_resp",
1096 .tp_getset = py_dfs_referral_resp_getsetters,
1097 .tp_methods = py_dfs_referral_resp_methods,
1098 .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
1099 .tp_basicsize = sizeof(pytalloc_Object),
1100 .tp_new = py_dfs_referral_resp_new,
1104 static PyObject *py_dfs_GetDFSReferral_in_get_max_referral_level(PyObject *obj, void *closure)
1106 struct dfs_GetDFSReferral_in *object = (struct dfs_GetDFSReferral_in *)pytalloc_get_ptr(obj);
1107 PyObject *py_max_referral_level;
1108 py_max_referral_level = PyInt_FromLong(object->max_referral_level);
1109 return py_max_referral_level;
1112 static int py_dfs_GetDFSReferral_in_set_max_referral_level(PyObject *py_obj, PyObject *value, void *closure)
1114 struct dfs_GetDFSReferral_in *object = (struct dfs_GetDFSReferral_in *)pytalloc_get_ptr(py_obj);
1115 PY_CHECK_TYPE(&PyInt_Type, value, return -1;);
1116 object->max_referral_level = PyInt_AsLong(value);
1120 static PyObject *py_dfs_GetDFSReferral_in_get_servername(PyObject *obj, void *closure)
1122 struct dfs_GetDFSReferral_in *object = (struct dfs_GetDFSReferral_in *)pytalloc_get_ptr(obj);
1123 PyObject *py_servername;
1124 py_servername = PyString_FromStringOrNULL(object->servername);
1125 return py_servername;
1128 static int py_dfs_GetDFSReferral_in_set_servername(PyObject *py_obj, PyObject *value, void *closure)
1130 struct dfs_GetDFSReferral_in *object = (struct dfs_GetDFSReferral_in *)pytalloc_get_ptr(py_obj);
1131 object->servername = talloc_strdup(pytalloc_get_mem_ctx(py_obj), PyString_AS_STRING(value));
1135 static PyGetSetDef py_dfs_GetDFSReferral_in_getsetters[] = {
1136 { discard_const_p(char, "max_referral_level"), py_dfs_GetDFSReferral_in_get_max_referral_level, py_dfs_GetDFSReferral_in_set_max_referral_level },
1137 { discard_const_p(char, "servername"), py_dfs_GetDFSReferral_in_get_servername, py_dfs_GetDFSReferral_in_set_servername },
1141 static PyObject *py_dfs_GetDFSReferral_in_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
1143 return pytalloc_new(struct dfs_GetDFSReferral_in, type);
1146 static PyObject *py_dfs_GetDFSReferral_in_ndr_pack(PyObject *py_obj)
1148 struct dfs_GetDFSReferral_in *object = (struct dfs_GetDFSReferral_in *)pytalloc_get_ptr(py_obj);
1150 enum ndr_err_code err;
1151 err = ndr_push_struct_blob(&blob, pytalloc_get_mem_ctx(py_obj), object, (ndr_push_flags_fn_t)ndr_push_dfs_GetDFSReferral_in);
1152 if (err != NDR_ERR_SUCCESS) {
1153 PyErr_SetNdrError(err);
1157 return PyString_FromStringAndSize((char *)blob.data, blob.length);
1160 static PyObject *py_dfs_GetDFSReferral_in_ndr_unpack(PyObject *py_obj, PyObject *args, PyObject *kwargs)
1162 struct dfs_GetDFSReferral_in *object = (struct dfs_GetDFSReferral_in *)pytalloc_get_ptr(py_obj);
1164 int blob_length = 0;
1165 enum ndr_err_code err;
1166 const char * const kwnames[] = { "data_blob", "allow_remaining", NULL };
1167 PyObject *allow_remaining_obj = NULL;
1168 bool allow_remaining = false;
1170 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s#|O:__ndr_unpack__",
1171 discard_const_p(char *, kwnames),
1172 &blob.data, &blob_length,
1173 &allow_remaining_obj)) {
1176 blob.length = blob_length;
1178 if (allow_remaining_obj && PyObject_IsTrue(allow_remaining_obj)) {
1179 allow_remaining = true;
1182 if (allow_remaining) {
1183 err = ndr_pull_struct_blob(&blob, pytalloc_get_mem_ctx(py_obj), object, (ndr_pull_flags_fn_t)ndr_pull_dfs_GetDFSReferral_in);
1185 err = ndr_pull_struct_blob_all(&blob, pytalloc_get_mem_ctx(py_obj), object, (ndr_pull_flags_fn_t)ndr_pull_dfs_GetDFSReferral_in);
1187 if (err != NDR_ERR_SUCCESS) {
1188 PyErr_SetNdrError(err);
1195 static PyObject *py_dfs_GetDFSReferral_in_ndr_print(PyObject *py_obj)
1197 struct dfs_GetDFSReferral_in *object = (struct dfs_GetDFSReferral_in *)pytalloc_get_ptr(py_obj);
1201 retstr = ndr_print_struct_string(pytalloc_get_mem_ctx(py_obj), (ndr_print_fn_t)ndr_print_dfs_GetDFSReferral_in, "dfs_GetDFSReferral_in", object);
1202 ret = PyString_FromString(retstr);
1203 talloc_free(retstr);
1208 static PyMethodDef py_dfs_GetDFSReferral_in_methods[] = {
1209 { "__ndr_pack__", (PyCFunction)py_dfs_GetDFSReferral_in_ndr_pack, METH_NOARGS, "S.ndr_pack(object) -> blob\nNDR pack" },
1210 { "__ndr_unpack__", (PyCFunction)py_dfs_GetDFSReferral_in_ndr_unpack, METH_VARARGS|METH_KEYWORDS, "S.ndr_unpack(class, blob, allow_remaining=False) -> None\nNDR unpack" },
1211 { "__ndr_print__", (PyCFunction)py_dfs_GetDFSReferral_in_ndr_print, METH_VARARGS, "S.ndr_print(object) -> None\nNDR print" },
1212 { NULL, NULL, 0, NULL }
1216 static PyTypeObject dfs_GetDFSReferral_in_Type = {
1217 PyObject_HEAD_INIT(NULL) 0,
1218 .tp_name = "dfsblobs.dfs_GetDFSReferral_in",
1219 .tp_getset = py_dfs_GetDFSReferral_in_getsetters,
1220 .tp_methods = py_dfs_GetDFSReferral_in_methods,
1221 .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
1222 .tp_basicsize = sizeof(pytalloc_Object),
1223 .tp_new = py_dfs_GetDFSReferral_in_new,
1227 static bool pack_py_dfs_GetDFSReferral_args_in(PyObject *args, PyObject *kwargs, struct dfs_GetDFSReferral *r)
1230 const char *kwnames[] = {
1234 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:dfs_GetDFSReferral", discard_const_p(char *, kwnames), &py_req)) {
1238 PY_CHECK_TYPE(&dfs_GetDFSReferral_in_Type, py_req, return false;);
1239 if (talloc_reference(r, pytalloc_get_mem_ctx(py_req)) == NULL) {
1243 r->in.req = *(struct dfs_GetDFSReferral_in *)pytalloc_get_ptr(py_req);
1247 static PyObject *unpack_py_dfs_GetDFSReferral_args_out(struct dfs_GetDFSReferral *r)
1251 py_resp = pytalloc_reference_ex(&dfs_referral_resp_Type, r->out.resp, r->out.resp);
1256 const struct PyNdrRpcMethodDef py_ndr_dfsblobs_methods[] = {
1257 { "dfs_GetDFSReferral", "S.dfs_GetDFSReferral(req) -> resp", (py_dcerpc_call_fn)dcerpc_dfs_GetDFSReferral_r, (py_data_pack_fn)pack_py_dfs_GetDFSReferral_args_in, (py_data_unpack_fn)unpack_py_dfs_GetDFSReferral_args_out, 0, &ndr_table_dfsblobs },
1261 static PyObject *interface_dfsblobs_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
1263 return py_dcerpc_interface_init_helper(type, args, kwargs, &ndr_table_dfsblobs);
1266 #define PY_DOC_DFSBLOBS "dfs referral blobs"
1267 static PyTypeObject dfsblobs_InterfaceType = {
1268 PyObject_HEAD_INIT(NULL) 0,
1269 .tp_name = "dfsblobs.dfsblobs",
1270 .tp_basicsize = sizeof(dcerpc_InterfaceObject),
1271 .tp_doc = "dfsblobs(binding, lp_ctx=None, credentials=None) -> connection\n"
1273 "binding should be a DCE/RPC binding string (for example: ncacn_ip_tcp:127.0.0.1)\n"
1274 "lp_ctx should be a path to a smb.conf file or a param.LoadParm object\n"
1275 "credentials should be a credentials.Credentials object.\n\n"PY_DOC_DFSBLOBS,
1276 .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
1277 .tp_new = interface_dfsblobs_new,
1280 static PyMethodDef dfsblobs_methods[] = {
1281 { NULL, NULL, 0, NULL }
1284 void initdfsblobs(void)
1287 PyObject *dep_talloc;
1288 PyObject *dep_samba_dcerpc_misc;
1289 PyObject *dep_samba_dcerpc_base;
1291 dep_talloc = PyImport_ImportModule("talloc");
1292 if (dep_talloc == NULL)
1295 dep_samba_dcerpc_misc = PyImport_ImportModule("samba.dcerpc.misc");
1296 if (dep_samba_dcerpc_misc == NULL)
1299 dep_samba_dcerpc_base = PyImport_ImportModule("samba.dcerpc.base");
1300 if (dep_samba_dcerpc_base == NULL)
1303 Object_Type = (PyTypeObject *)PyObject_GetAttrString(dep_talloc, "Object");
1304 if (Object_Type == NULL)
1307 ClientConnection_Type = (PyTypeObject *)PyObject_GetAttrString(dep_samba_dcerpc_base, "ClientConnection");
1308 if (ClientConnection_Type == NULL)
1311 dfs_referral_v1_Type.tp_base = Object_Type;
1313 dfs_referral_v2_Type.tp_base = Object_Type;
1315 dfs_normal_referral_Type.tp_base = Object_Type;
1317 dfs_domain_referral_Type.tp_base = Object_Type;
1319 dfs_referral_v3_Type.tp_base = Object_Type;
1321 dfs_referral_type_Type.tp_base = Object_Type;
1323 dfs_referral_resp_Type.tp_base = Object_Type;
1325 dfs_GetDFSReferral_in_Type.tp_base = Object_Type;
1327 dfsblobs_InterfaceType.tp_base = ClientConnection_Type;
1329 if (PyType_Ready(&dfs_referral_v1_Type) < 0)
1331 if (PyType_Ready(&dfs_referral_v2_Type) < 0)
1333 if (PyType_Ready(&dfs_normal_referral_Type) < 0)
1335 if (PyType_Ready(&dfs_domain_referral_Type) < 0)
1337 if (PyType_Ready(&dfs_referral_v3_Type) < 0)
1339 if (PyType_Ready(&dfs_referral_type_Type) < 0)
1341 if (PyType_Ready(&dfs_referral_resp_Type) < 0)
1343 if (PyType_Ready(&dfs_GetDFSReferral_in_Type) < 0)
1345 if (PyType_Ready(&dfsblobs_InterfaceType) < 0)
1347 if (!PyInterface_AddNdrRpcMethods(&dfsblobs_InterfaceType, py_ndr_dfsblobs_methods))
1350 #ifdef PY_DFS_REFERRAL_V1_PATCH
1351 PY_DFS_REFERRAL_V1_PATCH(&dfs_referral_v1_Type);
1353 #ifdef PY_DFS_REFERRAL_V2_PATCH
1354 PY_DFS_REFERRAL_V2_PATCH(&dfs_referral_v2_Type);
1356 #ifdef PY_DFS_NORMAL_REFERRAL_PATCH
1357 PY_DFS_NORMAL_REFERRAL_PATCH(&dfs_normal_referral_Type);
1359 #ifdef PY_DFS_DOMAIN_REFERRAL_PATCH
1360 PY_DFS_DOMAIN_REFERRAL_PATCH(&dfs_domain_referral_Type);
1362 #ifdef PY_DFS_REFERRAL_V3_PATCH
1363 PY_DFS_REFERRAL_V3_PATCH(&dfs_referral_v3_Type);
1365 #ifdef PY_DFS_REFERRAL_TYPE_PATCH
1366 PY_DFS_REFERRAL_TYPE_PATCH(&dfs_referral_type_Type);
1368 #ifdef PY_DFS_REFERRAL_RESP_PATCH
1369 PY_DFS_REFERRAL_RESP_PATCH(&dfs_referral_resp_Type);
1371 #ifdef PY_DFS_GETDFSREFERRAL_IN_PATCH
1372 PY_DFS_GETDFSREFERRAL_IN_PATCH(&dfs_GetDFSReferral_in_Type);
1374 #ifdef PY_DFSBLOBS_PATCH
1375 PY_DFSBLOBS_PATCH(&dfsblobs_InterfaceType);
1378 m = Py_InitModule3("dfsblobs", dfsblobs_methods, "dfsblobs DCE/RPC");
1382 PyModule_AddObject(m, "DFS_SERVER_ROOT", PyInt_FromLong(DFS_SERVER_ROOT));
1383 PyModule_AddObject(m, "DFS_SERVER_NON_ROOT", PyInt_FromLong(DFS_SERVER_NON_ROOT));
1384 PyModule_AddObject(m, "DFS_HEADER_FLAG_TARGET_BCK", PyInt_FromLong(DFS_HEADER_FLAG_TARGET_BCK));
1385 PyModule_AddObject(m, "DFS_FLAG_REFERRAL_DOMAIN_RESP", PyInt_FromLong(DFS_FLAG_REFERRAL_DOMAIN_RESP));
1386 PyModule_AddObject(m, "DFS_FLAG_REFERRAL_FIRST_TARGET_SET", PyInt_FromLong(DFS_FLAG_REFERRAL_FIRST_TARGET_SET));
1387 PyModule_AddObject(m, "DFS_HEADER_FLAG_STORAGE_SVR", PyInt_FromLong(DFS_HEADER_FLAG_STORAGE_SVR));
1388 PyModule_AddObject(m, "DFS_HEADER_FLAG_REFERAL_SVR", PyInt_FromLong(DFS_HEADER_FLAG_REFERAL_SVR));
1389 Py_INCREF((PyObject *)(void *)&dfs_referral_v1_Type);
1390 PyModule_AddObject(m, "dfs_referral_v1", (PyObject *)(void *)&dfs_referral_v1_Type);
1391 Py_INCREF((PyObject *)(void *)&dfs_referral_v2_Type);
1392 PyModule_AddObject(m, "dfs_referral_v2", (PyObject *)(void *)&dfs_referral_v2_Type);
1393 Py_INCREF((PyObject *)(void *)&dfs_normal_referral_Type);
1394 PyModule_AddObject(m, "dfs_normal_referral", (PyObject *)(void *)&dfs_normal_referral_Type);
1395 Py_INCREF((PyObject *)(void *)&dfs_domain_referral_Type);
1396 PyModule_AddObject(m, "dfs_domain_referral", (PyObject *)(void *)&dfs_domain_referral_Type);
1397 Py_INCREF((PyObject *)(void *)&dfs_referral_v3_Type);
1398 PyModule_AddObject(m, "dfs_referral_v3", (PyObject *)(void *)&dfs_referral_v3_Type);
1399 Py_INCREF((PyObject *)(void *)&dfs_referral_type_Type);
1400 PyModule_AddObject(m, "dfs_referral_type", (PyObject *)(void *)&dfs_referral_type_Type);
1401 Py_INCREF((PyObject *)(void *)&dfs_referral_resp_Type);
1402 PyModule_AddObject(m, "dfs_referral_resp", (PyObject *)(void *)&dfs_referral_resp_Type);
1403 Py_INCREF((PyObject *)(void *)&dfs_GetDFSReferral_in_Type);
1404 PyModule_AddObject(m, "dfs_GetDFSReferral_in", (PyObject *)(void *)&dfs_GetDFSReferral_in_Type);
1405 Py_INCREF((PyObject *)(void *)&dfsblobs_InterfaceType);
1406 PyModule_AddObject(m, "dfsblobs", (PyObject *)(void *)&dfsblobs_InterfaceType);
1407 #ifdef PY_MOD_DFSBLOBS_PATCH
1408 PY_MOD_DFSBLOBS_PATCH(m);