packages/lang/python/python/patches/011-fix-ssl-build-use-have-npn.patch
Alexandru Ardelean 5bc39702fb 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>
2018-11-16 15:35:42 +02:00

22 lines
813 B
Diff

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