]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/srvrec.cc
arpa/nameser.h, unlike nameser.h, uses NS_ prefix.
[apt.git] / apt-pkg / contrib / srvrec.cc
index be159bad932f40e08a046e96b2d83e1fac239ce1..cafee1acf960067ca98d187e8e9143d5156c8816 100644 (file)
@@ -50,7 +50,7 @@ bool GetSrvRecords(std::string host, int port, std::vector<SrvRec> &Result)
 
 bool GetSrvRecords(std::string name, std::vector<SrvRec> &Result)
 {
-   unsigned char answer[PACKETSZ];
+   unsigned char answer[NS_PACKETSZ];
    int answer_len, compressed_name_len;
    int answer_count;
 
@@ -77,7 +77,7 @@ bool GetSrvRecords(std::string name, std::vector<SrvRec> &Result)
       return _error->Warning("dn_skipname failed %i", compressed_name_len);
 
    // pt points to the first answer record, go over all of them now
-   unsigned char *pt = answer+sizeof(HEADER)+compressed_name_len+QFIXEDSZ;
+   unsigned char *pt = answer+sizeof(HEADER)+compressed_name_len+NS_QFIXEDSZ;
    while ((int)Result.size() < answer_count && pt < answer+answer_len)
    {
       u_int16_t type, klass, priority, weight, port, dlen;
@@ -185,7 +185,7 @@ SrvRec PopFromSrvRecs(std::vector<SrvRec> &Recs)
         [&I](SrvRec const &J) { return I->priority != J.priority; });
 
    // clock seems random enough.
-   I += clock() % std::distance(I, J);
+   I += std::max(static_cast<clock_t>(0), clock()) % std::distance(I, J);
    SrvRec const selected = std::move(*I);
    Recs.erase(I);