python: fix build with OpenSSL 1.1.0
Addresses issue from here: https://github.com/openwrt/packages/issues/7367#issuecomment-437685598 The SSL module in Python doesn't handle properly all the combinations of NPN between all OpenSSL & LibreSSL versions. This patch fixes this. Also pushed a report & proposal upstream to Python: https://bugs.python.org/issue35264 Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
This commit is contained in:
parent
4e0438f5a9
commit
5bc39702fb
2 changed files with 23 additions and 1 deletions
|
@ -12,7 +12,7 @@ include ../python-version.mk
|
|||
|
||||
PKG_NAME:=python
|
||||
PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=https://www.python.org/ftp/python/$(PKG_VERSION)
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
|
||||
index a96c419260..c80437eef7 100644
|
||||
--- a/Modules/_ssl.c
|
||||
+++ b/Modules/_ssl.c
|
||||
@@ -1586,7 +1586,7 @@ static PyObject *PySSL_version(PySSLSocket *self)
|
||||
return PyUnicode_FromString(version);
|
||||
}
|
||||
|
||||
-#if defined(OPENSSL_NPN_NEGOTIATED) && !defined(OPENSSL_NO_NEXTPROTONEG)
|
||||
+#if HAVE_NPN
|
||||
static PyObject *PySSL_selected_npn_protocol(PySSLSocket *self) {
|
||||
const unsigned char *out;
|
||||
unsigned int outlen;
|
||||
@@ -2114,7 +2114,7 @@ static PyMethodDef PySSLMethods[] = {
|
||||
PySSL_peercert_doc},
|
||||
{"cipher", (PyCFunction)PySSL_cipher, METH_NOARGS},
|
||||
{"version", (PyCFunction)PySSL_version, METH_NOARGS},
|
||||
-#ifdef OPENSSL_NPN_NEGOTIATED
|
||||
+#if HAVE_NPN
|
||||
{"selected_npn_protocol", (PyCFunction)PySSL_selected_npn_protocol, METH_NOARGS},
|
||||
#endif
|
||||
#if HAVE_ALPN
|
Loading…
Reference in a new issue