The branch, master has been updated via f023bf94f1cfb0523cbbd24b5a44c6ae6450f261 (commit) via 40c3ab2fbc39e2fcd2e6713ecb08fe7b5b61ba17 (commit) via e5a6eadd8214b56da34f733318a0fecaebbe5ef5 (commit) via c8b9679e4091b7dc78c4288aa868f5ec923fb843 (commit) via ba0042fcdb028688768184d0831a9f6afb8f7269 (commit) via 0872fa7b1f60aeb4e6d5bb1eb40fcba35fdf85d4 (commit) via 1d22e0eceffc19a611f0bfe850f3714352f4c297 (commit) via ea546df5739e59a4302b09d7ba515c8b665394b7 (commit) via 4cb9ccd84125708613074c2371f9507755ad4115 (commit) via b493bc1aa11bfd479420318f57944285182ab548 (commit) via d25a3c749f10647f0b73106f432eb390624cc2e1 (commit) via 0fe9980fa08ac488f19086d650646017acaaf6e9 (commit) via fdd6c106cf236150e4c5e7c6176156230c3ccfa9 (commit) via 3d6587c777408bbc1c1ecfb82750136874c5e565 (commit) via 5fbbddec353a9f809db549d21c16e5c9d9fbbd5b (commit) from 71d2287ec7740cf2089ddbef6991e7c3a80dcae0 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit f023bf94f1cfb0523cbbd24b5a44c6ae6450f261 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Feb 5 18:18:33 2009 +0100 s4:libcli/smb2: fix c++ warning metze commit 40c3ab2fbc39e2fcd2e6713ecb08fe7b5b61ba17 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Feb 5 18:18:09 2009 +0100 s4:auth/ntlm: fix c++ warning metze commit e5a6eadd8214b56da34f733318a0fecaebbe5ef5 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Feb 5 15:58:40 2009 +0100 s4:pyregistry: fix compiler warnings metze commit c8b9679e4091b7dc78c4288aa868f5ec923fb843 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Feb 5 15:57:59 2009 +0100 s4:pyauth: fix compiler warnings metze commit ba0042fcdb028688768184d0831a9f6afb8f7269 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Feb 5 11:18:12 2009 +0100 s4:pyrpc: fix compiler warnings metze commit 0872fa7b1f60aeb4e6d5bb1eb40fcba35fdf85d4 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Feb 5 11:13:08 2009 +0100 s4:pycredentials: fix compiler warnings metze commit 1d22e0eceffc19a611f0bfe850f3714352f4c297 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Feb 5 11:04:28 2009 +0100 s4:pyldb: fix compiler warnings metze commit ea546df5739e59a4302b09d7ba515c8b665394b7 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Feb 5 10:04:01 2009 +0100 s4:pyparam: fix compiler warnings metze commit 4cb9ccd84125708613074c2371f9507755ad4115 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Feb 5 09:39:03 2009 +0100 s4:lib/registry: fix c++ warnings metze commit b493bc1aa11bfd479420318f57944285182ab548 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Feb 5 09:33:59 2009 +0100 s4:build: remove not commited files under librpc/gen_ndr with make clean metze commit d25a3c749f10647f0b73106f432eb390624cc2e1 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Feb 5 09:33:16 2009 +0100 s4:pvfs_aio: fix compiler warning metze commit 0fe9980fa08ac488f19086d650646017acaaf6e9 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Feb 5 09:31:41 2009 +0100 LDAP-UPTODATEVECTOR: fix segfault against samba4 as server metze commit fdd6c106cf236150e4c5e7c6176156230c3ccfa9 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Feb 4 08:53:45 2009 +0100 s4:pvfs: remove compiler warning metze commit 3d6587c777408bbc1c1ecfb82750136874c5e565 Author: Stefan Metzmacher <me...@samba.org> Date: Wed Feb 4 08:52:41 2009 +0100 s4:pvfs: use talloc_get_type() to cast from void * metze commit 5fbbddec353a9f809db549d21c16e5c9d9fbbd5b Author: Stefan Metzmacher <me...@samba.org> Date: Wed Feb 4 08:50:46 2009 +0100 s4:pvfs: fix some talloc related compiler warnings metze ----------------------------------------------------------------------- Summary of changes: source4/auth/credentials/pycredentials.c | 49 +++++------ source4/auth/credentials/pycredentials.h | 2 +- source4/auth/ntlm/auth.c | 2 +- source4/auth/pyauth.h | 2 +- source4/lib/ldb/pyldb.c | 137 ++++++++++++++++++----------- source4/lib/registry/patchfile_preg.c | 14 ++-- source4/lib/registry/pyregistry.c | 29 ++++--- source4/lib/registry/regf.c | 2 +- source4/libcli/smb2/request.c | 2 +- source4/librpc/config.mk | 4 +- source4/librpc/rpc/pyrpc.c | 8 +- source4/ntvfs/posix/pvfs_acl.c | 2 +- source4/ntvfs/posix/pvfs_aio.c | 2 +- source4/ntvfs/posix/pvfs_flush.c | 3 +- source4/ntvfs/posix/pvfs_fsinfo.c | 3 +- source4/ntvfs/posix/pvfs_ioctl.c | 3 +- source4/ntvfs/posix/pvfs_lock.c | 6 +- source4/ntvfs/posix/pvfs_mkdir.c | 6 +- source4/ntvfs/posix/pvfs_open.c | 24 ++++-- source4/ntvfs/posix/pvfs_oplock.c | 3 +- source4/ntvfs/posix/pvfs_qfileinfo.c | 6 +- source4/ntvfs/posix/pvfs_read.c | 3 +- source4/ntvfs/posix/pvfs_rename.c | 19 +++-- source4/ntvfs/posix/pvfs_resolve.c | 4 +- source4/ntvfs/posix/pvfs_search.c | 52 ++++++++---- source4/ntvfs/posix/pvfs_seek.c | 3 +- source4/ntvfs/posix/pvfs_setfileinfo.c | 9 ++- source4/ntvfs/posix/pvfs_unlink.c | 6 +- source4/ntvfs/posix/pvfs_util.c | 2 +- source4/ntvfs/posix/pvfs_wait.c | 6 +- source4/ntvfs/posix/pvfs_write.c | 3 +- source4/ntvfs/posix/vfs_posix.c | 3 +- source4/param/pyparam.c | 30 +++--- source4/selftest/skip | 1 - source4/torture/ldap/uptodatevector.c | 1 + 35 files changed, 273 insertions(+), 178 deletions(-) Changeset truncated at 500 lines: diff --git a/source4/auth/credentials/pycredentials.c b/source4/auth/credentials/pycredentials.c index 6fcab80..3eacf9a 100644 --- a/source4/auth/credentials/pycredentials.c +++ b/source4/auth/credentials/pycredentials.c @@ -34,8 +34,7 @@ struct cli_credentials *cli_credentials_from_py_object(PyObject *py_obj) if (py_obj == Py_None) { return cli_credentials_init_anon(NULL); } - - /* FIXME: Check type? */ + return PyCredentials_AsCliCredentials(py_obj); } @@ -53,7 +52,7 @@ static PyObject *py_creds_new(PyTypeObject *type, PyObject *args, PyObject *kwar static PyObject *py_creds_get_username(py_talloc_Object *self) { - return PyString_FromStringOrNULL(cli_credentials_get_username(self->ptr)); + return PyString_FromStringOrNULL(cli_credentials_get_username(PyCredentials_AsCliCredentials(self))); } static PyObject *py_creds_set_username(py_talloc_Object *self, PyObject *args) @@ -63,12 +62,12 @@ static PyObject *py_creds_set_username(py_talloc_Object *self, PyObject *args) if (!PyArg_ParseTuple(args, "s|i", &newval, &obt)) return NULL; - return PyBool_FromLong(cli_credentials_set_username(self->ptr, newval, obt)); + return PyBool_FromLong(cli_credentials_set_username(PyCredentials_AsCliCredentials(self), newval, obt)); } static PyObject *py_creds_get_password(py_talloc_Object *self) { - return PyString_FromStringOrNULL(cli_credentials_get_password(self->ptr)); + return PyString_FromStringOrNULL(cli_credentials_get_password(PyCredentials_AsCliCredentials(self))); } @@ -79,12 +78,12 @@ static PyObject *py_creds_set_password(py_talloc_Object *self, PyObject *args) if (!PyArg_ParseTuple(args, "s|i", &newval, &obt)) return NULL; - return PyBool_FromLong(cli_credentials_set_password(self->ptr, newval, obt)); + return PyBool_FromLong(cli_credentials_set_password(PyCredentials_AsCliCredentials(self), newval, obt)); } static PyObject *py_creds_get_domain(py_talloc_Object *self) { - return PyString_FromStringOrNULL(cli_credentials_get_domain(self->ptr)); + return PyString_FromStringOrNULL(cli_credentials_get_domain(PyCredentials_AsCliCredentials(self))); } static PyObject *py_creds_set_domain(py_talloc_Object *self, PyObject *args) @@ -94,12 +93,12 @@ static PyObject *py_creds_set_domain(py_talloc_Object *self, PyObject *args) if (!PyArg_ParseTuple(args, "s|i", &newval, &obt)) return NULL; - return PyBool_FromLong(cli_credentials_set_domain(self->ptr, newval, obt)); + return PyBool_FromLong(cli_credentials_set_domain(PyCredentials_AsCliCredentials(self), newval, obt)); } static PyObject *py_creds_get_realm(py_talloc_Object *self) { - return PyString_FromStringOrNULL(cli_credentials_get_realm(self->ptr)); + return PyString_FromStringOrNULL(cli_credentials_get_realm(PyCredentials_AsCliCredentials(self))); } static PyObject *py_creds_set_realm(py_talloc_Object *self, PyObject *args) @@ -109,12 +108,12 @@ static PyObject *py_creds_set_realm(py_talloc_Object *self, PyObject *args) if (!PyArg_ParseTuple(args, "s|i", &newval, &obt)) return NULL; - return PyBool_FromLong(cli_credentials_set_realm(self->ptr, newval, obt)); + return PyBool_FromLong(cli_credentials_set_realm(PyCredentials_AsCliCredentials(self), newval, obt)); } static PyObject *py_creds_get_bind_dn(py_talloc_Object *self) { - return PyString_FromStringOrNULL(cli_credentials_get_bind_dn(self->ptr)); + return PyString_FromStringOrNULL(cli_credentials_get_bind_dn(PyCredentials_AsCliCredentials(self))); } static PyObject *py_creds_set_bind_dn(py_talloc_Object *self, PyObject *args) @@ -123,12 +122,12 @@ static PyObject *py_creds_set_bind_dn(py_talloc_Object *self, PyObject *args) if (!PyArg_ParseTuple(args, "s", &newval)) return NULL; - return PyBool_FromLong(cli_credentials_set_bind_dn(self->ptr, newval)); + return PyBool_FromLong(cli_credentials_set_bind_dn(PyCredentials_AsCliCredentials(self), newval)); } static PyObject *py_creds_get_workstation(py_talloc_Object *self) { - return PyString_FromStringOrNULL(cli_credentials_get_workstation(self->ptr)); + return PyString_FromStringOrNULL(cli_credentials_get_workstation(PyCredentials_AsCliCredentials(self))); } static PyObject *py_creds_set_workstation(py_talloc_Object *self, PyObject *args) @@ -138,33 +137,33 @@ static PyObject *py_creds_set_workstation(py_talloc_Object *self, PyObject *args if (!PyArg_ParseTuple(args, "s|i", &newval, &obt)) return NULL; - return PyBool_FromLong(cli_credentials_set_workstation(self->ptr, newval, obt)); + return PyBool_FromLong(cli_credentials_set_workstation(PyCredentials_AsCliCredentials(self), newval, obt)); } static PyObject *py_creds_is_anonymous(py_talloc_Object *self) { - return PyBool_FromLong(cli_credentials_is_anonymous(self->ptr)); + return PyBool_FromLong(cli_credentials_is_anonymous(PyCredentials_AsCliCredentials(self))); } static PyObject *py_creds_set_anonymous(py_talloc_Object *self) { - cli_credentials_set_anonymous(self->ptr); + cli_credentials_set_anonymous(PyCredentials_AsCliCredentials(self)); Py_RETURN_NONE; } static PyObject *py_creds_authentication_requested(py_talloc_Object *self) { - return PyBool_FromLong(cli_credentials_authentication_requested(self->ptr)); + return PyBool_FromLong(cli_credentials_authentication_requested(PyCredentials_AsCliCredentials(self))); } static PyObject *py_creds_wrong_password(py_talloc_Object *self) { - return PyBool_FromLong(cli_credentials_wrong_password(self->ptr)); + return PyBool_FromLong(cli_credentials_wrong_password(PyCredentials_AsCliCredentials(self))); } static PyObject *py_creds_set_cmdline_callbacks(py_talloc_Object *self) { - return PyBool_FromLong(cli_credentials_set_cmdline_callbacks(self->ptr)); + return PyBool_FromLong(cli_credentials_set_cmdline_callbacks(PyCredentials_AsCliCredentials(self))); } static PyObject *py_creds_parse_string(py_talloc_Object *self, PyObject *args) @@ -174,15 +173,15 @@ static PyObject *py_creds_parse_string(py_talloc_Object *self, PyObject *args) if (!PyArg_ParseTuple(args, "s|i", &newval, &obt)) return NULL; - cli_credentials_parse_string(self->ptr, newval, obt); + cli_credentials_parse_string(PyCredentials_AsCliCredentials(self), newval, obt); Py_RETURN_NONE; } static PyObject *py_creds_get_nt_hash(py_talloc_Object *self) { - const struct samr_Password *ntpw = cli_credentials_get_nt_hash(self->ptr, self->ptr); + const struct samr_Password *ntpw = cli_credentials_get_nt_hash(PyCredentials_AsCliCredentials(self), self->ptr); - return PyString_FromStringAndSize((char *)ntpw->hash, 16); + return PyString_FromStringAndSize(discard_const_p(char, ntpw->hash), 16); } static PyObject *py_creds_set_kerberos_state(py_talloc_Object *self, PyObject *args) @@ -191,7 +190,7 @@ static PyObject *py_creds_set_kerberos_state(py_talloc_Object *self, PyObject *a if (!PyArg_ParseTuple(args, "i", &state)) return NULL; - cli_credentials_set_kerberos_state(self->ptr, state); + cli_credentials_set_kerberos_state(PyCredentials_AsCliCredentials(self), state); Py_RETURN_NONE; } @@ -206,7 +205,7 @@ static PyObject *py_creds_guess(py_talloc_Object *self, PyObject *args) if (lp_ctx == NULL) return NULL; - cli_credentials_guess(self->ptr, lp_ctx); + cli_credentials_guess(PyCredentials_AsCliCredentials(self), lp_ctx); Py_RETURN_NONE; } @@ -223,7 +222,7 @@ static PyObject *py_creds_set_machine_account(py_talloc_Object *self, PyObject * if (lp_ctx == NULL) return NULL; - status = cli_credentials_set_machine_account(self->ptr, lp_ctx); + status = cli_credentials_set_machine_account(PyCredentials_AsCliCredentials(self), lp_ctx); PyErr_NTSTATUS_IS_ERR_RAISE(status); Py_RETURN_NONE; diff --git a/source4/auth/credentials/pycredentials.h b/source4/auth/credentials/pycredentials.h index 4424127..f2e15fa 100644 --- a/source4/auth/credentials/pycredentials.h +++ b/source4/auth/credentials/pycredentials.h @@ -25,6 +25,6 @@ PyAPI_DATA(PyTypeObject) PyCredentials; struct cli_credentials *cli_credentials_from_py_object(PyObject *py_obj); #define PyCredentials_Check(py_obj) PyObject_TypeCheck(py_obj, &PyCredentials) -#define PyCredentials_AsCliCredentials(py_obj) py_talloc_get_ptr(py_obj) +#define PyCredentials_AsCliCredentials(py_obj) py_talloc_get_type(py_obj, struct cli_credentials) #endif /* _PYCREDENTIALS_H_ */ diff --git a/source4/auth/ntlm/auth.c b/source4/auth/ntlm/auth.c index d00c812..20967a6 100644 --- a/source4/auth/ntlm/auth.c +++ b/source4/auth/ntlm/auth.c @@ -462,7 +462,7 @@ _PUBLIC_ NTSTATUS auth_register(const struct auth_operations *ops) struct auth_backend, num_backends+1); NT_STATUS_HAVE_NO_MEMORY(backends); - new_ops = talloc_memdup(backends, ops, sizeof(*ops)); + new_ops = (struct auth_operations *)talloc_memdup(backends, ops, sizeof(*ops)); NT_STATUS_HAVE_NO_MEMORY(new_ops); new_ops->name = talloc_strdup(new_ops, ops->name); NT_STATUS_HAVE_NO_MEMORY(new_ops->name); diff --git a/source4/auth/pyauth.h b/source4/auth/pyauth.h index de1c1c5..f5c6339 100644 --- a/source4/auth/pyauth.h +++ b/source4/auth/pyauth.h @@ -24,7 +24,7 @@ #include "auth/session.h" PyAPI_DATA(PyTypeObject) PyAuthSession; -#define PyAuthSession_AsSession(obj) py_talloc_get_ptr(obj) +#define PyAuthSession_AsSession(obj) py_talloc_get_type(obj, struct auth_session_info) #define PyAuthSession_Check(obj) PyObject_TypeCheck(obj, &PyAuthSession) struct auth_session_info *PyObject_AsSession(PyObject *obj); PyObject *PyAuthSession_FromSession(struct auth_session_info *session); diff --git a/source4/lib/ldb/pyldb.c b/source4/lib/ldb/pyldb.c index ef2af06..81b9609 100644 --- a/source4/lib/ldb/pyldb.c +++ b/source4/lib/ldb/pyldb.c @@ -51,8 +51,10 @@ void PyErr_SetLdbError(int ret, struct ldb_context *ldb_ctx) { if (ret == LDB_ERR_PYTHON_EXCEPTION) return; /* Python exception should already be set, just keep that */ - PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", ret, ldb_ctx == NULL?ldb_strerror(ret):ldb_errstring(ldb_ctx))); + PyErr_SetObject(PyExc_LdbError, Py_BuildValue(discard_const_p(char, "(i,s)"), + ret, ldb_ctx == NULL?ldb_strerror(ret):ldb_errstring(ldb_ctx))); } + static PyObject *PyObject_FromLdbValue(struct ldb_context *ldb_ctx, struct ldb_message_element *el, struct ldb_val *val) @@ -298,9 +300,11 @@ static PyObject *py_ldb_dn_new(PyTypeObject *type, PyObject *args, PyObject *kwa PyObject *py_ldb; struct ldb_context *ldb_ctx; PyLdbDnObject *py_ret; - const char *kwnames[] = { "ldb", "dn", NULL }; + const char * const kwnames[] = { "ldb", "dn", NULL }; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Os", (char **)kwnames, &py_ldb, &str)) + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Os", + discard_const_p(char *, kwnames), + &py_ldb, &str)) return NULL; ldb_ctx = PyLdb_AsLdbContext(py_ldb); @@ -361,8 +365,8 @@ PyTypeObject PyLdbDn = { static void py_ldb_debug(void *context, enum ldb_debug_level level, const char *fmt, va_list ap) PRINTF_ATTRIBUTE(3, 0); static void py_ldb_debug(void *context, enum ldb_debug_level level, const char *fmt, va_list ap) { - PyObject *fn = context; - PyObject_CallFunction(fn, (char *)"(i,O)", level, PyString_FromFormatV(fmt, ap)); + PyObject *fn = (PyObject *)context; + PyObject_CallFunction(fn, discard_const_p(char, "(i,O)"), level, PyString_FromFormatV(fmt, ap)); } static PyObject *py_ldb_set_debug(PyLdbObject *self, PyObject *args) @@ -488,7 +492,7 @@ static const char **PyList_AsStringList(TALLOC_CTX *mem_ctx, PyObject *list) static int py_ldb_init(PyLdbObject *self, PyObject *args, PyObject *kwargs) { - const char *kwnames[] = { "url", "flags", "options", NULL }; + const char * const kwnames[] = { "url", "flags", "options", NULL }; char *url = NULL; PyObject *py_options = Py_None; const char **options; @@ -496,8 +500,9 @@ static int py_ldb_init(PyLdbObject *self, PyObject *args, PyObject *kwargs) int ret; struct ldb_context *ldb; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ziO:Ldb.__init__", (char **)kwnames, - &url, &flags, &py_options)) + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ziO:Ldb.__init__", + discard_const_p(char *, kwnames), + &url, &flags, &py_options)) return -1; ldb = PyLdb_AsLdbContext(self); @@ -548,9 +553,11 @@ static PyObject *py_ldb_connect(PyLdbObject *self, PyObject *args, PyObject *kwa PyObject *py_options = Py_None; int ret; const char **options; - const char *kwnames[] = { "url", "flags", "options", NULL }; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|iO", (char **)kwnames, &url, &flags, - &py_options)) + const char * const kwnames[] = { "url", "flags", "options", NULL }; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|iO", + discard_const_p(char *, kwnames), + &url, &flags, &py_options)) return NULL; if (py_options == Py_None) { @@ -721,8 +728,9 @@ static PyObject *ldb_ldif_to_pyobject(struct ldb_ldif *ldif) } else { /* We don't want this attached to the 'ldb' any more */ talloc_steal(NULL, ldif); - return Py_BuildValue((char *)"(iO)", ldif->changetype, - PyLdbMessage_FromMessage(ldif->msg)); + return Py_BuildValue(discard_const_p(char, "(iO)"), + ldif->changetype, + PyLdbMessage_FromMessage(ldif->msg)); } } @@ -786,7 +794,7 @@ static PyObject *py_ldb_search(PyLdbObject *self, PyObject *args, PyObject *kwar char *expr = NULL; PyObject *py_attrs = Py_None; PyObject *py_controls = Py_None; - const char *kwnames[] = { "base", "scope", "expression", "attrs", "controls", NULL }; + const char * const kwnames[] = { "base", "scope", "expression", "attrs", "controls", NULL }; int ret; struct ldb_result *res; struct ldb_request *req; @@ -795,8 +803,9 @@ static PyObject *py_ldb_search(PyLdbObject *self, PyObject *args, PyObject *kwar struct ldb_control **parsed_controls; struct ldb_dn *base; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OizOO", (char **)kwnames, - &py_base, &scope, &expr, &py_attrs, &py_controls)) + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OizOO", + discard_const_p(char *, kwnames), + &py_base, &scope, &expr, &py_attrs, &py_controls)) return NULL; ldb_ctx = PyLdb_AsLdbContext(self); @@ -1009,7 +1018,7 @@ static PyObject *py_ldb_get_firstmodule(PyLdbObject *self, void *closure) } static PyGetSetDef py_ldb_getset[] = { - { (char *)"firstmodule", (getter)py_ldb_get_firstmodule, NULL, NULL }, + { discard_const_p(char, "firstmodule"), (getter)py_ldb_get_firstmodule, NULL, NULL }, { NULL } }; @@ -1109,10 +1118,12 @@ static PyObject *py_ldb_module_search(PyLdbModuleObject *self, PyObject *args, P PyObject *py_base, *py_tree, *py_attrs; int ret, scope; struct ldb_request *req; - const char *kwnames[] = { "base", "scope", "tree", "attrs", NULL }; + const char * const kwnames[] = { "base", "scope", "tree", "attrs", NULL }; struct ldb_module *mod; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OiOO", (char **)kwnames, - &py_base, &scope, &py_tree, &py_attrs)) + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OiOO", + discard_const_p(char *, kwnames), + &py_base, &scope, &py_tree, &py_attrs)) return NULL; mod = self->mod; @@ -1372,9 +1383,12 @@ static PyObject *py_ldb_msg_element_new(PyTypeObject *type, PyObject *args, PyOb struct ldb_message_element *el; int flags = 0; char *name = NULL; - const char *kwnames[] = { "elements", "flags", "name", NULL }; + const char * const kwnames[] = { "elements", "flags", "name", NULL }; PyLdbMessageElementObject *ret; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Ois", (char **)kwnames, &py_elements, &flags, &name)) + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|Ois", + discard_const_p(char *, kwnames), + &py_elements, &flags, &name)) return NULL; el = talloc_zero(NULL, struct ldb_message_element); @@ -1596,11 +1610,14 @@ static PyMappingMethods py_ldb_msg_mapping = { static PyObject *py_ldb_msg_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) { - const char *kwnames[] = { "dn", NULL }; + const char * const kwnames[] = { "dn", NULL }; struct ldb_message *ret; PyObject *pydn = NULL; PyLdbMessageObject *py_ret; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O", (char **)kwnames, &pydn)) + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|O", + discard_const_p(char *, kwnames), + &pydn)) return NULL; ret = ldb_msg_new(NULL); @@ -1650,7 +1667,7 @@ static int py_ldb_msg_set_dn(PyLdbMessageObject *self, PyObject *value, void *cl } static PyGetSetDef py_ldb_msg_getset[] = { - { (char *)"dn", (getter)py_ldb_msg_get_dn, (setter)py_ldb_msg_set_dn, NULL }, + { discard_const_p(char, "dn"), (getter)py_ldb_msg_get_dn, (setter)py_ldb_msg_set_dn, NULL }, { NULL } }; @@ -1714,7 +1731,7 @@ PyTypeObject PyLdbTree = { /* Ldb_module */ static int py_module_search(struct ldb_module *mod, struct ldb_request *req) { - PyObject *py_ldb = mod->private_data; + PyObject *py_ldb = (PyObject *)mod->private_data; PyObject *py_result, *py_base, *py_attrs, *py_tree; py_base = PyLdbDn_FromDn(req->op.search.base); @@ -1737,7 +1754,9 @@ static int py_module_search(struct ldb_module *mod, struct ldb_request *req) PyList_SetItem(py_attrs, i, PyString_FromString(req->op.search.attrs[i])); } - py_result = PyObject_CallMethod(py_ldb, (char *)"search", (char *)"OiOO", py_base, req->op.search.scope, py_tree, py_attrs); + py_result = PyObject_CallMethod(py_ldb, discard_const_p(char, "search"), + discard_const_p(char, "OiOO"), + py_base, req->op.search.scope, py_tree, py_attrs); Py_DECREF(py_attrs); Py_DECREF(py_tree); @@ -1759,16 +1778,18 @@ static int py_module_search(struct ldb_module *mod, struct ldb_request *req) static int py_module_add(struct ldb_module *mod, struct ldb_request *req) { - PyObject *py_ldb = mod->private_data; + PyObject *py_ldb = (PyObject *)mod->private_data; PyObject *py_result, *py_msg; - py_msg = PyLdbMessage_FromMessage((struct ldb_message *)req->op.add.message); + py_msg = PyLdbMessage_FromMessage(discard_const_p(struct ldb_message, req->op.add.message)); if (py_msg == NULL) { return LDB_ERR_OPERATIONS_ERROR; } - py_result = PyObject_CallMethod(py_ldb, (char *)"add", (char *)"O", py_msg); + py_result = PyObject_CallMethod(py_ldb, discard_const_p(char, "add"), + discard_const_p(char, "O"), + py_msg); Py_DECREF(py_msg); @@ -1783,16 +1804,18 @@ static int py_module_add(struct ldb_module *mod, struct ldb_request *req) static int py_module_modify(struct ldb_module *mod, struct ldb_request *req) { - PyObject *py_ldb = mod->private_data; + PyObject *py_ldb = (PyObject *)mod->private_data; PyObject *py_result, *py_msg; - py_msg = PyLdbMessage_FromMessage((struct ldb_message *)req->op.mod.message); + py_msg = PyLdbMessage_FromMessage(discard_const_p(struct ldb_message, req->op.mod.message)); if (py_msg == NULL) { return LDB_ERR_OPERATIONS_ERROR; } - py_result = PyObject_CallMethod(py_ldb, (char *)"modify", (char *)"O", py_msg); + py_result = PyObject_CallMethod(py_ldb, discard_const_p(char, "modify"), + discard_const_p(char, "O"), + py_msg); Py_DECREF(py_msg); @@ -1807,7 +1830,7 @@ static int py_module_modify(struct ldb_module *mod, struct ldb_request *req) static int py_module_del(struct ldb_module *mod, struct ldb_request *req) { - PyObject *py_ldb = mod->private_data; + PyObject *py_ldb = (PyObject *)mod->private_data; PyObject *py_result, *py_dn; py_dn = PyLdbDn_FromDn(req->op.del.dn); @@ -1815,7 +1838,9 @@ static int py_module_del(struct ldb_module *mod, struct ldb_request *req) if (py_dn == NULL) return LDB_ERR_OPERATIONS_ERROR; - py_result = PyObject_CallMethod(py_ldb, (char *)"delete", (char *)"O", py_dn); + py_result = PyObject_CallMethod(py_ldb, discard_const_p(char, "delete"), + discard_const_p(char, "O"), + py_dn); if (py_result == NULL) { return LDB_ERR_PYTHON_EXCEPTION; @@ -1828,7 +1853,7 @@ static int py_module_del(struct ldb_module *mod, struct ldb_request *req) static int py_module_rename(struct ldb_module *mod, struct ldb_request *req) { - PyObject *py_ldb = mod->private_data; + PyObject *py_ldb = (PyObject *)mod->private_data; PyObject *py_result, *py_olddn, *py_newdn; py_olddn = PyLdbDn_FromDn(req->op.rename.olddn); @@ -1841,7 +1866,9 @@ static int py_module_rename(struct ldb_module *mod, struct ldb_request *req) if (py_newdn == NULL) return LDB_ERR_OPERATIONS_ERROR; - py_result = PyObject_CallMethod(py_ldb, (char *)"rename", (char *)"OO", py_olddn, py_newdn); + py_result = PyObject_CallMethod(py_ldb, discard_const_p(char, "rename"), + discard_const_p(char, "OO"), + py_olddn, py_newdn); -- Samba Shared Repository