summaryrefslogtreecommitdiff
path: root/contrib/dave.patch
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/dave.patch')
-rw-r--r--contrib/dave.patch180
1 files changed, 0 insertions, 180 deletions
diff --git a/contrib/dave.patch b/contrib/dave.patch
deleted file mode 100644
index 6e41073..0000000
--- a/contrib/dave.patch
+++ /dev/null
@@ -1,180 +0,0 @@
---- _ssl.i.orig Tue Sep 18 06:06:34 2001
-+++ _ssl.i Thu Dec 12 08:57:39 2002
-@@ -238,9 +238,18 @@
- return ret;
- }
-
-+void SetWantRWError(int which) {
-+ PyObject *o = Py_BuildValue("(is)", which,
-+
-ERR_reason_error_string(ERR_get_error()));
-+ if (o != NULL) {
-+ PyErr_SetObject(_ssl_err, o);
-+ Py_DECREF(o);
-+ }
-+}
-+
- PyObject *ssl_accept(SSL *ssl) {
- PyObject *obj;
-- int r, err;
-+ int r, err, which;
- PyThreadState *_save;
-
- if (thread_mode) {
-@@ -252,14 +261,15 @@
- _save = (PyThreadState *)SSL_get_app_data(ssl);
- PyEval_RestoreThread(_save);
- }
-- switch (SSL_get_error(ssl, r)) {
-+ switch ((which = SSL_get_error(ssl, r))) {
- case SSL_ERROR_NONE:
- case SSL_ERROR_ZERO_RETURN:
- obj = PyInt_FromLong((long)1);
- break;
- case SSL_ERROR_WANT_WRITE:
- case SSL_ERROR_WANT_READ:
-- obj = PyInt_FromLong((long)0);
-+ SetWantRWError(which);
-+ obj = NULL;
- break;
- case SSL_ERROR_SSL:
- PyErr_SetString(_ssl_err,
-ERR_reason_error_string(ERR_get_error()));
-@@ -281,7 +291,7 @@
-
- PyObject *ssl_connect(SSL *ssl) {
- PyObject *obj;
-- int r, err;
-+ int r, err, which;
- PyThreadState *_save;
-
- if (thread_mode) {
-@@ -293,14 +303,15 @@
- _save = (PyThreadState *)SSL_get_app_data(ssl);
- PyEval_RestoreThread(_save);
- }
-- switch (SSL_get_error(ssl, r)) {
-+ switch ((which = SSL_get_error(ssl, r))) {
- case SSL_ERROR_NONE:
- case SSL_ERROR_ZERO_RETURN:
- obj = PyInt_FromLong((long)1);
- break;
- case SSL_ERROR_WANT_WRITE:
- case SSL_ERROR_WANT_READ:
-- obj = PyInt_FromLong((long)0);
-+ SetWantRWError(which);
-+ obj = NULL;
- break;
- case SSL_ERROR_SSL:
- PyErr_SetString(_ssl_err,
-ERR_reason_error_string(ERR_get_error()));
-@@ -327,7 +338,7 @@
- PyObject *ssl_read(SSL *ssl, int num) {
- PyObject *obj;
- void *buf;
-- int r, err;
-+ int r, err, which;
- PyThreadState *_save;
-
- if (!(buf = PyMem_Malloc(num))) {
-@@ -343,7 +354,7 @@
- _save = (PyThreadState *)SSL_get_app_data(ssl);
- PyEval_RestoreThread(_save);
- }
-- switch (SSL_get_error(ssl, r)) {
-+ switch ((which = SSL_get_error(ssl, r))) {
- case SSL_ERROR_NONE:
- case SSL_ERROR_ZERO_RETURN:
- buf = PyMem_Realloc(buf, r);
-@@ -352,8 +363,8 @@
- case SSL_ERROR_WANT_WRITE:
- case SSL_ERROR_WANT_READ:
- case SSL_ERROR_WANT_X509_LOOKUP:
-- Py_INCREF(Py_None);
-- obj = Py_None;
-+ SetWantRWError(which);
-+ obj = NULL;
- break;
- case SSL_ERROR_SSL:
- PyErr_SetString(_ssl_err,
-ERR_reason_error_string(ERR_get_error()));
-@@ -377,14 +388,14 @@
- PyObject *ssl_read_nbio(SSL *ssl, int num) {
- PyObject *obj;
- void *buf;
-- int r, err;
-+ int r, err, which;
-
- if (!(buf = PyMem_Malloc(num))) {
- PyErr_SetString(PyExc_MemoryError, "ssl_read");
- return NULL;
- }
- r = SSL_read(ssl, buf, num);
-- switch (SSL_get_error(ssl, r)) {
-+ switch ((which = SSL_get_error(ssl, r))) {
- case SSL_ERROR_NONE:
- case SSL_ERROR_ZERO_RETURN:
- buf = PyMem_Realloc(buf, r);
-@@ -392,6 +403,9 @@
- break;
- case SSL_ERROR_WANT_WRITE:
- case SSL_ERROR_WANT_READ:
-+ SetWantRWError(which);
-+ obj = NULL;
-+ break;
- case SSL_ERROR_WANT_X509_LOOKUP:
- Py_INCREF(Py_None);
- obj = Py_None;
-@@ -417,7 +431,7 @@
-
- int ssl_write(SSL *ssl, PyObject *blob) {
- const void *buf;
-- int len, r, err;
-+ int len, r, err, which;
- PyThreadState *_save;
-
- #if PYTHON_API_VERSION >= 1009
-@@ -440,12 +454,14 @@
- _save = (PyThreadState *)SSL_get_app_data(ssl);
- PyEval_RestoreThread(_save);
- }
-- switch (SSL_get_error(ssl, r)) {
-+ switch ((which = SSL_get_error(ssl, r))) {
- case SSL_ERROR_NONE:
- case SSL_ERROR_ZERO_RETURN:
- return r;
- case SSL_ERROR_WANT_WRITE:
- case SSL_ERROR_WANT_READ:
-+ SetWantRWError(which);
-+ return -1;
- case SSL_ERROR_WANT_X509_LOOKUP:
- return -1;
- case SSL_ERROR_SSL:
-@@ -466,7 +482,7 @@
-
- int ssl_write_nbio(SSL *ssl, PyObject *blob) {
- const void *buf;
-- int len, r, err;
-+ int len, r, err, which;
-
- #if PYTHON_API_VERSION >= 1009
- if (PyObject_AsReadBuffer(blob, &buf, &len) == -1)
-@@ -480,12 +496,14 @@
- buf = (const void *)PyString_AsString(blob);
- #endif
- r = SSL_write(ssl, buf, len);
-- switch (SSL_get_error(ssl, r)) {
-+ switch ((which = SSL_get_error(ssl, r))) {
- case SSL_ERROR_NONE:
- case SSL_ERROR_ZERO_RETURN:
- return r;
- case SSL_ERROR_WANT_WRITE:
- case SSL_ERROR_WANT_READ:
-+ SetWantRWError(which);
-+ return -1;
- case SSL_ERROR_WANT_X509_LOOKUP:
- return -1;
- case SSL_ERROR_SSL:
-
-
-