along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
+#include "in-addr-util.h"
+
typedef struct DnsServer DnsServer;
typedef enum DnsServerSource DnsServerSource;
-#include "in-addr-util.h"
-#include "resolved.h"
-#include "resolved-link.h"
-#include "resolved-dns-server.h"
-
-enum DnsServerSource {
+typedef enum DnsServerType {
DNS_SERVER_SYSTEM,
+ DNS_SERVER_FALLBACK,
DNS_SERVER_LINK,
- DNS_SERVER_DHCP,
- _DNS_SERVER_SOURCE_MAX
-};
+} DnsServerType;
+
+#include "resolved-manager.h"
+#include "resolved-link.h"
struct DnsServer {
Manager *manager;
- DnsServerSource source;
-
- unsigned char family;
- union in_addr_union address;
- bool marked;
+ DnsServerType type;
Link *link;
+ int family;
+ union in_addr_union address;
+
+ bool marked:1;
+
LIST_FIELDS(DnsServer, servers);
};
int dns_server_new(
Manager *m,
DnsServer **s,
- DnsServerSource source,
+ DnsServerType type,
Link *l,
- unsigned char family,
- union in_addr_union *in_addr);
+ int family,
+ const union in_addr_union *address);
DnsServer* dns_server_free(DnsServer *s);
+
+extern const struct hash_ops dns_server_hash_ops;