]> git.saurik.com Git - apt.git/blobdiff - methods/connect.cc
abort connection on '.' target replies in SRV
[apt.git] / methods / connect.cc
index f768169d1aceec08cb8d7a1458ccfcd80dc82ed2..c57e57bd46ab530c4573eae68bb26cc705f7a0e5 100644 (file)
@@ -278,7 +278,13 @@ bool Connect(std::string Host,int Port,const char *Service,
    {
       SrvRecords.clear();
       if (_config->FindB("Acquire::EnableSrvRecords", true) == true)
+      {
          GetSrvRecords(Host, DefPort, SrvRecords);
+        // RFC2782 defines that a lonely '.' target is an abort reason
+        if (SrvRecords.size() == 1 && SrvRecords[0].target.empty())
+           return _error->Error("SRV records for %s indicate that "
+                 "%s service is not available at this domain", Host.c_str(), Service);
+      }
    }
 
    size_t stackSize = 0;