summaryrefslogtreecommitdiffstats
path: root/tests/manual/qdnslookup/main.cpp
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2024-04-17 11:09:58 -0700
committerThiago Macieira <thiago.macieira@intel.com>2024-05-08 21:13:47 -0700
commit4503dabfbd11c084c2781a679c9af12d5fb8f763 (patch)
tree276b12b705d46ad6c9b3343cae16eeca0e5eed78 /tests/manual/qdnslookup/main.cpp
parent503fd609881fb220ac5abe7da2fe367efd90ed4b (diff)
QDnsLookup: add support for TLSA records
[ChangeLog][QtNetwork][QDnsLookup] Added support for querying records of type TLSA, which are useful in DNS-based Authentication of Named Entities (DANE). Change-Id: I455fe22ef4ad4b2f9b01fffd17c723aa6ab7f278 Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'tests/manual/qdnslookup/main.cpp')
-rw-r--r--tests/manual/qdnslookup/main.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/tests/manual/qdnslookup/main.cpp b/tests/manual/qdnslookup/main.cpp
index 59ce2ab284..41dda45b8f 100644
--- a/tests/manual/qdnslookup/main.cpp
+++ b/tests/manual/qdnslookup/main.cpp
@@ -37,10 +37,18 @@ static QDnsLookup::Type typeFromString(QString str)
return QDnsLookup::Type(value);
}
-template <typename Enum> [[maybe_unused]] static const char *enumToKey(Enum e)
+template <typename Enum> QByteArray enumToString(Enum value)
{
QMetaEnum me = QMetaEnum::fromType<Enum>();
- return me.valueToKey(int(e));
+ QByteArray keys = me.valueToKeys(int(value));
+ if (keys.isEmpty())
+ return QByteArrayLiteral("<unknown>");
+
+ // return the last one
+ qsizetype idx = keys.lastIndexOf('|');
+ if (idx > 0)
+ return std::move(keys).sliced(idx + 1);
+ return keys;
}
static int showHelp(const char *argv0, int exitcode)
@@ -113,6 +121,14 @@ static void printAnswers(const QDnsLookup &lookup)
printf("%s ", qPrintable(QDebug::toString(data)));
puts("");
}
+
+ for (const QDnsTlsAssociationRecord &rr : lookup.tlsAssociationRecords()) {
+ printRecordCommon(rr, "TLSA");
+ printf("( %u %u %u ; %s %s %s\n\t%s )\n", quint8(rr.usage()), quint8(rr.selector()),
+ quint8(rr.matchType()), enumToString(rr.usage()).constData(),
+ enumToString(rr.selector()).constData(), enumToString(rr.matchType()).constData(),
+ rr.value().toHex().toUpper().constData());
+ }
}
static void printResults(const QDnsLookup &lookup, QElapsedTimer::Duration duration)
@@ -143,7 +159,7 @@ static void printResults(const QDnsLookup &lookup, QElapsedTimer::Duration durat
#if QT_CONFIG(ssl)
if (lookup.nameserverProtocol() != QDnsLookup::Standard) {
if (QSslConfiguration conf = lookup.sslConfiguration(); !conf.isNull()) {
- printf(" (%s %s)", enumToKey(conf.sessionProtocol()),
+ printf(" (%s %s)", enumToString(conf.sessionProtocol()).constData(),
qPrintable(conf.sessionCipher().name()));
}
}