OSDN Git Service

deal with QHostInfo FIXME
authorIvailo Monev <xakepa10@laimg.moc>
Sat, 23 Nov 2019 15:27:35 +0000 (15:27 +0000)
committerIvailo Monev <xakepa10@laimg.moc>
Sat, 23 Nov 2019 15:29:10 +0000 (15:29 +0000)
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
src/network/kernel/qhostinfo.cpp

index eb47dc7..bc8bc44 100644 (file)
@@ -196,12 +196,20 @@ QHostInfo QHostInfo::fromName(const QString &name)
     qDebug("QHostInfo::fromName(\"%s\")",name.toLatin1().constData());
 #endif
 
-    QHostInfo hostInfo = QHostInfoAgent::fromName(name);
     QHostInfoCache* cache = globalHostInfoCache();
     if (cache && cache->isEnabled()) {
-        cache->put(name, hostInfo);
+        bool valid = false;
+        QHostInfo info = cache->get(name, &valid);
+        if (valid) {
+            return info;
+        }
     }
-    return hostInfo;
+
+    QHostInfo info = QHostInfoAgent::fromName(name);
+    if (cache && cache->isEnabled()) {
+        cache->put(name, info);
+    }
+    return info;
 }
 
 /*!
@@ -427,10 +435,6 @@ QHostInfo QHostInfoCache::get(const QString &name, bool *valid) const
         return element->info;
     }
 
-    // FIXME idea:
-    // if too old but not expired, trigger a new lookup
-    // to freshen our cache
-
     return QHostInfo();
 }