]> git.saurik.com Git - apt.git/blame - apt-pkg/contrib/srvrec.h
improve CheckDropPrivsMustBeDisabled further
[apt.git] / apt-pkg / contrib / srvrec.h
CommitLineData
f106fecc
MV
1// -*- mode: cpp; mode: fold -*-
2// Description /*{{{*/
3/* ######################################################################
4
5 SRV record support
cdeb54d4 6
f106fecc
MV
7 ##################################################################### */
8 /*}}}*/
9#ifndef SRVREC_H
10#define SRVREC_H
11
12#include <arpa/nameser.h>
13#include <vector>
14#include <string>
15
16class SrvRec
17{
18 public:
19 std::string target;
20 u_int16_t priority;
21 u_int16_t weight;
22 u_int16_t port;
23
e5f34ad3
MV
24 // each server is assigned a interval [start, end] in the space of [0, max]
25 int random_number_range_start;
26 int random_number_range_end;
27 int random_number_range_max;
28
8194f976
MV
29 bool operator<(SrvRec const &other) const {
30 return this->priority < other.priority;
31 }
f106fecc
MV
32};
33
a01695e8
MV
34/** \brief Get SRV records from host/port (builds the query string internally)
35 */
f106fecc
MV
36bool GetSrvRecords(std::string name, std::vector<SrvRec> &Result);
37
a01695e8
MV
38/** \brief Get SRV records for query string like: _http._tcp.example.com
39 */
40bool GetSrvRecords(std::string host, int port, std::vector<SrvRec> &Result);
41
c29dbdff
MV
42/** \brief Pop a single SRV record from the vector of SrvRec taking
43 * priority and weight into account
44 */
45SrvRec PopFromSrvRecs(std::vector<SrvRec> &Recs);
46
f106fecc 47#endif