genode/repos/libports/src/lib/qt5/patches/qt5_qtnetwork.patch
Christian Prochaska 85919d29e2 qt5: update to version 5.6.2
Issue #2424
2017-05-31 13:16:18 +02:00

106 lines
3.6 KiB
Diff

qt5_qtnetwork.patch
From: Christian Prochaska <christian.prochaska@genode-labs.com>
---
qtbase/src/network/access/qhttpnetworkreply.cpp | 8 ++++++++
qtbase/src/network/socket/qnet_unix_p.h | 10 ++++++++++
qtbase/src/network/ssl/qsslconfiguration_p.h | 9 +++++++++
qtbase/src/network/ssl/qsslsocket_openssl.cpp | 3 +++
4 files changed, 30 insertions(+)
diff --git a/qtbase/src/network/access/qhttpnetworkreply.cpp b/qtbase/src/network/access/qhttpnetworkreply.cpp
index f1b0a84..eae866e 100644
--- a/qtbase/src/network/access/qhttpnetworkreply.cpp
+++ b/qtbase/src/network/access/qhttpnetworkreply.cpp
@@ -247,8 +247,16 @@ void QHttpNetworkReply::setReadBufferSize(qint64 size)
bool QHttpNetworkReply::supportsUserProvidedDownloadBuffer()
{
+#ifdef Q_OS_GENODE
+ /*
+ * Without this change Arora shows garbage when loading, for example,
+ * www.genode.org
+ */
+ return false;
+#else
Q_D(QHttpNetworkReply);
return (!d->isChunked() && !d->autoDecompress && d->bodyLength > 0 && d->statusCode == 200);
+#endif
}
void QHttpNetworkReply::setUserProvidedDownloadBuffer(char* b)
diff --git a/qtbase/src/network/socket/qnet_unix_p.h b/qtbase/src/network/socket/qnet_unix_p.h
index 1481f56..63ca9a8 100644
--- a/qtbase/src/network/socket/qnet_unix_p.h
+++ b/qtbase/src/network/socket/qnet_unix_p.h
@@ -179,6 +179,10 @@ static inline in_addr_t qt_safe_inet_addr(const char *cp)
static inline int qt_safe_sendmsg(int sockfd, const struct msghdr *msg, int flags)
{
+#ifdef Q_OS_GENODE
+ qWarning("qt_safe_sendmsg(): not implemented");
+ return -1;
+#else
#ifdef MSG_NOSIGNAL
flags |= MSG_NOSIGNAL;
#else
@@ -188,14 +192,20 @@ static inline int qt_safe_sendmsg(int sockfd, const struct msghdr *msg, int flag
int ret;
EINTR_LOOP(ret, ::sendmsg(sockfd, msg, flags));
return ret;
+#endif /* Q_OS_GENODE */
}
static inline int qt_safe_recvmsg(int sockfd, struct msghdr *msg, int flags)
{
+#ifdef Q_OS_GENODE
+ qWarning("qt_safe_recvmsg(): not implemented");
+ return -1;
+#else
int ret;
EINTR_LOOP(ret, ::recvmsg(sockfd, msg, flags));
return ret;
+#endif /* Q_OS_GENODE */
}
QT_END_NAMESPACE
diff --git a/qtbase/src/network/ssl/qsslconfiguration_p.h b/qtbase/src/network/ssl/qsslconfiguration_p.h
index 3fd1252..56251ca 100644
--- a/qtbase/src/network/ssl/qsslconfiguration_p.h
+++ b/qtbase/src/network/ssl/qsslconfiguration_p.h
@@ -76,7 +76,16 @@ public:
QSslConfigurationPrivate()
: sessionProtocol(QSsl::UnknownProtocol),
protocol(QSsl::SecureProtocols),
+#ifdef Q_OS_GENODE
+ /*
+ * With enabled peer verification, currently often a 'handshake error'
+ * occurs. This patch disables the peer verification until a fix for
+ * the handshake problem has been found.
+ */
+ peerVerifyMode(QSslSocket::VerifyNone),
+#else
peerVerifyMode(QSslSocket::AutoVerifyPeer),
+#endif
peerVerifyDepth(0),
allowRootCertOnDemandLoading(true),
peerSessionShared(false),
diff --git a/qtbase/src/network/ssl/qsslsocket_openssl.cpp b/qtbase/src/network/ssl/qsslsocket_openssl.cpp
index 82644c1..1701cf4 100644
--- a/qtbase/src/network/ssl/qsslsocket_openssl.cpp
+++ b/qtbase/src/network/ssl/qsslsocket_openssl.cpp
@@ -481,7 +481,10 @@ bool QSslSocketPrivate::ensureLibraryLoaded()
if (q_SSL_library_init() != 1)
return false;
q_SSL_load_error_strings();
+#ifndef Q_OS_GENODE
+ /* FIXME: currently, on Genode this function causes 'exit(1)' */
q_OpenSSL_add_all_algorithms();
+#endif
#if OPENSSL_VERSION_NUMBER >= 0x10001000L
if (q_SSLeay() >= 0x10001000L)