diff options
Diffstat (limited to 'examples/network/dnslookup/dnslookup.cpp')
-rw-r--r-- | examples/network/dnslookup/dnslookup.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/examples/network/dnslookup/dnslookup.cpp b/examples/network/dnslookup/dnslookup.cpp index 77e8abc927..202a5f9580 100644 --- a/examples/network/dnslookup/dnslookup.cpp +++ b/examples/network/dnslookup/dnslookup.cpp @@ -50,7 +50,7 @@ static void usage() { printf("Qt DNS example - performs DNS lookups\n" - "Usage: dnslookup [-t <type>] name\n\n"); + "Usage: dnslookup [-t <type>] [-s nameserver] name\n\n"); } DnsManager::DnsManager() @@ -93,6 +93,17 @@ void DnsManager::execute() return; } } + if (args.size() > 1 && args.first() == "-s") { + args.takeFirst(); + const QString ns = args.takeFirst(); + QHostAddress nameserver(ns); + if (nameserver.isNull() || nameserver.protocol() == QAbstractSocket::UnknownNetworkLayerProtocol) { + printf("Bad nameserver address: %s\n", qPrintable(ns)); + QCoreApplication::instance()->quit(); + return; + } + dns->setNameserver(nameserver); + } if (args.isEmpty()) { usage(); QCoreApplication::instance()->quit(); |