diff options
author | Alex Trotsenko <[email protected]> | 2021-05-26 18:05:36 +0300 |
---|---|---|
committer | Alex Trotsenko <[email protected]> | 2021-05-31 21:50:07 +0300 |
commit | 86542054d035c43f926eeb96b517108eb825831e (patch) | |
tree | 10029d15b5a7ada0f856c8d09c8b048c41520bd0 /src/network/socket/qnativesocketengine_unix.cpp | |
parent | 59a0539690f8fb5b97d9d2241167cd5fac236950 (diff) |
Consolidate debug string generation
Several QIODevice subclasses use the qt_prettyDebug() function to get
a printable representation of the buffer data for debug output.
Rather than having this feature statically implemented in each
respective file, this patch introduces a generic function in the
QtDebugUtils namespace. Accordingly, some inaccuracies in the
use-cases have been corrected.
Change-Id: I1a8465cab08c8acf5fdcdba5085182511b1cbb7b
Reviewed-by: Oswald Buddenhagen <[email protected]>
Reviewed-by: MÃ¥rten Nordheim <[email protected]>
Diffstat (limited to 'src/network/socket/qnativesocketengine_unix.cpp')
-rw-r--r-- | src/network/socket/qnativesocketengine_unix.cpp | 49 |
1 files changed, 7 insertions, 42 deletions
diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp index 09d16fa908a..e6704a3ca44 100644 --- a/src/network/socket/qnativesocketengine_unix.cpp +++ b/src/network/socket/qnativesocketengine_unix.cpp @@ -63,8 +63,7 @@ #endif #if defined QNATIVESOCKETENGINE_DEBUG -#include <qstring.h> -#include <ctype.h> +#include <private/qdebug_p.h> #endif #include <netinet/tcp.h> @@ -76,38 +75,6 @@ QT_BEGIN_NAMESPACE -#if defined QNATIVESOCKETENGINE_DEBUG - -/* - Returns a human readable representation of the first \a len - characters in \a data. -*/ -static QByteArray qt_prettyDebug(const char *data, int len, int maxSize) -{ - if (!data) return "(null)"; - QByteArray out; - for (int i = 0; i < len; ++i) { - char c = data[i]; - if (isprint(c)) { - out += c; - } else switch (c) { - case '\n': out += "\\n"; break; - case '\r': out += "\\r"; break; - case '\t': out += "\\t"; break; - default: - QString tmp; - tmp.sprintf("\\%o", c); - out += tmp.toLatin1(); - } - } - - if (len < maxSize) - out += "..."; - - return out; -} -#endif - /* Extracts the port and address from a sockaddr, and stores them in \a port and \a addr if they are non-null. @@ -1063,7 +1030,7 @@ qint64 QNativeSocketEnginePrivate::nativeReceiveDatagram(char *data, qint64 maxS #if defined (QNATIVESOCKETENGINE_DEBUG) qDebug("QNativeSocketEnginePrivate::nativeReceiveDatagram(%p \"%s\", %lli, %s, %i) == %lli", - data, qt_prettyDebug(data, qMin(recvResult, ssize_t(16)), recvResult).data(), maxSize, + data, QtDebugUtils::toPrintable(data, recvResult, 16).constData(), maxSize, (recvResult != -1 && options != QAbstractSocketEngine::WantNone) ? header->senderAddress.toString().toLatin1().constData() : "(unknown)", (recvResult != -1 && options != QAbstractSocketEngine::WantNone) @@ -1192,7 +1159,7 @@ qint64 QNativeSocketEnginePrivate::nativeSendDatagram(const char *data, qint64 l #if defined (QNATIVESOCKETENGINE_DEBUG) qDebug("QNativeSocketEngine::sendDatagram(%p \"%s\", %lli, \"%s\", %i) == %lli", data, - qt_prettyDebug(data, qMin<int>(len, 16), len).data(), len, + QtDebugUtils::toPrintable(data, len, 16).constData(), len, header.destinationAddress.toString().toLatin1().constData(), header.destinationPort, (qint64) sentBytes); #endif @@ -1358,9 +1325,8 @@ qint64 QNativeSocketEnginePrivate::nativeWrite(const char *data, qint64 len) } #if defined (QNATIVESOCKETENGINE_DEBUG) - qDebug("QNativeSocketEnginePrivate::nativeWrite(%p \"%s\", %llu) == %i", - data, qt_prettyDebug(data, qMin((int) len, 16), - (int) len).data(), len, (int) writtenBytes); + qDebug("QNativeSocketEnginePrivate::nativeWrite(%p \"%s\", %llu) == %i", data, + QtDebugUtils::toPrintable(data, len, 16).constData(), len, (int) writtenBytes); #endif return qint64(writtenBytes); @@ -1409,9 +1375,8 @@ qint64 QNativeSocketEnginePrivate::nativeRead(char *data, qint64 maxSize) } #if defined (QNATIVESOCKETENGINE_DEBUG) - qDebug("QNativeSocketEnginePrivate::nativeRead(%p \"%s\", %llu) == %zd", - data, qt_prettyDebug(data, qMin(r, ssize_t(16)), r).data(), - maxSize, r); + qDebug("QNativeSocketEnginePrivate::nativeRead(%p \"%s\", %llu) == %zd", data, + QtDebugUtils::toPrintable(data, r, 16).constData(), maxSize, r); #endif return qint64(r); |