The branch, master has been updated via 1114b02a72c s3: libsmbclient.h: add missing time.h include via 4d65e3ad210 s4-librpc: Simplify bytes or unicode input checking in python GUID() bindings via a7633deb897 py3: Remove #define IsPy3BytesOrString(pystr) via 675ab9d6ae6 py3: Remove #define IsPy3Bytes PyBytes_Check via 5c1867ba459 py3: Remove #define PyInt_FromLong PyLong_FromLong via 4764e8b4c7e py3: Remove #define PyInt_AsLong PyLong_AsLong via cc79726d951 py3: Remove #define PyInt_Type PyLong_Type via 08a76ec0963 pidl: Remove reference to PyInt_Type from error string when we wanted a sensible Long via 79044e966cb pidl: Remove duplicate "if (PyLong_Check($cvar)" clauses via 3aea3b15381 py3: Remove #define PyInt_Check PyLong_Check from 9bdc5a67428 autobuild: Merge samba-simpleserver into samba-nt4
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 1114b02a72ce0c86a5301816560d270ec47f8be3 Author: Aurelien Aptel <aap...@suse.com> Date: Fri Mar 13 13:42:53 2020 +0100 s3: libsmbclient.h: add missing time.h include A recent change added a struct with timespec members in the public libsmbclient header. This type is defined in time.h which was not included thus making users of libsmbclient not build properly. /.../libsmbclient.h:158:18: error: field 'btime_ts' has incomplete type struct timespec btime_ts; Fixes: bf13fe0f222 ("s3: libsmbclient: Add internal/external structures needed for readdirplus.") Signed-off-by: Aurelien Aptel <aap...@suse.com> Reviewed-by: Noel Power <npo...@samba.org> Autobuild-User(master): Noel Power <npo...@samba.org> Autobuild-Date(master): Mon Mar 23 20:47:44 UTC 2020 on sn-devel-184 commit 4d65e3ad2104773b361afd35d3b8b8b7e598f91f Author: Andrew Bartlett <abart...@samba.org> Date: Sun Mar 15 10:47:32 2020 +1300 s4-librpc: Simplify bytes or unicode input checking in python GUID() bindings Signed-off-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Noel Power <npo...@samba.org> commit a7633deb8978e2417430692223047283baf30147 Author: Andrew Bartlett <abart...@samba.org> Date: Sun Mar 15 10:43:16 2020 +1300 py3: Remove #define IsPy3BytesOrString(pystr) This was (PyUnicode_Check(pystr) || PyBytes_Check(pystr)) This allows us to end the use of Python 2/3 compatability macros. The one caller will be simplified in the next commit Signed-off-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Noel Power <nopo...@samba.org> commit 675ab9d6ae6f5cd95ddde51d19774cae7ecc11ca Author: Andrew Bartlett <abart...@samba.org> Date: Sun Mar 15 10:40:46 2020 +1300 py3: Remove #define IsPy3Bytes PyBytes_Check This allows us to end the use of Python 2/3 compatability macros. Signed-off-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Noel Power <npo...@samba.org> commit 5c1867ba459c2eff0dfc99c92200aecc2d44df59 Author: Andrew Bartlett <abart...@samba.org> Date: Sun Mar 15 10:36:59 2020 +1300 py3: Remove #define PyInt_FromLong PyLong_FromLong This allows us to end the use of Python 2/3 compatability macros. Signed-off-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Noel Power commit 4764e8b4c7e459f6aa5861d26ffaec3a3026d77f Author: Andrew Bartlett <abart...@samba.org> Date: Sun Mar 15 10:32:11 2020 +1300 py3: Remove #define PyInt_AsLong PyLong_AsLong This allows us to end the use of Python 2/3 compatability macros. Signed-off-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Noel Power <npo...@samba.org> commit cc79726d95108e3d8ef612a863c2f9fffd768636 Author: Andrew Bartlett <abart...@samba.org> Date: Sun Mar 15 10:26:22 2020 +1300 py3: Remove #define PyInt_Type PyLong_Type This allows us to end the use of Python 2/3 compatability macros. Signed-off-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Noel Power <npo...@samba.org> commit 08a76ec0963049e0f2b8f855ab66ba5141472fce Author: Andrew Bartlett <abart...@samba.org> Date: Sun Mar 15 10:15:15 2020 +1300 pidl: Remove reference to PyInt_Type from error string when we wanted a sensible Long PyInt_Type is no longer a thing in Python3, we will remove the compatability reference shortly. Signed-off-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Noel Power <npo...@samba.org> commit 79044e966cbe44d60997ecbd4b44f07305d99ac2 Author: Andrew Bartlett <abart...@samba.org> Date: Sun Mar 15 10:10:24 2020 +1300 pidl: Remove duplicate "if (PyLong_Check($cvar)" clauses Since we moved to Python3, these have been dead code, and it is clearer now that we have removed the compatability define. Signed-off-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Noel Power <npo...@samba.org> commit 3aea3b15381857bf3e9a69477c487c91f1b6cbbd Author: Andrew Bartlett <abart...@samba.org> Date: Sun Mar 15 10:04:52 2020 +1300 py3: Remove #define PyInt_Check PyLong_Check This will allow us to remove some unused code in the PIDL-generated python bindings. Signed-off-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Noel Power <npo...@samba.org> ----------------------------------------------------------------------- Summary of changes: auth/credentials/pycredentials.c | 44 +++++++------- lib/ldb/pyldb.c | 7 +-- lib/tdb/pytdb.c | 17 +++--- lib/tevent/pytevent.c | 4 +- libcli/nbt/pynbt.c | 12 ++-- libcli/security/pysecurity.c | 2 +- pidl/lib/Parse/Pidl/Samba4/Python.pm | 54 +++++------------ python/py3compat.h | 22 ------- python/pyglue.c | 6 +- source3/include/libsmbclient.h | 1 + source3/libsmb/pylibsmb.c | 4 +- source3/passdb/py_passdb.c | 114 +++++++++++++++++------------------ source4/auth/gensec/pygensec.c | 18 +++--- source4/dsdb/pydsdb.c | 8 +-- source4/lib/messaging/pymessaging.c | 4 +- source4/lib/policy/pypolicy.c | 8 +-- source4/lib/registry/pyregistry.c | 18 +++--- source4/lib/wmi/wmi.i | 4 +- source4/lib/wmi/wmi_wrap.c | 22 +++---- source4/librpc/ndr/py_misc.c | 13 ++-- source4/librpc/ndr/py_security.c | 2 +- source4/librpc/rpc/pyrpc.c | 4 +- source4/param/provision.c | 8 +-- source4/param/pyparam.c | 2 +- 24 files changed, 173 insertions(+), 225 deletions(-) Changeset truncated at 500 lines: diff --git a/auth/credentials/pycredentials.c b/auth/credentials/pycredentials.c index 7427e286dca..fad07b84ba7 100644 --- a/auth/credentials/pycredentials.c +++ b/auth/credentials/pycredentials.c @@ -556,7 +556,7 @@ static PyObject *py_creds_get_kerberos_state(PyObject *self, PyObject *unused) return NULL; } state = cli_credentials_get_kerberos_state(creds); - return PyInt_FromLong(state); + return PyLong_FromLong(state); } static PyObject *py_creds_set_kerberos_state(PyObject *self, PyObject *args) @@ -822,7 +822,7 @@ static PyObject *py_creds_get_gensec_features(PyObject *self, PyObject *args) } gensec_features = cli_credentials_get_gensec_features(creds); - return PyInt_FromLong(gensec_features); + return PyLong_FromLong(gensec_features); } static PyObject *py_creds_new_client_authenticator(PyObject *self, @@ -893,7 +893,7 @@ static PyObject *py_creds_get_secure_channel_type(PyObject *self, PyObject *args channel_type = cli_credentials_get_secure_channel_type(creds); - return PyInt_FromLong(channel_type); + return PyLong_FromLong(channel_type); } static PyObject *py_creds_encrypt_netr_crypt_password(PyObject *self, @@ -1274,25 +1274,25 @@ MODULE_INIT_FUNC(credentials) if (m == NULL) return NULL; - PyModule_AddObject(m, "UNINITIALISED", PyInt_FromLong(CRED_UNINITIALISED)); - PyModule_AddObject(m, "CALLBACK", PyInt_FromLong(CRED_CALLBACK)); - PyModule_AddObject(m, "GUESS_ENV", PyInt_FromLong(CRED_GUESS_ENV)); - PyModule_AddObject(m, "GUESS_FILE", PyInt_FromLong(CRED_GUESS_FILE)); - PyModule_AddObject(m, "CALLBACK_RESULT", PyInt_FromLong(CRED_CALLBACK_RESULT)); - PyModule_AddObject(m, "SPECIFIED", PyInt_FromLong(CRED_SPECIFIED)); - - PyModule_AddObject(m, "AUTO_USE_KERBEROS", PyInt_FromLong(CRED_AUTO_USE_KERBEROS)); - PyModule_AddObject(m, "DONT_USE_KERBEROS", PyInt_FromLong(CRED_DONT_USE_KERBEROS)); - PyModule_AddObject(m, "MUST_USE_KERBEROS", PyInt_FromLong(CRED_MUST_USE_KERBEROS)); - - PyModule_AddObject(m, "AUTO_KRB_FORWARDABLE", PyInt_FromLong(CRED_AUTO_KRB_FORWARDABLE)); - PyModule_AddObject(m, "NO_KRB_FORWARDABLE", PyInt_FromLong(CRED_NO_KRB_FORWARDABLE)); - PyModule_AddObject(m, "FORCE_KRB_FORWARDABLE", PyInt_FromLong(CRED_FORCE_KRB_FORWARDABLE)); - PyModule_AddObject(m, "CLI_CRED_NTLM2", PyInt_FromLong(CLI_CRED_NTLM2)); - PyModule_AddObject(m, "CLI_CRED_NTLMv2_AUTH", PyInt_FromLong(CLI_CRED_NTLMv2_AUTH)); - PyModule_AddObject(m, "CLI_CRED_LANMAN_AUTH", PyInt_FromLong(CLI_CRED_LANMAN_AUTH)); - PyModule_AddObject(m, "CLI_CRED_NTLM_AUTH", PyInt_FromLong(CLI_CRED_NTLM_AUTH)); - PyModule_AddObject(m, "CLI_CRED_CLEAR_AUTH", PyInt_FromLong(CLI_CRED_CLEAR_AUTH)); + PyModule_AddObject(m, "UNINITIALISED", PyLong_FromLong(CRED_UNINITIALISED)); + PyModule_AddObject(m, "CALLBACK", PyLong_FromLong(CRED_CALLBACK)); + PyModule_AddObject(m, "GUESS_ENV", PyLong_FromLong(CRED_GUESS_ENV)); + PyModule_AddObject(m, "GUESS_FILE", PyLong_FromLong(CRED_GUESS_FILE)); + PyModule_AddObject(m, "CALLBACK_RESULT", PyLong_FromLong(CRED_CALLBACK_RESULT)); + PyModule_AddObject(m, "SPECIFIED", PyLong_FromLong(CRED_SPECIFIED)); + + PyModule_AddObject(m, "AUTO_USE_KERBEROS", PyLong_FromLong(CRED_AUTO_USE_KERBEROS)); + PyModule_AddObject(m, "DONT_USE_KERBEROS", PyLong_FromLong(CRED_DONT_USE_KERBEROS)); + PyModule_AddObject(m, "MUST_USE_KERBEROS", PyLong_FromLong(CRED_MUST_USE_KERBEROS)); + + PyModule_AddObject(m, "AUTO_KRB_FORWARDABLE", PyLong_FromLong(CRED_AUTO_KRB_FORWARDABLE)); + PyModule_AddObject(m, "NO_KRB_FORWARDABLE", PyLong_FromLong(CRED_NO_KRB_FORWARDABLE)); + PyModule_AddObject(m, "FORCE_KRB_FORWARDABLE", PyLong_FromLong(CRED_FORCE_KRB_FORWARDABLE)); + PyModule_AddObject(m, "CLI_CRED_NTLM2", PyLong_FromLong(CLI_CRED_NTLM2)); + PyModule_AddObject(m, "CLI_CRED_NTLMv2_AUTH", PyLong_FromLong(CLI_CRED_NTLMv2_AUTH)); + PyModule_AddObject(m, "CLI_CRED_LANMAN_AUTH", PyLong_FromLong(CLI_CRED_LANMAN_AUTH)); + PyModule_AddObject(m, "CLI_CRED_NTLM_AUTH", PyLong_FromLong(CLI_CRED_NTLM_AUTH)); + PyModule_AddObject(m, "CLI_CRED_CLEAR_AUTH", PyLong_FromLong(CLI_CRED_CLEAR_AUTH)); Py_INCREF(&PyCredentials); PyModule_AddObject(m, "Credentials", (PyObject *)&PyCredentials); diff --git a/lib/ldb/pyldb.c b/lib/ldb/pyldb.c index a6069be46a9..eb879b98984 100644 --- a/lib/ldb/pyldb.c +++ b/lib/ldb/pyldb.c @@ -85,7 +85,6 @@ static struct ldb_message_element *PyObject_AsMessageElement( static PyTypeObject PyLdbBytesType; #if PY_MAJOR_VERSION >= 3 -#define PyInt_FromLong PyLong_FromLong #define PYARG_STR_UNI "es" @@ -2541,7 +2540,7 @@ static PyObject *py_ldb_result_get_count(PyLdbResultObject *self, void *closure) return NULL; } size = PyList_Size(self->msgs); - return PyInt_FromLong(size); + return PyLong_FromLong(size); } static PyGetSetDef py_ldb_result_getset[] = { @@ -3080,7 +3079,7 @@ static PyObject *py_ldb_msg_element_get(PyLdbMessageElementObject *self, PyObjec static PyObject *py_ldb_msg_element_flags(PyLdbMessageElementObject *self, PyObject *args) { struct ldb_message_element *el = pyldb_MessageElement_AsMessageElement(self); - return PyInt_FromLong(el->flags); + return PyLong_FromLong(el->flags); } static PyObject *py_ldb_msg_element_set_flags(PyLdbMessageElementObject *self, PyObject *args) @@ -4204,7 +4203,7 @@ static PyObject *py_string_to_time(PyObject *module, PyObject *args) if (!PyArg_ParseTuple(args, "s", &str)) return NULL; - return PyInt_FromLong(ldb_string_to_time(str)); + return PyLong_FromLong(ldb_string_to_time(str)); } static PyObject *py_valid_attr_name(PyObject *self, PyObject *args) diff --git a/lib/tdb/pytdb.c b/lib/tdb/pytdb.c index 74e80f95ec5..5ff1ef83117 100644 --- a/lib/tdb/pytdb.c +++ b/lib/tdb/pytdb.c @@ -32,9 +32,6 @@ #include <tdb.h> #if PY_MAJOR_VERSION >= 3 -#define PyInt_FromLong PyLong_FromLong -#define PyInt_Check PyLong_Check -#define PyInt_AsLong PyLong_AsLong #define Py_TPFLAGS_HAVE_ITER 0 #endif @@ -549,34 +546,34 @@ static PyMethodDef tdb_object_methods[] = { static PyObject *obj_get_hash_size(PyTdbObject *self, void *closure) { PyErr_TDB_RAISE_IF_CLOSED(self); - return PyInt_FromLong(tdb_hash_size(self->ctx)); + return PyLong_FromLong(tdb_hash_size(self->ctx)); } static int obj_set_max_dead(PyTdbObject *self, PyObject *max_dead, void *closure) { PyErr_TDB_RAISE_RETURN_MINUS_1_IF_CLOSED(self); - if (!PyInt_Check(max_dead)) + if (!PyLong_Check(max_dead)) return -1; - tdb_set_max_dead(self->ctx, PyInt_AsLong(max_dead)); + tdb_set_max_dead(self->ctx, PyLong_AsLong(max_dead)); return 0; } static PyObject *obj_get_map_size(PyTdbObject *self, void *closure) { PyErr_TDB_RAISE_IF_CLOSED(self); - return PyInt_FromLong(tdb_map_size(self->ctx)); + return PyLong_FromLong(tdb_map_size(self->ctx)); } static PyObject *obj_get_freelist_size(PyTdbObject *self, void *closure) { PyErr_TDB_RAISE_IF_CLOSED(self); - return PyInt_FromLong(tdb_freelist_size(self->ctx)); + return PyLong_FromLong(tdb_freelist_size(self->ctx)); } static PyObject *obj_get_flags(PyTdbObject *self, void *closure) { PyErr_TDB_RAISE_IF_CLOSED(self); - return PyInt_FromLong(tdb_get_flags(self->ctx)); + return PyLong_FromLong(tdb_get_flags(self->ctx)); } static PyObject *obj_get_filename(PyTdbObject *self, void *closure) @@ -588,7 +585,7 @@ static PyObject *obj_get_filename(PyTdbObject *self, void *closure) static PyObject *obj_get_seqnum(PyTdbObject *self, void *closure) { PyErr_TDB_RAISE_IF_CLOSED(self); - return PyInt_FromLong(tdb_get_seqnum(self->ctx)); + return PyLong_FromLong(tdb_get_seqnum(self->ctx)); } static PyObject *obj_get_text(PyTdbObject *self, void *closure) diff --git a/lib/tevent/pytevent.c b/lib/tevent/pytevent.c index 73a9bd736e7..dde6bd010c7 100644 --- a/lib/tevent/pytevent.c +++ b/lib/tevent/pytevent.c @@ -27,7 +27,7 @@ #include <tevent.h> #if PY_MAJOR_VERSION >= 3 -#define PyInt_FromLong PyLong_FromLong +#define PyLong_FromLong PyLong_FromLong #endif /* discard signature of 'func' in favour of 'target_sig' */ @@ -709,7 +709,7 @@ static PyTypeObject TeventReq_Type = { static PyObject *py_tevent_queue_get_length(TeventQueue_Object *self, PyObject *Py_UNUSED(ignored)) { - return PyInt_FromLong(tevent_queue_length(self->queue)); + return PyLong_FromLong(tevent_queue_length(self->queue)); } static PyGetSetDef py_tevent_queue_getsetters[] = { diff --git a/libcli/nbt/pynbt.c b/libcli/nbt/pynbt.c index a562f6dcb5e..d8a781b5290 100644 --- a/libcli/nbt/pynbt.c +++ b/libcli/nbt/pynbt.c @@ -79,8 +79,8 @@ static bool PyObject_AsDestinationTuple(PyObject *obj, const char **dest_addr, u if (PyTuple_Size(obj) == 1) { *dest_port = NBT_NAME_SERVICE_PORT; return true; - } else if (PyInt_Check(PyTuple_GetItem(obj, 1))) { - *dest_port = PyInt_AsLong(PyTuple_GetItem(obj, 1)); + } else if (PyLong_Check(PyTuple_GetItem(obj, 1))) { + *dest_port = PyLong_AsLong(PyTuple_GetItem(obj, 1)); return true; } else { PyErr_SetString(PyExc_TypeError, "Destination tuple second element not a port"); @@ -100,7 +100,7 @@ static bool PyObject_AsNBTName(PyObject *obj, struct nbt_name_socket *name_socke if (name->name == NULL) { goto err; } - name->type = PyInt_AsLong(PyTuple_GetItem(obj, 1)); + name->type = PyLong_AsLong(PyTuple_GetItem(obj, 1)); if (name->type == -1 && PyErr_Occurred()) { goto err; } @@ -115,7 +115,7 @@ static bool PyObject_AsNBTName(PyObject *obj, struct nbt_name_socket *name_socke if (name->scope == NULL) { goto err; } - name->type = PyInt_AsLong(PyTuple_GetItem(obj, 2)); + name->type = PyLong_AsLong(PyTuple_GetItem(obj, 2)); if (name->type == -1 && PyErr_Occurred()) { goto err; } @@ -322,7 +322,7 @@ static PyObject *py_nbt_name_register(PyObject *self, PyObject *args, PyObject * PyTuple_SetItem(ret, 2, PyUnicode_FromString(io.out.reply_addr)); - PyTuple_SetItem(ret, 3, PyInt_FromLong(io.out.rcode)); + PyTuple_SetItem(ret, 3, PyLong_FromLong(io.out.rcode)); return ret; } @@ -378,7 +378,7 @@ static PyObject *py_nbt_name_refresh(PyObject *self, PyObject *args, PyObject *k PyTuple_SetItem(ret, 2, PyUnicode_FromString(io.out.reply_addr)); - PyTuple_SetItem(ret, 3, PyInt_FromLong(io.out.rcode)); + PyTuple_SetItem(ret, 3, PyLong_FromLong(io.out.rcode)); return ret; } diff --git a/libcli/security/pysecurity.c b/libcli/security/pysecurity.c index fcef6007d54..9f4aa147c6a 100644 --- a/libcli/security/pysecurity.c +++ b/libcli/security/pysecurity.c @@ -65,7 +65,7 @@ static PyObject *py_se_access_check(PyObject *module, PyObject *args, PyObject * PyErr_NTSTATUS_IS_ERR_RAISE(nt_status); } - return PyInt_FromLong(access_granted); + return PyLong_FromLong(access_granted); } static PyMethodDef py_security_methods[] = { diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm index 84d4dade512..12ddd046062 100644 --- a/pidl/lib/Parse/Pidl/Samba4/Python.pm +++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm @@ -538,7 +538,7 @@ sub PythonFunctionStruct($$$$) $self->indent; $self->pidl(""); $self->pidl(""); - $self->pidl("return PyInt_FromLong($fn->{OPNUM});"); + $self->pidl("return PyLong_FromLong($fn->{OPNUM});"); $self->deindent; $self->pidl("}"); $self->pidl(""); @@ -1747,21 +1747,8 @@ sub ConvertObjectFromPythonData($$$$$$;$$) $self->pidl("}"); $self->pidl("if (test_var > uint_max) {"); $self->indent; - $self->pidl("PyErr_Format(PyExc_OverflowError, \"Expected type %s or %s within range 0 - %llu, got %llu\",\\"); - $self->pidl(" PyInt_Type.tp_name, PyLong_Type.tp_name, uint_max, test_var);"); - $self->pidl($fail); - $self->deindent; - $self->pidl("}"); - $self->pidl("$target = test_var;"); - $self->deindent; - $self->pidl("} else if (PyInt_Check($cvar)) {"); - $self->indent; - $self->pidl("long test_var;"); - $self->pidl("test_var = PyInt_AsLong($cvar);"); - $self->pidl("if (test_var < 0 || (unsigned long long)test_var > uint_max) {"); - $self->indent; - $self->pidl("PyErr_Format(PyExc_OverflowError, \"Expected type %s or %s within range 0 - %llu, got %ld\",\\"); - $self->pidl(" PyInt_Type.tp_name, PyLong_Type.tp_name, uint_max, test_var);"); + $self->pidl("PyErr_Format(PyExc_OverflowError, \"Expected type %s within range 0 - %llu, got %llu\",\\"); + $self->pidl(" PyLong_Type.tp_name, uint_max, test_var);"); $self->pidl($fail); $self->deindent; $self->pidl("}"); @@ -1769,8 +1756,8 @@ sub ConvertObjectFromPythonData($$$$$$;$$) $self->deindent; $self->pidl("} else {"); $self->indent; - $self->pidl("PyErr_Format(PyExc_TypeError, \"Expected type %s or %s\",\\"); - $self->pidl(" PyInt_Type.tp_name, PyLong_Type.tp_name);"); + $self->pidl("PyErr_Format(PyExc_TypeError, \"Expected type %s\",\\"); + $self->pidl(" PyLong_Type.tp_name);"); $self->pidl($fail); $self->deindent; $self->pidl("}"); @@ -1799,21 +1786,8 @@ sub ConvertObjectFromPythonData($$$$$$;$$) $self->pidl("}"); $self->pidl("if (test_var < int_min || test_var > int_max) {"); $self->indent; - $self->pidl("PyErr_Format(PyExc_OverflowError, \"Expected type %s or %s within range %lld - %lld, got %lld\",\\"); - $self->pidl(" PyInt_Type.tp_name, PyLong_Type.tp_name, int_min, int_max, test_var);"); - $self->pidl($fail); - $self->deindent; - $self->pidl("}"); - $self->pidl("$target = test_var;"); - $self->deindent; - $self->pidl("} else if (PyInt_Check($cvar)) {"); - $self->indent; - $self->pidl("long test_var;"); - $self->pidl("test_var = PyInt_AsLong($cvar);"); - $self->pidl("if (test_var < int_min || test_var > int_max) {"); - $self->indent; - $self->pidl("PyErr_Format(PyExc_OverflowError, \"Expected type %s or %s within range %lld - %lld, got %ld\",\\"); - $self->pidl(" PyInt_Type.tp_name, PyLong_Type.tp_name, int_min, int_max, test_var);"); + $self->pidl("PyErr_Format(PyExc_OverflowError, \"Expected type %s within range %lld - %lld, got %lld\",\\"); + $self->pidl(" PyLong_Type.tp_name, int_min, int_max, test_var);"); $self->pidl($fail); $self->deindent; $self->pidl("}"); @@ -1821,8 +1795,8 @@ sub ConvertObjectFromPythonData($$$$$$;$$) $self->deindent; $self->pidl("} else {"); $self->indent; - $self->pidl("PyErr_Format(PyExc_TypeError, \"Expected type %s or %s\",\\"); - $self->pidl(" PyInt_Type.tp_name, PyLong_Type.tp_name);"); + $self->pidl("PyErr_Format(PyExc_TypeError, \"Expected type %s\",\\"); + $self->pidl(" PyLong_Type.tp_name);"); $self->pidl($fail); $self->deindent; $self->pidl("}"); @@ -1882,17 +1856,17 @@ sub ConvertObjectFromPythonData($$$$$$;$$) } if ($actual_ctype->{TYPE} eq "SCALAR" and $actual_ctype->{NAME} eq "NTSTATUS") { - $self->pidl("$target = NT_STATUS(PyInt_AsLong($cvar));"); + $self->pidl("$target = NT_STATUS(PyLong_AsLong($cvar));"); return; } if ($actual_ctype->{TYPE} eq "SCALAR" and $actual_ctype->{NAME} eq "WERROR") { - $self->pidl("$target = W_ERROR(PyInt_AsLong($cvar));"); + $self->pidl("$target = W_ERROR(PyLong_AsLong($cvar));"); return; } if ($actual_ctype->{TYPE} eq "SCALAR" and $actual_ctype->{NAME} eq "HRESULT") { - $self->pidl("$target = HRES_ERROR(PyInt_AsLong($cvar));"); + $self->pidl("$target = HRES_ERROR(PyLong_AsLong($cvar));"); return; } @@ -2065,7 +2039,7 @@ sub ConvertScalarToPython($$$$) } if ($ctypename =~ /^(char|int|int8|int16|int32|time_t)$/) { - return "PyInt_FromLong($cvar)"; + return "PyLong_FromLong($cvar)"; } # Needed to ensure unsigned values in a 32 or 16 bit enum is @@ -2077,7 +2051,7 @@ sub ConvertScalarToPython($$$$) } if ($ctypename =~ /^(uint|uint8|uint16|uint1632)$/) { - return "PyInt_FromLong((uint16_t)$cvar)"; + return "PyLong_FromLong((uint16_t)$cvar)"; } if ($ctypename eq "DATA_BLOB") { diff --git a/python/py3compat.h b/python/py3compat.h index d2adb24c6a2..d09947bf90d 100644 --- a/python/py3compat.h +++ b/python/py3compat.h @@ -29,8 +29,6 @@ * "PyBytes_*" work like in Python 3; on Python 2 they are aliased to their * PyString_* names. * - * "PyInt_*" works like PyLong_* - * * Syntax for module initialization is as in Python 3, except the entrypoint * function definition and declaration: * PyMODINIT_FUNC PyInit_modulename(void); @@ -57,26 +55,6 @@ /* description of bytes objects */ #define PY_DESC_PY3_BYTES "bytes" -/* Determine if object is really bytes, for code that runs - * in python2 & python3 (note: PyBytes_Check is replaced by - * PyString_Check in python2) so care needs to be taken when - * writing code that will check if incoming type is bytes that - * will work as expected in python2 & python3 - */ - -#define IsPy3Bytes PyBytes_Check - -#define IsPy3BytesOrString(pystr) \ - (PyUnicode_Check(pystr) || PyBytes_Check(pystr)) - - -/* Ints */ - -#define PyInt_Type PyLong_Type -#define PyInt_Check PyLong_Check -#define PyInt_FromLong PyLong_FromLong -#define PyInt_AsLong PyLong_AsLong - /* Module init */ #define MODULE_INIT_FUNC(name) \ diff --git a/python/pyglue.c b/python/pyglue.c index 83b968bad8c..ef1419fbd88 100644 --- a/python/pyglue.c +++ b/python/pyglue.c @@ -131,7 +131,7 @@ static PyObject *py_nttime2unix(PyObject *self, PyObject *args) t = nt_time_to_unix(nt); - return PyInt_FromLong((uint64_t)t); + return PyLong_FromLong((uint64_t)t); } static PyObject *py_nttime2string(PyObject *self, PyObject *args) @@ -169,7 +169,7 @@ static PyObject *py_set_debug_level(PyObject *self, PyObject *args) static PyObject *py_get_debug_level(PyObject *self, PyObject *Py_UNUSED(ignored)) { - return PyInt_FromLong(debuglevel_get()); + return PyLong_FromLong(debuglevel_get()); } static PyObject *py_fault_setup(PyObject *self, @@ -314,7 +314,7 @@ static PyObject *py_strcasecmp_m(PyObject *self, PyObject *args) cmp_result = strcasecmp_m(s1, s2); PyMem_Free(discard_const_p(char, s1)); PyMem_Free(discard_const_p(char, s2)); - return PyInt_FromLong(cmp_result); + return PyLong_FromLong(cmp_result); } static PyObject *py_strstr_m(PyObject *self, PyObject *args) diff --git a/source3/include/libsmbclient.h b/source3/include/libsmbclient.h index 5846550eb29..c47e7c2a872 100644 --- a/source3/include/libsmbclient.h +++ b/source3/include/libsmbclient.h @@ -78,6 +78,7 @@ extern "C" { #include <sys/statvfs.h> #include <stdint.h> #include <fcntl.h> +#include <time.h> #include <utime.h> #define SMBC_BASE_FD 10000 /* smallest file descriptor returned */ diff --git a/source3/libsmb/pylibsmb.c b/source3/libsmb/pylibsmb.c index c09df917251..e61ca5c1993 100644 --- a/source3/libsmb/pylibsmb.c +++ b/source3/libsmb/pylibsmb.c @@ -682,7 +682,7 @@ static PyObject *py_cli_settimeout(struct py_cli_state *self, PyObject *args) omsecs = cli_set_timeout(self->cli, nmsecs); - return PyInt_FromLong(omsecs); + return PyLong_FromLong(omsecs); } static PyObject *py_cli_create(struct py_cli_state *self, PyObject *args, @@ -1683,7 +1683,7 @@ MODULE_INIT_FUNC(libsmb_samba_internal) Py_INCREF(&py_cli_state_type); PyModule_AddObject(m, "Conn", (PyObject *)&py_cli_state_type); -#define ADD_FLAGS(val) PyModule_AddObject(m, #val, PyInt_FromLong(val)) +#define ADD_FLAGS(val) PyModule_AddObject(m, #val, PyLong_FromLong(val)) ADD_FLAGS(FILE_ATTRIBUTE_READONLY); ADD_FLAGS(FILE_ATTRIBUTE_HIDDEN); diff --git a/source3/passdb/py_passdb.c b/source3/passdb/py_passdb.c index f7e80c47397..6b7d2a0a7b8 100644 --- a/source3/passdb/py_passdb.c +++ b/source3/passdb/py_passdb.c @@ -62,7 +62,7 @@ static PyObject *py_samu_get_logon_time(PyObject *obj, void *closure) struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj); PyObject *py_logon_time; -- Samba Shared Repository