/* Python wrapper functions auto-generated by pidl */ #define PY_SSIZE_T_CLEAN 1 /* We use Py_ssize_t for PyArg_ParseTupleAndKeywords */ #include #include "python/py3compat.h" #include "includes.h" #include "python/modules.h" #include #include "librpc/rpc/pyrpc.h" #include "librpc/rpc/pyrpc_util.h" #include "bin/default/librpc/gen_ndr/ndr_browser.h" #include "bin/default/librpc/gen_ndr/ndr_browser_c.h" /* * Suppress compiler warnings if the generated code does not call these * functions */ #ifndef _MAYBE_UNUSED_ #ifdef __has_attribute #if __has_attribute(unused) #define _MAYBE_UNUSED_ __attribute__ ((unused)) #else #define _MAYBE_UNUSED_ #endif #endif #endif /* * These functions are here to ensure they can be optimized out by * the compiler based on the constant input values */ static inline unsigned long long ndr_sizeof2uintmax(size_t var_size) { switch (var_size) { case 8: return UINT64_MAX; case 4: return UINT32_MAX; case 2: return UINT16_MAX; case 1: return UINT8_MAX; } return 0; } static inline _MAYBE_UNUSED_ long long ndr_sizeof2intmax(size_t var_size) { switch (var_size) { case 8: return INT64_MAX; case 4: return INT32_MAX; case 2: return INT16_MAX; case 1: return INT8_MAX; } return 0; } #include "librpc/gen_ndr/srvsvc.h" static PyTypeObject BrowserrSrvInfo100Ctr_Type; static PyTypeObject BrowserrSrvInfo101Ctr_Type; static PyTypeObject BrowserrSrvInfoUnion_Type; static PyTypeObject BrowserrSrvInfo_Type; static PyTypeObject browser_InterfaceType; static PyTypeObject BrowserrQueryOtherDomains_Type; static PyTypeObject *srvsvc_NetSrvInfo100_Type; static PyTypeObject *BaseObject_Type; static PyTypeObject *srvsvc_NetSrvInfo101_Type; static PyTypeObject *ClientConnection_Type; static PyTypeObject *ndr_syntax_id_Type; static PyObject *py_BrowserrSrvInfo100Ctr_get_entries_read(PyObject *obj, void *closure) { struct BrowserrSrvInfo100Ctr *object = (struct BrowserrSrvInfo100Ctr *)pytalloc_get_ptr(obj); PyObject *py_entries_read; py_entries_read = PyLong_FromUnsignedLongLong((uint32_t)object->entries_read); return py_entries_read; } static int py_BrowserrSrvInfo100Ctr_set_entries_read(PyObject *py_obj, PyObject *value, void *closure) { struct BrowserrSrvInfo100Ctr *object = (struct BrowserrSrvInfo100Ctr *)pytalloc_get_ptr(py_obj); if (value == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct object->entries_read"); return -1; } { const unsigned long long uint_max = ndr_sizeof2uintmax(sizeof(object->entries_read)); if (PyLong_Check(value)) { unsigned long long test_var; test_var = PyLong_AsUnsignedLongLong(value); if (PyErr_Occurred() != NULL) { return -1; } if (test_var > uint_max) { PyErr_Format(PyExc_OverflowError, "Expected type %s within range 0 - %llu, got %llu",\ PyLong_Type.tp_name, uint_max, test_var); return -1; } object->entries_read = test_var; } else { PyErr_Format(PyExc_TypeError, "Expected type %s",\ PyLong_Type.tp_name); return -1; } } return 0; } static PyObject *py_BrowserrSrvInfo100Ctr_get_entries(PyObject *obj, void *closure) { struct BrowserrSrvInfo100Ctr *object = (struct BrowserrSrvInfo100Ctr *)pytalloc_get_ptr(obj); PyObject *py_entries; if (object->entries == NULL) { Py_RETURN_NONE; } if (object->entries == NULL) { py_entries = Py_None; Py_INCREF(py_entries); } else { py_entries = PyList_New(object->entries_read); if (py_entries == NULL) { return NULL; } { int entries_cntr_1; for (entries_cntr_1 = 0; entries_cntr_1 < (object->entries_read); entries_cntr_1++) { PyObject *py_entries_1; py_entries_1 = pytalloc_reference_ex(srvsvc_NetSrvInfo100_Type, object->entries, &object->entries[entries_cntr_1]); PyList_SetItem(py_entries, entries_cntr_1, py_entries_1); } } } return py_entries; } static int py_BrowserrSrvInfo100Ctr_set_entries(PyObject *py_obj, PyObject *value, void *closure) { struct BrowserrSrvInfo100Ctr *object = (struct BrowserrSrvInfo100Ctr *)pytalloc_get_ptr(py_obj); talloc_unlink(pytalloc_get_mem_ctx(py_obj), discard_const(object->entries)); if (value == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct object->entries"); return -1; } if (value == Py_None) { object->entries = NULL; } else { object->entries = NULL; PY_CHECK_TYPE(&PyList_Type, value, return -1;); { int entries_cntr_1; object->entries = talloc_array_ptrtype(pytalloc_get_mem_ctx(py_obj), object->entries, PyList_GET_SIZE(value)); if (!object->entries) { return -1;; } talloc_set_name_const(object->entries, "ARRAY: object->entries"); for (entries_cntr_1 = 0; entries_cntr_1 < PyList_GET_SIZE(value); entries_cntr_1++) { if (PyList_GET_ITEM(value, entries_cntr_1) == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct object->entries[entries_cntr_1]"); return -1; } PY_CHECK_TYPE(srvsvc_NetSrvInfo100_Type, PyList_GET_ITEM(value, entries_cntr_1), return -1;); if (talloc_reference(object->entries, pytalloc_get_mem_ctx(PyList_GET_ITEM(value, entries_cntr_1))) == NULL) { PyErr_NoMemory(); return -1; } object->entries[entries_cntr_1] = *(struct srvsvc_NetSrvInfo100 *)pytalloc_get_ptr(PyList_GET_ITEM(value, entries_cntr_1)); } } } return 0; } static PyGetSetDef py_BrowserrSrvInfo100Ctr_getsetters[] = { { .name = discard_const_p(char, "entries_read"), .get = py_BrowserrSrvInfo100Ctr_get_entries_read, .set = py_BrowserrSrvInfo100Ctr_set_entries_read, .doc = discard_const_p(char, "PIDL-generated element of base type uint32") }, { .name = discard_const_p(char, "entries"), .get = py_BrowserrSrvInfo100Ctr_get_entries, .set = py_BrowserrSrvInfo100Ctr_set_entries, .doc = discard_const_p(char, "PIDL-generated element of base type srvsvc_NetSrvInfo100") }, { .name = NULL } }; static PyObject *py_BrowserrSrvInfo100Ctr_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { return pytalloc_new(struct BrowserrSrvInfo100Ctr, type); } static PyTypeObject BrowserrSrvInfo100Ctr_Type = { PyVarObject_HEAD_INIT(NULL, 0) .tp_name = "browser.BrowserrSrvInfo100Ctr", .tp_getset = py_BrowserrSrvInfo100Ctr_getsetters, .tp_methods = NULL, .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, .tp_new = py_BrowserrSrvInfo100Ctr_new, }; static PyObject *py_BrowserrSrvInfo101Ctr_get_entries_read(PyObject *obj, void *closure) { struct BrowserrSrvInfo101Ctr *object = (struct BrowserrSrvInfo101Ctr *)pytalloc_get_ptr(obj); PyObject *py_entries_read; py_entries_read = PyLong_FromUnsignedLongLong((uint32_t)object->entries_read); return py_entries_read; } static int py_BrowserrSrvInfo101Ctr_set_entries_read(PyObject *py_obj, PyObject *value, void *closure) { struct BrowserrSrvInfo101Ctr *object = (struct BrowserrSrvInfo101Ctr *)pytalloc_get_ptr(py_obj); if (value == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct object->entries_read"); return -1; } { const unsigned long long uint_max = ndr_sizeof2uintmax(sizeof(object->entries_read)); if (PyLong_Check(value)) { unsigned long long test_var; test_var = PyLong_AsUnsignedLongLong(value); if (PyErr_Occurred() != NULL) { return -1; } if (test_var > uint_max) { PyErr_Format(PyExc_OverflowError, "Expected type %s within range 0 - %llu, got %llu",\ PyLong_Type.tp_name, uint_max, test_var); return -1; } object->entries_read = test_var; } else { PyErr_Format(PyExc_TypeError, "Expected type %s",\ PyLong_Type.tp_name); return -1; } } return 0; } static PyObject *py_BrowserrSrvInfo101Ctr_get_entries(PyObject *obj, void *closure) { struct BrowserrSrvInfo101Ctr *object = (struct BrowserrSrvInfo101Ctr *)pytalloc_get_ptr(obj); PyObject *py_entries; if (object->entries == NULL) { Py_RETURN_NONE; } if (object->entries == NULL) { py_entries = Py_None; Py_INCREF(py_entries); } else { py_entries = PyList_New(object->entries_read); if (py_entries == NULL) { return NULL; } { int entries_cntr_1; for (entries_cntr_1 = 0; entries_cntr_1 < (object->entries_read); entries_cntr_1++) { PyObject *py_entries_1; py_entries_1 = pytalloc_reference_ex(srvsvc_NetSrvInfo101_Type, object->entries, &object->entries[entries_cntr_1]); PyList_SetItem(py_entries, entries_cntr_1, py_entries_1); } } } return py_entries; } static int py_BrowserrSrvInfo101Ctr_set_entries(PyObject *py_obj, PyObject *value, void *closure) { struct BrowserrSrvInfo101Ctr *object = (struct BrowserrSrvInfo101Ctr *)pytalloc_get_ptr(py_obj); talloc_unlink(pytalloc_get_mem_ctx(py_obj), discard_const(object->entries)); if (value == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct object->entries"); return -1; } if (value == Py_None) { object->entries = NULL; } else { object->entries = NULL; PY_CHECK_TYPE(&PyList_Type, value, return -1;); { int entries_cntr_1; object->entries = talloc_array_ptrtype(pytalloc_get_mem_ctx(py_obj), object->entries, PyList_GET_SIZE(value)); if (!object->entries) { return -1;; } talloc_set_name_const(object->entries, "ARRAY: object->entries"); for (entries_cntr_1 = 0; entries_cntr_1 < PyList_GET_SIZE(value); entries_cntr_1++) { if (PyList_GET_ITEM(value, entries_cntr_1) == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct object->entries[entries_cntr_1]"); return -1; } PY_CHECK_TYPE(srvsvc_NetSrvInfo101_Type, PyList_GET_ITEM(value, entries_cntr_1), return -1;); if (talloc_reference(object->entries, pytalloc_get_mem_ctx(PyList_GET_ITEM(value, entries_cntr_1))) == NULL) { PyErr_NoMemory(); return -1; } object->entries[entries_cntr_1] = *(struct srvsvc_NetSrvInfo101 *)pytalloc_get_ptr(PyList_GET_ITEM(value, entries_cntr_1)); } } } return 0; } static PyGetSetDef py_BrowserrSrvInfo101Ctr_getsetters[] = { { .name = discard_const_p(char, "entries_read"), .get = py_BrowserrSrvInfo101Ctr_get_entries_read, .set = py_BrowserrSrvInfo101Ctr_set_entries_read, .doc = discard_const_p(char, "PIDL-generated element of base type uint32") }, { .name = discard_const_p(char, "entries"), .get = py_BrowserrSrvInfo101Ctr_get_entries, .set = py_BrowserrSrvInfo101Ctr_set_entries, .doc = discard_const_p(char, "PIDL-generated element of base type srvsvc_NetSrvInfo101") }, { .name = NULL } }; static PyObject *py_BrowserrSrvInfo101Ctr_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { return pytalloc_new(struct BrowserrSrvInfo101Ctr, type); } static PyTypeObject BrowserrSrvInfo101Ctr_Type = { PyVarObject_HEAD_INIT(NULL, 0) .tp_name = "browser.BrowserrSrvInfo101Ctr", .tp_getset = py_BrowserrSrvInfo101Ctr_getsetters, .tp_methods = NULL, .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, .tp_new = py_BrowserrSrvInfo101Ctr_new, }; static PyObject *py_import_BrowserrSrvInfoUnion(TALLOC_CTX *mem_ctx, int level, union BrowserrSrvInfoUnion *in) { PyObject *ret; switch (level) { case 100: if (in->info100 == NULL) { ret = Py_None; Py_INCREF(ret); } else { ret = pytalloc_reference_ex(&BrowserrSrvInfo100Ctr_Type, in->info100, in->info100); } return ret; case 101: if (in->info101 == NULL) { ret = Py_None; Py_INCREF(ret); } else { ret = pytalloc_reference_ex(&BrowserrSrvInfo101Ctr_Type, in->info101, in->info101); } return ret; default: ret = Py_None; Py_INCREF(ret); return ret; } PyErr_SetString(PyExc_TypeError, "unknown union level"); return NULL; } static union BrowserrSrvInfoUnion *py_export_BrowserrSrvInfoUnion(TALLOC_CTX *mem_ctx, int level, PyObject *in) { union BrowserrSrvInfoUnion *ret = talloc_zero(mem_ctx, union BrowserrSrvInfoUnion); switch (level) { case 100: if (in == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct ret->info100"); talloc_free(ret); return NULL; } if (in == Py_None) { ret->info100 = NULL; } else { ret->info100 = NULL; PY_CHECK_TYPE(&BrowserrSrvInfo100Ctr_Type, in, talloc_free(ret); return NULL;); if (talloc_reference(mem_ctx, pytalloc_get_mem_ctx(in)) == NULL) { PyErr_NoMemory(); talloc_free(ret); return NULL; } ret->info100 = (struct BrowserrSrvInfo100Ctr *)pytalloc_get_ptr(in); } break; case 101: if (in == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct ret->info101"); talloc_free(ret); return NULL; } if (in == Py_None) { ret->info101 = NULL; } else { ret->info101 = NULL; PY_CHECK_TYPE(&BrowserrSrvInfo101Ctr_Type, in, talloc_free(ret); return NULL;); if (talloc_reference(mem_ctx, pytalloc_get_mem_ctx(in)) == NULL) { PyErr_NoMemory(); talloc_free(ret); return NULL; } ret->info101 = (struct BrowserrSrvInfo101Ctr *)pytalloc_get_ptr(in); } break; default: break; } return ret; } static PyObject *py_BrowserrSrvInfoUnion_import(PyTypeObject *type, PyObject *args, PyObject *kwargs) { const char * const kwnames[] = { "mem_ctx", "level", "in", NULL }; PyObject *mem_ctx_obj = NULL; TALLOC_CTX *mem_ctx = NULL; int level = 0; PyObject *in_obj = NULL; union BrowserrSrvInfoUnion *in = NULL; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OiO:import", discard_const_p(char *, kwnames), &mem_ctx_obj, &level, &in_obj)) { return NULL; } mem_ctx = pytalloc_get_ptr(mem_ctx_obj); if (mem_ctx == NULL) { PyErr_SetString(PyExc_TypeError, "mem_ctx is NULL)!"); return NULL; } in = (union BrowserrSrvInfoUnion *)pytalloc_get_ptr(in_obj); if (in == NULL) { PyErr_Format(PyExc_TypeError, "in needs to be a pointer to union BrowserrSrvInfoUnion!"); return NULL; } return py_import_BrowserrSrvInfoUnion(mem_ctx, level, in); } static PyObject *py_BrowserrSrvInfoUnion_export(PyTypeObject *type, PyObject *args, PyObject *kwargs) { const char * const kwnames[] = { "mem_ctx", "level", "in", NULL }; PyObject *mem_ctx_obj = NULL; TALLOC_CTX *mem_ctx = NULL; int level = 0; PyObject *in = NULL; union BrowserrSrvInfoUnion *out = NULL; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OiO:export", discard_const_p(char *, kwnames), &mem_ctx_obj, &level, &in)) { return NULL; } mem_ctx = pytalloc_get_ptr(mem_ctx_obj); if (mem_ctx == NULL) { PyErr_SetString(PyExc_TypeError, "mem_ctx is NULL)!"); return NULL; } out = py_export_BrowserrSrvInfoUnion(mem_ctx, level, in); if (out == NULL) { return NULL; } return pytalloc_GenericObject_reference(out); } static PyMethodDef py_BrowserrSrvInfoUnion_methods[] = { { "__import__", PY_DISCARD_FUNC_SIG(PyCFunction,py_BrowserrSrvInfoUnion_import), METH_VARARGS|METH_KEYWORDS|METH_CLASS, "T.__import__(mem_ctx, level, in) => ret." }, { "__export__", PY_DISCARD_FUNC_SIG(PyCFunction,py_BrowserrSrvInfoUnion_export), METH_VARARGS|METH_KEYWORDS|METH_CLASS, "T.__export__(mem_ctx, level, in) => ret." }, { NULL, NULL, 0, NULL } }; static PyObject *py_BrowserrSrvInfoUnion_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyErr_Format(PyExc_TypeError, "New %s Objects are not supported", type->tp_name); return NULL; } static PyTypeObject BrowserrSrvInfoUnion_Type = { PyVarObject_HEAD_INIT(NULL, 0) .tp_name = "browser.BrowserrSrvInfoUnion", .tp_getset = NULL, .tp_methods = py_BrowserrSrvInfoUnion_methods, .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, .tp_new = py_BrowserrSrvInfoUnion_new, }; static PyObject *py_BrowserrSrvInfo_get_level(PyObject *obj, void *closure) { struct BrowserrSrvInfo *object = (struct BrowserrSrvInfo *)pytalloc_get_ptr(obj); PyObject *py_level; py_level = PyLong_FromUnsignedLongLong((uint32_t)object->level); return py_level; } static int py_BrowserrSrvInfo_set_level(PyObject *py_obj, PyObject *value, void *closure) { struct BrowserrSrvInfo *object = (struct BrowserrSrvInfo *)pytalloc_get_ptr(py_obj); if (value == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct object->level"); return -1; } { const unsigned long long uint_max = ndr_sizeof2uintmax(sizeof(object->level)); if (PyLong_Check(value)) { unsigned long long test_var; test_var = PyLong_AsUnsignedLongLong(value); if (PyErr_Occurred() != NULL) { return -1; } if (test_var > uint_max) { PyErr_Format(PyExc_OverflowError, "Expected type %s within range 0 - %llu, got %llu",\ PyLong_Type.tp_name, uint_max, test_var); return -1; } object->level = test_var; } else { PyErr_Format(PyExc_TypeError, "Expected type %s",\ PyLong_Type.tp_name); return -1; } } return 0; } static PyObject *py_BrowserrSrvInfo_get_info(PyObject *obj, void *closure) { struct BrowserrSrvInfo *object = (struct BrowserrSrvInfo *)pytalloc_get_ptr(obj); PyObject *py_info; py_info = pyrpc_import_union(&BrowserrSrvInfoUnion_Type, pytalloc_get_mem_ctx(obj), object->level, &object->info, "union BrowserrSrvInfoUnion"); if (py_info == NULL) { return NULL; } return py_info; } static int py_BrowserrSrvInfo_set_info(PyObject *py_obj, PyObject *value, void *closure) { struct BrowserrSrvInfo *object = (struct BrowserrSrvInfo *)pytalloc_get_ptr(py_obj); if (value == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct object->info"); return -1; } { union BrowserrSrvInfoUnion *info_switch_0; info_switch_0 = (union BrowserrSrvInfoUnion *)pyrpc_export_union(&BrowserrSrvInfoUnion_Type, pytalloc_get_mem_ctx(py_obj), object->level, value, "union BrowserrSrvInfoUnion"); if (info_switch_0 == NULL) { return -1; } object->info = *info_switch_0; } return 0; } static PyGetSetDef py_BrowserrSrvInfo_getsetters[] = { { .name = discard_const_p(char, "level"), .get = py_BrowserrSrvInfo_get_level, .set = py_BrowserrSrvInfo_set_level, .doc = discard_const_p(char, "PIDL-generated element of base type uint32") }, { .name = discard_const_p(char, "info"), .get = py_BrowserrSrvInfo_get_info, .set = py_BrowserrSrvInfo_set_info, .doc = discard_const_p(char, "PIDL-generated element of base type BrowserrSrvInfoUnion") }, { .name = NULL } }; static PyObject *py_BrowserrSrvInfo_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { return pytalloc_new(struct BrowserrSrvInfo, type); } static PyTypeObject BrowserrSrvInfo_Type = { PyVarObject_HEAD_INIT(NULL, 0) .tp_name = "browser.BrowserrSrvInfo", .tp_getset = py_BrowserrSrvInfo_getsetters, .tp_methods = NULL, .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, .tp_new = py_BrowserrSrvInfo_new, }; static PyObject *py_BrowserrQueryOtherDomains_in_get_server_unc(PyObject *obj, void *closure) { struct BrowserrQueryOtherDomains *object = (struct BrowserrQueryOtherDomains *)pytalloc_get_ptr(obj); PyObject *py_server_unc; if (object->in.server_unc == NULL) { Py_RETURN_NONE; } if (object->in.server_unc == NULL) { py_server_unc = Py_None; Py_INCREF(py_server_unc); } else { if (object->in.server_unc == NULL) { py_server_unc = Py_None; Py_INCREF(py_server_unc); } else { py_server_unc = PyUnicode_Decode(object->in.server_unc, strlen(object->in.server_unc), "utf-8", "ignore"); } } return py_server_unc; } static int py_BrowserrQueryOtherDomains_in_set_server_unc(PyObject *py_obj, PyObject *value, void *closure) { struct BrowserrQueryOtherDomains *object = (struct BrowserrQueryOtherDomains *)pytalloc_get_ptr(py_obj); if (value == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct object->in.server_unc"); return -1; } if (value == Py_None) { object->in.server_unc = NULL; } else { object->in.server_unc = NULL; { const char *test_str; const char *talloc_str; PyObject *unicode = NULL; if (PyUnicode_Check(value)) { unicode = PyUnicode_AsEncodedString(value, "utf-8", "ignore"); if (unicode == NULL) { PyErr_NoMemory(); return -1; } test_str = PyBytes_AS_STRING(unicode); } else if (PyBytes_Check(value)) { test_str = PyBytes_AS_STRING(value); } else { PyErr_Format(PyExc_TypeError, "Expected string or unicode object, got %s", Py_TYPE(value)->tp_name); return -1; } talloc_str = talloc_strdup(pytalloc_get_mem_ctx(py_obj), test_str); if (unicode != NULL) { Py_DECREF(unicode); } if (talloc_str == NULL) { PyErr_NoMemory(); return -1; } object->in.server_unc = talloc_str; } } return 0; } static PyObject *py_BrowserrQueryOtherDomains_in_get_info(PyObject *obj, void *closure) { struct BrowserrQueryOtherDomains *object = (struct BrowserrQueryOtherDomains *)pytalloc_get_ptr(obj); PyObject *py_info; if (object->in.info == NULL) { Py_RETURN_NONE; } py_info = pytalloc_reference_ex(&BrowserrSrvInfo_Type, object->in.info, object->in.info); return py_info; } static int py_BrowserrQueryOtherDomains_in_set_info(PyObject *py_obj, PyObject *value, void *closure) { struct BrowserrQueryOtherDomains *object = (struct BrowserrQueryOtherDomains *)pytalloc_get_ptr(py_obj); talloc_unlink(pytalloc_get_mem_ctx(py_obj), discard_const(object->in.info)); if (value == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct object->in.info"); return -1; } object->in.info = talloc_ptrtype(pytalloc_get_mem_ctx(py_obj), object->in.info); if (object->in.info == NULL) { PyErr_NoMemory(); return -1; } PY_CHECK_TYPE(&BrowserrSrvInfo_Type, value, return -1;); if (talloc_reference(pytalloc_get_mem_ctx(py_obj), pytalloc_get_mem_ctx(value)) == NULL) { PyErr_NoMemory(); return -1; } object->in.info = (struct BrowserrSrvInfo *)pytalloc_get_ptr(value); return 0; } static PyObject *py_BrowserrQueryOtherDomains_out_get_info(PyObject *obj, void *closure) { struct BrowserrQueryOtherDomains *object = (struct BrowserrQueryOtherDomains *)pytalloc_get_ptr(obj); PyObject *py_info; if (object->out.info == NULL) { Py_RETURN_NONE; } py_info = pytalloc_reference_ex(&BrowserrSrvInfo_Type, object->out.info, object->out.info); return py_info; } static int py_BrowserrQueryOtherDomains_out_set_info(PyObject *py_obj, PyObject *value, void *closure) { struct BrowserrQueryOtherDomains *object = (struct BrowserrQueryOtherDomains *)pytalloc_get_ptr(py_obj); talloc_unlink(pytalloc_get_mem_ctx(py_obj), discard_const(object->out.info)); if (value == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct object->out.info"); return -1; } object->out.info = talloc_ptrtype(pytalloc_get_mem_ctx(py_obj), object->out.info); if (object->out.info == NULL) { PyErr_NoMemory(); return -1; } PY_CHECK_TYPE(&BrowserrSrvInfo_Type, value, return -1;); if (talloc_reference(pytalloc_get_mem_ctx(py_obj), pytalloc_get_mem_ctx(value)) == NULL) { PyErr_NoMemory(); return -1; } object->out.info = (struct BrowserrSrvInfo *)pytalloc_get_ptr(value); return 0; } static PyObject *py_BrowserrQueryOtherDomains_out_get_total_entries(PyObject *obj, void *closure) { struct BrowserrQueryOtherDomains *object = (struct BrowserrQueryOtherDomains *)pytalloc_get_ptr(obj); PyObject *py_total_entries; if (object->out.total_entries == NULL) { Py_RETURN_NONE; } py_total_entries = PyLong_FromUnsignedLongLong((uint32_t)*object->out.total_entries); return py_total_entries; } static int py_BrowserrQueryOtherDomains_out_set_total_entries(PyObject *py_obj, PyObject *value, void *closure) { struct BrowserrQueryOtherDomains *object = (struct BrowserrQueryOtherDomains *)pytalloc_get_ptr(py_obj); talloc_unlink(pytalloc_get_mem_ctx(py_obj), discard_const(object->out.total_entries)); if (value == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct object->out.total_entries"); return -1; } object->out.total_entries = talloc_ptrtype(pytalloc_get_mem_ctx(py_obj), object->out.total_entries); if (object->out.total_entries == NULL) { PyErr_NoMemory(); return -1; } { const unsigned long long uint_max = ndr_sizeof2uintmax(sizeof(*object->out.total_entries)); if (PyLong_Check(value)) { unsigned long long test_var; test_var = PyLong_AsUnsignedLongLong(value); if (PyErr_Occurred() != NULL) { return -1; } if (test_var > uint_max) { PyErr_Format(PyExc_OverflowError, "Expected type %s within range 0 - %llu, got %llu",\ PyLong_Type.tp_name, uint_max, test_var); return -1; } *object->out.total_entries = test_var; } else { PyErr_Format(PyExc_TypeError, "Expected type %s",\ PyLong_Type.tp_name); return -1; } } return 0; } static PyObject *py_BrowserrQueryOtherDomains_get_result(PyObject *obj, void *closure) { struct BrowserrQueryOtherDomains *object = (struct BrowserrQueryOtherDomains *)pytalloc_get_ptr(obj); PyObject *py_result; py_result = PyErr_FromWERROR(object->out.result); return py_result; } static int py_BrowserrQueryOtherDomains_set_result(PyObject *py_obj, PyObject *value, void *closure) { struct BrowserrQueryOtherDomains *object = (struct BrowserrQueryOtherDomains *)pytalloc_get_ptr(py_obj); if (value == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct object->out.result"); return -1; } object->out.result = W_ERROR(PyLong_AsLong(value)); return 0; } static PyGetSetDef py_BrowserrQueryOtherDomains_getsetters[] = { { .name = discard_const_p(char, "in_server_unc"), .get = py_BrowserrQueryOtherDomains_in_get_server_unc, .set = py_BrowserrQueryOtherDomains_in_set_server_unc, .doc = discard_const_p(char, "PIDL-generated element of base type uint16") }, { .name = discard_const_p(char, "in_info"), .get = py_BrowserrQueryOtherDomains_in_get_info, .set = py_BrowserrQueryOtherDomains_in_set_info, .doc = discard_const_p(char, "PIDL-generated element of base type BrowserrSrvInfo") }, { .name = discard_const_p(char, "out_info"), .get = py_BrowserrQueryOtherDomains_out_get_info, .set = py_BrowserrQueryOtherDomains_out_set_info, .doc = discard_const_p(char, "PIDL-generated element of base type BrowserrSrvInfo") }, { .name = discard_const_p(char, "out_total_entries"), .get = py_BrowserrQueryOtherDomains_out_get_total_entries, .set = py_BrowserrQueryOtherDomains_out_set_total_entries, .doc = discard_const_p(char, "PIDL-generated element of base type uint32") }, { .name = discard_const_p(char, "result"), .get = py_BrowserrQueryOtherDomains_get_result, .set = py_BrowserrQueryOtherDomains_set_result, .doc = discard_const_p(char, "PIDL-generated element of type WERROR") }, { .name = NULL } }; static PyObject *py_BrowserrQueryOtherDomains_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { PyObject *self = pytalloc_new(struct BrowserrQueryOtherDomains, type); struct BrowserrQueryOtherDomains *_self = (struct BrowserrQueryOtherDomains *)pytalloc_get_ptr(self); TALLOC_CTX *mem_ctx = pytalloc_get_mem_ctx(self); _self->in.info = talloc_zero(mem_ctx, struct BrowserrSrvInfo); _self->out.info = talloc_zero(mem_ctx, struct BrowserrSrvInfo); _self->out.total_entries = talloc_zero(mem_ctx, uint32_t); return self; } static PyObject *py_BrowserrQueryOtherDomains_ndr_opnum(PyTypeObject *type, PyObject *Py_UNUSED(ignored)) { return PyLong_FromLong(2); } static PyObject *py_BrowserrQueryOtherDomains_ndr_pack(PyObject *py_obj, int ndr_inout_flags, uint32_t ndr_push_flags) { const struct ndr_interface_call *call = NULL; struct BrowserrQueryOtherDomains *object = (struct BrowserrQueryOtherDomains *)pytalloc_get_ptr(py_obj); PyObject *ret = NULL; struct ndr_push *push = NULL; DATA_BLOB blob; enum ndr_err_code err; if (ndr_table_browser.num_calls < 3) { PyErr_SetString(PyExc_TypeError, "Internal Error, ndr_interface_call missing for py_BrowserrQueryOtherDomains_ndr_pack"); return NULL; } call = &ndr_table_browser.calls[2]; push = ndr_push_init_ctx(pytalloc_get_mem_ctx(py_obj)); if (push == NULL) { PyErr_SetNdrError(NDR_ERR_ALLOC); return NULL; } push->flags |= ndr_push_flags; err = call->ndr_push(push, ndr_inout_flags, object); if (!NDR_ERR_CODE_IS_SUCCESS(err)) { TALLOC_FREE(push); PyErr_SetNdrError(err); return NULL; } blob = ndr_push_blob(push); ret = PyBytes_FromStringAndSize((char *)blob.data, blob.length); TALLOC_FREE(push); return ret; } static PyObject *py_BrowserrQueryOtherDomains_ndr_pack_in(PyObject *py_obj, PyObject *args, PyObject *kwargs) { const char * const kwnames[] = { "bigendian", "ndr64", NULL }; PyObject *bigendian_obj = NULL; PyObject *ndr64_obj = NULL; uint32_t ndr_push_flags = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OO:__ndr_pack_in__", discard_const_p(char *, kwnames), &bigendian_obj, &ndr64_obj)) { return NULL; } if (bigendian_obj && PyObject_IsTrue(bigendian_obj)) { ndr_push_flags |= LIBNDR_FLAG_BIGENDIAN; } if (ndr64_obj && PyObject_IsTrue(ndr64_obj)) { ndr_push_flags |= LIBNDR_FLAG_NDR64; } return py_BrowserrQueryOtherDomains_ndr_pack(py_obj, NDR_IN, ndr_push_flags); } static PyObject *py_BrowserrQueryOtherDomains_ndr_pack_out(PyObject *py_obj, PyObject *args, PyObject *kwargs) { const char * const kwnames[] = { "bigendian", "ndr64", NULL }; PyObject *bigendian_obj = NULL; PyObject *ndr64_obj = NULL; uint32_t ndr_push_flags = 0; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OO:__ndr_pack_out__", discard_const_p(char *, kwnames), &bigendian_obj, &ndr64_obj)) { return NULL; } if (bigendian_obj && PyObject_IsTrue(bigendian_obj)) { ndr_push_flags |= LIBNDR_FLAG_BIGENDIAN; } if (ndr64_obj && PyObject_IsTrue(ndr64_obj)) { ndr_push_flags |= LIBNDR_FLAG_NDR64; } return py_BrowserrQueryOtherDomains_ndr_pack(py_obj, NDR_OUT, ndr_push_flags); } static PyObject *py_BrowserrQueryOtherDomains_ndr_unpack(PyObject *py_obj, const DATA_BLOB *blob, int ndr_inout_flags, uint32_t ndr_pull_flags, bool allow_remaining) { const struct ndr_interface_call *call = NULL; struct BrowserrQueryOtherDomains *object = (struct BrowserrQueryOtherDomains *)pytalloc_get_ptr(py_obj); struct ndr_pull *pull = NULL; enum ndr_err_code err; if (ndr_table_browser.num_calls < 3) { PyErr_SetString(PyExc_TypeError, "Internal Error, ndr_interface_call missing for py_BrowserrQueryOtherDomains_ndr_unpack"); return NULL; } call = &ndr_table_browser.calls[2]; pull = ndr_pull_init_blob(blob, object); if (pull == NULL) { PyErr_SetNdrError(NDR_ERR_ALLOC); return NULL; } pull->flags |= ndr_pull_flags; err = call->ndr_pull(pull, ndr_inout_flags, object); if (!NDR_ERR_CODE_IS_SUCCESS(err)) { TALLOC_FREE(pull); PyErr_SetNdrError(err); return NULL; } if (!allow_remaining) { uint32_t highest_ofs; if (pull->offset > pull->relative_highest_offset) { highest_ofs = pull->offset; } else { highest_ofs = pull->relative_highest_offset; } if (highest_ofs < pull->data_size) { err = ndr_pull_error(pull, NDR_ERR_UNREAD_BYTES, "not all bytes consumed ofs[%u] size[%u]", highest_ofs, pull->data_size); TALLOC_FREE(pull); PyErr_SetNdrError(err); return NULL; } } TALLOC_FREE(pull); Py_RETURN_NONE; } static PyObject *py_BrowserrQueryOtherDomains_ndr_unpack_in(PyObject *py_obj, PyObject *args, PyObject *kwargs) { DATA_BLOB blob; Py_ssize_t blob_length = 0; const char * const kwnames[] = { "data_blob", "bigendian", "ndr64", "allow_remaining", NULL }; PyObject *bigendian_obj = NULL; PyObject *ndr64_obj = NULL; uint32_t ndr_pull_flags = LIBNDR_FLAG_REF_ALLOC; PyObject *allow_remaining_obj = NULL; bool allow_remaining = false; if (!PyArg_ParseTupleAndKeywords(args, kwargs, PYARG_BYTES_LEN "|OOO:__ndr_unpack_in__", discard_const_p(char *, kwnames), &blob.data, &blob_length, &bigendian_obj, &ndr64_obj, &allow_remaining_obj)) { return NULL; } blob.length = blob_length; if (bigendian_obj && PyObject_IsTrue(bigendian_obj)) { ndr_pull_flags |= LIBNDR_FLAG_BIGENDIAN; } if (ndr64_obj && PyObject_IsTrue(ndr64_obj)) { ndr_pull_flags |= LIBNDR_FLAG_NDR64; } if (allow_remaining_obj && PyObject_IsTrue(allow_remaining_obj)) { allow_remaining = true; } return py_BrowserrQueryOtherDomains_ndr_unpack(py_obj, &blob, NDR_IN, ndr_pull_flags, allow_remaining); } static PyObject *py_BrowserrQueryOtherDomains_ndr_unpack_out(PyObject *py_obj, PyObject *args, PyObject *kwargs) { DATA_BLOB blob; Py_ssize_t blob_length = 0; const char * const kwnames[] = { "data_blob", "bigendian", "ndr64", "allow_remaining", NULL }; PyObject *bigendian_obj = NULL; PyObject *ndr64_obj = NULL; uint32_t ndr_pull_flags = LIBNDR_FLAG_REF_ALLOC; PyObject *allow_remaining_obj = NULL; bool allow_remaining = false; if (!PyArg_ParseTupleAndKeywords(args, kwargs, PYARG_BYTES_LEN "|OOO:__ndr_unpack_out__", discard_const_p(char *, kwnames), &blob.data, &blob_length, &bigendian_obj, &ndr64_obj, &allow_remaining_obj)) { return NULL; } blob.length = blob_length; if (bigendian_obj && PyObject_IsTrue(bigendian_obj)) { ndr_pull_flags |= LIBNDR_FLAG_BIGENDIAN; } if (ndr64_obj && PyObject_IsTrue(ndr64_obj)) { ndr_pull_flags |= LIBNDR_FLAG_NDR64; } if (allow_remaining_obj && PyObject_IsTrue(allow_remaining_obj)) { allow_remaining = true; } return py_BrowserrQueryOtherDomains_ndr_unpack(py_obj, &blob, NDR_OUT, ndr_pull_flags, allow_remaining); } static PyObject *py_BrowserrQueryOtherDomains_ndr_print(PyObject *py_obj, const char *name, int ndr_inout_flags) { const struct ndr_interface_call *call = NULL; struct BrowserrQueryOtherDomains *object = (struct BrowserrQueryOtherDomains *)pytalloc_get_ptr(py_obj); PyObject *ret; char *retstr; if (ndr_table_browser.num_calls < 3) { PyErr_SetString(PyExc_TypeError, "Internal Error, ndr_interface_call missing for py_BrowserrQueryOtherDomains_ndr_print"); return NULL; } call = &ndr_table_browser.calls[2]; retstr = ndr_print_function_string(pytalloc_get_mem_ctx(py_obj), call->ndr_print, name, ndr_inout_flags, object); ret = PyUnicode_FromString(retstr); TALLOC_FREE(retstr); return ret; } static PyObject *py_BrowserrQueryOtherDomains_ndr_print_in(PyObject *py_obj, PyObject *Py_UNUSED(ignored)) { return py_BrowserrQueryOtherDomains_ndr_print(py_obj, "BrowserrQueryOtherDomains_in", NDR_IN); } static PyObject *py_BrowserrQueryOtherDomains_ndr_print_out(PyObject *py_obj, PyObject *Py_UNUSED(ignored)) { return py_BrowserrQueryOtherDomains_ndr_print(py_obj, "BrowserrQueryOtherDomains_out", NDR_OUT); } static PyMethodDef py_BrowserrQueryOtherDomains_methods[] = { { "opnum", (PyCFunction)py_BrowserrQueryOtherDomains_ndr_opnum, METH_NOARGS|METH_CLASS, "browser.BrowserrQueryOtherDomains.opnum() -> 2 (0x02) " }, { "__ndr_pack_in__", PY_DISCARD_FUNC_SIG(PyCFunction,py_BrowserrQueryOtherDomains_ndr_pack_in), METH_VARARGS|METH_KEYWORDS, "S.ndr_pack_in(object, bigendian=False, ndr64=False) -> blob\nNDR pack input" }, { "__ndr_pack_out__", PY_DISCARD_FUNC_SIG(PyCFunction,py_BrowserrQueryOtherDomains_ndr_pack_out), METH_VARARGS|METH_KEYWORDS, "S.ndr_pack_out(object, bigendian=False, ndr64=False) -> blob\nNDR pack output" }, { "__ndr_unpack_in__", PY_DISCARD_FUNC_SIG(PyCFunction,py_BrowserrQueryOtherDomains_ndr_unpack_in), METH_VARARGS|METH_KEYWORDS, "S.ndr_unpack_in(class, blob, bigendian=False, ndr64=False, allow_remaining=False) -> None\nNDR unpack input" }, { "__ndr_unpack_out__", PY_DISCARD_FUNC_SIG(PyCFunction,py_BrowserrQueryOtherDomains_ndr_unpack_out), METH_VARARGS|METH_KEYWORDS, "S.ndr_unpack_out(class, blob, bigendian=False, ndr64=False, allow_remaining=False) -> None\nNDR unpack output" }, { "__ndr_print_in__", (PyCFunction)py_BrowserrQueryOtherDomains_ndr_print_in, METH_NOARGS, "S.ndr_print_in(object) -> None\nNDR print input" }, { "__ndr_print_out__", (PyCFunction)py_BrowserrQueryOtherDomains_ndr_print_out, METH_NOARGS, "S.ndr_print_out(object) -> None\nNDR print output" }, { NULL, NULL, 0, NULL } }; static PyTypeObject BrowserrQueryOtherDomains_Type = { PyVarObject_HEAD_INIT(NULL, 0) .tp_name = "browser.BrowserrQueryOtherDomains", .tp_getset = py_BrowserrQueryOtherDomains_getsetters, .tp_methods = py_BrowserrQueryOtherDomains_methods, .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, .tp_new = py_BrowserrQueryOtherDomains_new, }; static bool pack_py_BrowserrQueryOtherDomains_args_in(PyObject *args, PyObject *kwargs, struct BrowserrQueryOtherDomains *r) { PyObject *py_server_unc; PyObject *py_info; const char *kwnames[] = { "server_unc", "info", NULL }; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO:BrowserrQueryOtherDomains", discard_const_p(char *, kwnames), &py_server_unc, &py_info)) { return false; } if (py_server_unc == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct r->in.server_unc"); return false; } if (py_server_unc == Py_None) { r->in.server_unc = NULL; } else { r->in.server_unc = NULL; { const char *test_str; const char *talloc_str; PyObject *unicode = NULL; if (PyUnicode_Check(py_server_unc)) { unicode = PyUnicode_AsEncodedString(py_server_unc, "utf-8", "ignore"); if (unicode == NULL) { PyErr_NoMemory(); return false; } test_str = PyBytes_AS_STRING(unicode); } else if (PyBytes_Check(py_server_unc)) { test_str = PyBytes_AS_STRING(py_server_unc); } else { PyErr_Format(PyExc_TypeError, "Expected string or unicode object, got %s", Py_TYPE(py_server_unc)->tp_name); return false; } talloc_str = talloc_strdup(r, test_str); if (unicode != NULL) { Py_DECREF(unicode); } if (talloc_str == NULL) { PyErr_NoMemory(); return false; } r->in.server_unc = talloc_str; } } if (py_info == NULL) { PyErr_Format(PyExc_AttributeError, "Cannot delete NDR object: struct r->in.info"); return false; } r->in.info = talloc_ptrtype(r, r->in.info); if (r->in.info == NULL) { PyErr_NoMemory(); return false; } PY_CHECK_TYPE(&BrowserrSrvInfo_Type, py_info, return false;); if (talloc_reference(r, pytalloc_get_mem_ctx(py_info)) == NULL) { PyErr_NoMemory(); return false; } r->in.info = (struct BrowserrSrvInfo *)pytalloc_get_ptr(py_info); return true; } static PyObject *unpack_py_BrowserrQueryOtherDomains_args_out(struct BrowserrQueryOtherDomains *r) { PyObject *result; PyObject *py_info; PyObject *py_total_entries; result = PyTuple_New(2); py_info = pytalloc_reference_ex(&BrowserrSrvInfo_Type, r->out.info, r->out.info); PyTuple_SetItem(result, 0, py_info); py_total_entries = PyLong_FromUnsignedLongLong((uint32_t)*r->out.total_entries); PyTuple_SetItem(result, 1, py_total_entries); if (!W_ERROR_IS_OK(r->out.result)) { PyErr_SetWERROR(r->out.result); return NULL; } return result; } const struct PyNdrRpcMethodDef py_ndr_browser_methods[] = { { "BrowserrQueryOtherDomains", "S.BrowserrQueryOtherDomains(server_unc, info) -> (info, total_entries)", (py_dcerpc_call_fn)dcerpc_BrowserrQueryOtherDomains_r, (py_data_pack_fn)pack_py_BrowserrQueryOtherDomains_args_in, (py_data_unpack_fn)unpack_py_BrowserrQueryOtherDomains_args_out, 2, &ndr_table_browser }, {0} }; static PyObject *interface_browser_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { return py_dcerpc_interface_init_helper(type, args, kwargs, &ndr_table_browser); } #define PY_DOC_BROWSER "Browsing" static PyTypeObject browser_InterfaceType = { PyVarObject_HEAD_INIT(NULL, 0) .tp_name = "browser.browser", .tp_basicsize = sizeof(dcerpc_InterfaceObject), .tp_doc = "browser(binding, lp_ctx=None, credentials=None) -> connection\n" "\n" "binding should be a DCE/RPC binding string (for example: ncacn_ip_tcp:127.0.0.1)\n" "lp_ctx should be a path to a smb.conf file or a param.LoadParm object\n" "credentials should be a credentials.Credentials object.\n\n"PY_DOC_BROWSER, .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, .tp_new = interface_browser_new, }; static PyObject *syntax_browser_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { return py_dcerpc_syntax_init_helper(type, args, kwargs, &ndr_table_browser.syntax_id); } #define PY_DOC_BROWSER_SYNTAX "Browsing" static PyTypeObject browser_SyntaxType = { PyVarObject_HEAD_INIT(NULL, 0) .tp_name = "browser.browser_abstract_syntax", .tp_doc = "browser_abstract_syntax()\n"PY_DOC_BROWSER_SYNTAX, .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, .tp_new = syntax_browser_new, }; static PyMethodDef browser_methods[] = { { NULL, NULL, 0, NULL } }; static struct PyModuleDef moduledef = { PyModuleDef_HEAD_INIT, .m_name = "browser", .m_doc = "browser DCE/RPC", .m_size = -1, .m_methods = browser_methods, }; MODULE_INIT_FUNC(browser) { PyObject *m = NULL; PyObject *dep_samba_dcerpc_srvsvc = NULL; PyObject *dep_talloc = NULL; PyObject *dep_samba_dcerpc_base = NULL; PyObject *dep_samba_dcerpc_misc = NULL; dep_samba_dcerpc_srvsvc = PyImport_ImportModule("samba.dcerpc.srvsvc"); if (dep_samba_dcerpc_srvsvc == NULL) goto out; dep_talloc = PyImport_ImportModule("talloc"); if (dep_talloc == NULL) goto out; dep_samba_dcerpc_base = PyImport_ImportModule("samba.dcerpc.base"); if (dep_samba_dcerpc_base == NULL) goto out; dep_samba_dcerpc_misc = PyImport_ImportModule("samba.dcerpc.misc"); if (dep_samba_dcerpc_misc == NULL) goto out; srvsvc_NetSrvInfo100_Type = (PyTypeObject *)PyObject_GetAttrString(dep_samba_dcerpc_srvsvc, "NetSrvInfo100"); if (srvsvc_NetSrvInfo100_Type == NULL) goto out; BaseObject_Type = (PyTypeObject *)PyObject_GetAttrString(dep_talloc, "BaseObject"); if (BaseObject_Type == NULL) goto out; srvsvc_NetSrvInfo101_Type = (PyTypeObject *)PyObject_GetAttrString(dep_samba_dcerpc_srvsvc, "NetSrvInfo101"); if (srvsvc_NetSrvInfo101_Type == NULL) goto out; ClientConnection_Type = (PyTypeObject *)PyObject_GetAttrString(dep_samba_dcerpc_base, "ClientConnection"); if (ClientConnection_Type == NULL) goto out; ndr_syntax_id_Type = (PyTypeObject *)PyObject_GetAttrString(dep_samba_dcerpc_misc, "ndr_syntax_id"); if (ndr_syntax_id_Type == NULL) goto out; BrowserrSrvInfo100Ctr_Type.tp_base = BaseObject_Type; BrowserrSrvInfo100Ctr_Type.tp_basicsize = pytalloc_BaseObject_size(); BrowserrSrvInfo101Ctr_Type.tp_base = BaseObject_Type; BrowserrSrvInfo101Ctr_Type.tp_basicsize = pytalloc_BaseObject_size(); BrowserrSrvInfoUnion_Type.tp_base = BaseObject_Type; BrowserrSrvInfoUnion_Type.tp_basicsize = pytalloc_BaseObject_size(); BrowserrSrvInfo_Type.tp_base = BaseObject_Type; BrowserrSrvInfo_Type.tp_basicsize = pytalloc_BaseObject_size(); BrowserrQueryOtherDomains_Type.tp_base = BaseObject_Type; BrowserrQueryOtherDomains_Type.tp_basicsize = pytalloc_BaseObject_size(); browser_InterfaceType.tp_base = ClientConnection_Type; browser_SyntaxType.tp_base = ndr_syntax_id_Type; browser_SyntaxType.tp_basicsize = pytalloc_BaseObject_size(); if (PyType_Ready(&BrowserrSrvInfo100Ctr_Type) < 0) goto out; if (PyType_Ready(&BrowserrSrvInfo101Ctr_Type) < 0) goto out; if (PyType_Ready(&BrowserrSrvInfoUnion_Type) < 0) goto out; if (PyType_Ready(&BrowserrSrvInfo_Type) < 0) goto out; if (PyType_Ready(&BrowserrQueryOtherDomains_Type) < 0) goto out; if (PyType_Ready(&browser_InterfaceType) < 0) goto out; if (PyType_Ready(&browser_SyntaxType) < 0) goto out; if (!PyInterface_AddNdrRpcMethods(&browser_InterfaceType, py_ndr_browser_methods)) return NULL; #ifdef PY_BROWSERRSRVINFO100CTR_PATCH PY_BROWSERRSRVINFO100CTR_PATCH(&BrowserrSrvInfo100Ctr_Type); #endif #ifdef PY_BROWSERRSRVINFO101CTR_PATCH PY_BROWSERRSRVINFO101CTR_PATCH(&BrowserrSrvInfo101Ctr_Type); #endif #ifdef PY_BROWSERRSRVINFOUNION_PATCH PY_BROWSERRSRVINFOUNION_PATCH(&BrowserrSrvInfoUnion_Type); #endif #ifdef PY_BROWSERRSRVINFO_PATCH PY_BROWSERRSRVINFO_PATCH(&BrowserrSrvInfo_Type); #endif #ifdef PY_BROWSERRQUERYOTHERDOMAINS_PATCH PY_BROWSERRQUERYOTHERDOMAINS_PATCH(&BrowserrQueryOtherDomains_Type); #endif #ifdef PY_BROWSER_PATCH PY_BROWSER_PATCH(&browser_InterfaceType); #endif #ifdef PY_BROWSER_ABSTRACT_SYNTAX_PATCH PY_BROWSER_ABSTRACT_SYNTAX_PATCH(&browser_SyntaxType); #endif #ifdef PY_ABSTRACT_SYNTAX_PATCH PY_ABSTRACT_SYNTAX_PATCH(&browser_SyntaxType); #endif m = PyModule_Create(&moduledef); if (m == NULL) goto out; Py_INCREF((PyObject *)(void *)&BrowserrSrvInfo100Ctr_Type); PyModule_AddObject(m, "BrowserrSrvInfo100Ctr", (PyObject *)(void *)&BrowserrSrvInfo100Ctr_Type); Py_INCREF((PyObject *)(void *)&BrowserrSrvInfo101Ctr_Type); PyModule_AddObject(m, "BrowserrSrvInfo101Ctr", (PyObject *)(void *)&BrowserrSrvInfo101Ctr_Type); Py_INCREF((PyObject *)(void *)&BrowserrSrvInfoUnion_Type); PyModule_AddObject(m, "BrowserrSrvInfoUnion", (PyObject *)(void *)&BrowserrSrvInfoUnion_Type); Py_INCREF((PyObject *)(void *)&BrowserrSrvInfo_Type); PyModule_AddObject(m, "BrowserrSrvInfo", (PyObject *)(void *)&BrowserrSrvInfo_Type); Py_INCREF((PyObject *)(void *)&BrowserrQueryOtherDomains_Type); PyModule_AddObject(m, "BrowserrQueryOtherDomains", (PyObject *)(void *)&BrowserrQueryOtherDomains_Type); Py_INCREF((PyObject *)(void *)&browser_InterfaceType); PyModule_AddObject(m, "browser", (PyObject *)(void *)&browser_InterfaceType); Py_INCREF((PyObject *)(void *)&browser_SyntaxType); PyModule_AddObject(m, "browser_abstract_syntax", (PyObject *)(void *)&browser_SyntaxType); Py_INCREF((PyObject *)(void *)&browser_SyntaxType); PyModule_AddObject(m, "abstract_syntax", (PyObject *)(void *)&browser_SyntaxType); #ifdef PY_MOD_BROWSER_PATCH PY_MOD_BROWSER_PATCH(m); #endif out: Py_XDECREF(dep_samba_dcerpc_srvsvc); Py_XDECREF(dep_talloc); Py_XDECREF(dep_samba_dcerpc_base); Py_XDECREF(dep_samba_dcerpc_misc); return m; }