diff options
author | Oleg Pudeyev <oleg@bsdpower.com> | 2014-06-24 15:06:55 -0400 |
---|---|---|
committer | Oleg Pudeyev <oleg@bsdpower.com> | 2014-06-24 15:08:08 -0400 |
commit | d5bc4e7a4d79cd413d5e4bc466d84b0fa060d071 (patch) | |
tree | 3b2aabc4c335d78d63eebf4b222c28edec71bba8 /src/multi.c | |
parent | 6f766acda7686a26e7471051c4a166d6cf2ebbcd (diff) | |
download | pycurl-d5bc4e7a4d79cd413d5e4bc466d84b0fa060d071.tar.gz |
Prohibit (de)serialization of Curl* objects.
This code seems to be necessary on Python 3.
On Python 2, serialization was already not working.
Diffstat (limited to 'src/multi.c')
-rw-r--r-- | src/multi.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/multi.c b/src/multi.c index f902caf..ea1c79c 100644 --- a/src/multi.c +++ b/src/multi.c @@ -734,6 +734,20 @@ do_multi_select(CurlMultiObject *self, PyObject *args) } +static PyObject *do_curlmulti_getstate(CurlMultiObject *self) +{ + PyErr_SetString(PyExc_TypeError, "CurlMulti objects do not support serialization"); + return NULL; +} + + +static PyObject *do_curlmulti_setstate(CurlMultiObject *self, PyObject *args) +{ + PyErr_SetString(PyExc_TypeError, "CurlMulti objects do not support deserialization"); + return NULL; +} + + /************************************************************************* // type definitions **************************************************************************/ @@ -753,6 +767,8 @@ PYCURL_INTERNAL PyMethodDef curlmultiobject_methods[] = { {"assign", (PyCFunction)do_multi_assign, METH_VARARGS, NULL}, {"remove_handle", (PyCFunction)do_multi_remove_handle, METH_VARARGS, multi_remove_handle_doc}, {"select", (PyCFunction)do_multi_select, METH_VARARGS, multi_select_doc}, + {"__getstate__", (PyCFunction)do_curlmulti_getstate, METH_NOARGS, NULL}, + {"__setstate__", (PyCFunction)do_curlmulti_setstate, METH_VARARGS, NULL}, {NULL, NULL, 0, NULL} }; |