diff options
-rw-r--r-- | apt-pkg/contrib/srvrec.cc | 7 | ||||
-rw-r--r-- | apt-pkg/contrib/srvrec.h | 5 |
2 files changed, 10 insertions, 2 deletions
diff --git a/apt-pkg/contrib/srvrec.cc b/apt-pkg/contrib/srvrec.cc index d5d89fc67..352a56970 100644 --- a/apt-pkg/contrib/srvrec.cc +++ b/apt-pkg/contrib/srvrec.cc @@ -12,6 +12,8 @@ #include <arpa/nameser.h> #include <resolv.h> +#include <algorithm> + #include <apt-pkg/error.h> #include "srvrec.h" @@ -89,5 +91,10 @@ bool GetSrvRecords(std::string name, std::vector<SrvRec> &Result) Result.push_back(rec); } + // sort them + std::stable_sort(Result.begin(), Result.end()); + + // FIXME: implement weight selection as specified in RFC-2782 + return true; } diff --git a/apt-pkg/contrib/srvrec.h b/apt-pkg/contrib/srvrec.h index 583907706..78d238c46 100644 --- a/apt-pkg/contrib/srvrec.h +++ b/apt-pkg/contrib/srvrec.h @@ -21,8 +21,9 @@ class SrvRec u_int16_t weight; u_int16_t port; - // see rfc-2782 - //int random; + bool operator<(SrvRec const &other) const { + return this->priority < other.priority; + } }; bool GetSrvRecords(std::string name, std::vector<SrvRec> &Result); |