+// Connect - Connect to a server /*{{{*/
+// ---------------------------------------------------------------------
+/* Performs a connection to the server */
+bool Connect(std::string Host,int Port,const char *Service,
+ int DefPort,int &Fd,
+ unsigned long TimeOut,pkgAcqMethod *Owner)
+{
+#if 0
+ if (_error->PendingError() == true)
+ return false;
+#endif
+
+ if(LastHost != Host || LastPort != Port)
+ {
+ SrvRecords.clear();
+ bool res = GetSrvRecords(Host, DefPort, SrvRecords);
+ }
+ if(SrvRecords.size() == 0)
+ return ConnectAfterSrvRecords(Host, Port, Service, DefPort, Fd,
+ TimeOut, Owner);
+
+ bool connected = false;
+ while(SrvRecords.size() > 0)
+ {
+ Host = SrvRecords[0].target;
+ connected = ConnectAfterSrvRecords(Host, Port, Service, DefPort, Fd,
+ TimeOut, Owner);
+ if(connected == true)
+ return true;
+
+ // we couldn't connect to this one, use the next
+ SrvRecords.erase(SrvRecords.begin());
+ }
+ return false;
+}