34
35
// CS_NAMESPACE_BEGIN
37
bool serverLessThan(const Q3Dns::Server &s1, const Q3Dns::Server &s2)
43
return a < b || (a == b && j < k);
36
46
static void sortSRVList(QList<Q3Dns::Server> &list)
38
QList<Q3Dns::Server> tmp = list;
41
while(!tmp.isEmpty()) {
42
QList<Q3Dns::Server>::Iterator p = tmp.end();
43
for(QList<Q3Dns::Server>::Iterator it = tmp.begin(); it != tmp.end(); ++it) {
47
int a = (*it).priority;
48
int b = (*p).priority;
51
if(a < b || (a == b && j < k))
48
qStableSort(list.begin(), list.end(), serverLessThan);
60
51
class SrvResolver::Private
93
void SrvResolver::resolve(const QString &server, const QString &type, const QString &proto, bool srvOnly)
99
d->srv = QString("_") + type + "._" + proto + '.' + server;
100
d->t.start(15000, true);
102
connect(d->qdns, SIGNAL(resultsReady()), SLOT(qdns_done()));
103
d->qdns->setRecordType(Q3Dns::Srv);
104
d->qdns->setLabel(d->srv);
102
107
void SrvResolver::resolve(const QString &server, const QString &type, const QString &proto)
108
d->srv = QString("_") + type + "._" + proto + '.' + server;
109
d->t.start(15000, true);
111
connect(d->qdns, SIGNAL(resultsReady()), SLOT(qdns_done()));
112
d->qdns->setRecordType(Q3Dns::Srv);
113
d->qdns->setLabel(d->srv);
109
resolve(server, type, proto, false);
116
112
void SrvResolver::resolveSrvOnly(const QString &server, const QString &type, const QString &proto)
122
d->srv = QString("_") + type + "._" + proto + '.' + server;
123
d->t.start(15000, true);
125
connect(d->qdns, SIGNAL(resultsReady()), SLOT(qdns_done()));
126
d->qdns->setRecordType(Q3Dns::Srv);
127
d->qdns->setLabel(d->srv);
114
resolve(server, type, proto, true);
130
117
void SrvResolver::next()