[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-511-gf023bf9

Stefan Metzmacher metze at samba.org
Thu Feb 5 17:19:19 GMT 2009


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 <metze at samba.org>
Date:   Thu Feb 5 18:18:33 2009 +0100

    s4:libcli/smb2: fix c++ warning
    
    metze

commit 40c3ab2fbc39e2fcd2e6713ecb08fe7b5b61ba17
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 5 18:18:09 2009 +0100

    s4:auth/ntlm: fix c++ warning
    
    metze

commit e5a6eadd8214b56da34f733318a0fecaebbe5ef5
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 5 15:58:40 2009 +0100

    s4:pyregistry: fix compiler warnings
    
    metze

commit c8b9679e4091b7dc78c4288aa868f5ec923fb843
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 5 15:57:59 2009 +0100

    s4:pyauth: fix compiler warnings
    
    metze

commit ba0042fcdb028688768184d0831a9f6afb8f7269
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 5 11:18:12 2009 +0100

    s4:pyrpc: fix compiler warnings
    
    metze

commit 0872fa7b1f60aeb4e6d5bb1eb40fcba35fdf85d4
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 5 11:13:08 2009 +0100

    s4:pycredentials: fix compiler warnings
    
    metze

commit 1d22e0eceffc19a611f0bfe850f3714352f4c297
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 5 11:04:28 2009 +0100

    s4:pyldb: fix compiler warnings
    
    metze

commit ea546df5739e59a4302b09d7ba515c8b665394b7
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 5 10:04:01 2009 +0100

    s4:pyparam: fix compiler warnings
    
    metze

commit 4cb9ccd84125708613074c2371f9507755ad4115
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 5 09:39:03 2009 +0100

    s4:lib/registry: fix c++ warnings
    
    metze

commit b493bc1aa11bfd479420318f57944285182ab548
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
Date:   Thu Feb 5 09:33:16 2009 +0100

    s4:pvfs_aio: fix compiler warning
    
    metze

commit 0fe9980fa08ac488f19086d650646017acaaf6e9
Author: Stefan Metzmacher <metze at 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 <metze at samba.org>
Date:   Wed Feb 4 08:53:45 2009 +0100

    s4:pvfs: remove compiler warning
    
    metze

commit 3d6587c777408bbc1c1ecfb82750136874c5e565
Author: Stefan Metzmacher <metze at 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 <metze at 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


More information about the samba-cvs mailing list