Просмотр исходного кода

Do not remove a not working SrvRecords server twice

The PopFromSrvRecs() already removed the entry from the active
list, so the extra SrvRecords.erase() was incorrect.

Git-Dch: ignore
Michael Vogt лет назад: 10
Родитель
Сommit
0b7d34ee9d
1 измененных файлов с 1 добавлено и 3 удалено
  1. 1 3
      methods/connect.cc

+ 1 - 3
methods/connect.cc

@@ -288,12 +288,10 @@ bool Connect(std::string Host,int Port,const char *Service,
    // try to connect in the priority order of the srv records
    while(SrvRecords.size() > 0)
    {
+      // PopFromSrvRecs will also remove the server
       Host = PopFromSrvRecs(SrvRecords).target;
       if(ConnectToHostname(Host, Port, Service, DefPort, Fd, TimeOut, Owner))
          return true;
-
-      // we couldn't connect to this one, use the next
-      SrvRecords.erase(SrvRecords.begin());
    }
 
    return false;