Blame src/core/dns/nm-dns-plugin.h

Packit Service 5ffa24
/* SPDX-License-Identifier: GPL-2.0-or-later */
Packit Service 5ffa24
/*
Packit Service 5ffa24
 * Copyright (C) 2010 Red Hat, Inc.
Packit Service 5ffa24
 */
Packit Service 5ffa24
Packit Service 5ffa24
#ifndef __NM_DNS_PLUGIN_H__
Packit Service 5ffa24
#define __NM_DNS_PLUGIN_H__
Packit Service 5ffa24
Packit Service 5ffa24
#include "nm-dns-manager.h"
Packit Service 5ffa24
#include "nm-config-data.h"
Packit Service 5ffa24
Packit Service 5ffa24
#define NM_TYPE_DNS_PLUGIN (nm_dns_plugin_get_type())
Packit Service 5ffa24
#define NM_DNS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NM_TYPE_DNS_PLUGIN, NMDnsPlugin))
Packit Service 5ffa24
#define NM_DNS_PLUGIN_CLASS(klass) \
Packit Service 5ffa24
    (G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_DNS_PLUGIN, NMDnsPluginClass))
Packit Service 5ffa24
#define NM_IS_DNS_PLUGIN(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), NM_TYPE_DNS_PLUGIN))
Packit Service 5ffa24
#define NM_IS_DNS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_DNS_PLUGIN))
Packit Service 5ffa24
#define NM_DNS_PLUGIN_GET_CLASS(obj) \
Packit Service 5ffa24
    (G_TYPE_INSTANCE_GET_CLASS((obj), NM_TYPE_DNS_PLUGIN, NMDnsPluginClass))
Packit Service 5ffa24
Packit Service 5ffa24
typedef struct {
Packit Service 5ffa24
    GObject parent;
Packit Service 5ffa24
} NMDnsPlugin;
Packit Service 5ffa24
Packit Service 5ffa24
typedef struct {
Packit Service 5ffa24
    GObjectClass parent;
Packit Service 5ffa24
Packit Service 5ffa24
    /* Called when DNS information is changed.  'configs' is an array
Packit Service 5ffa24
     * of pointers to NMDnsConfigIPData sorted by priority.
Packit Service 5ffa24
     * 'global_config' is the optional global DNS
Packit Service 5ffa24
     * configuration.
Packit Service 5ffa24
     */
Packit Service 5ffa24
    gboolean (*update)(NMDnsPlugin *            self,
Packit Service 5ffa24
                       const NMGlobalDnsConfig *global_config,
Packit Service 5ffa24
                       const CList *            ip_config_lst_head,
Packit Service 5ffa24
                       const char *             hostname,
Packit Service 5ffa24
                       GError **                error);
Packit Service 5ffa24
Packit Service 5ffa24
    void (*stop)(NMDnsPlugin *self);
Packit Service 5ffa24
Packit Service 5ffa24
    const char *plugin_name;
Packit Service 5ffa24
Packit Service 5ffa24
    /* Types should set to TRUE if they start a local caching nameserver
Packit Service 5ffa24
     * that listens on localhost and would block any other local caching
Packit Service 5ffa24
     * nameserver from operating.
Packit Service 5ffa24
     */
Packit Service 5ffa24
    bool is_caching : 1;
Packit Service 5ffa24
Packit Service 5ffa24
} NMDnsPluginClass;
Packit Service 5ffa24
Packit Service 5ffa24
GType nm_dns_plugin_get_type(void);
Packit Service 5ffa24
Packit Service 5ffa24
gboolean nm_dns_plugin_is_caching(NMDnsPlugin *self);
Packit Service 5ffa24
Packit Service 5ffa24
const char *nm_dns_plugin_get_name(NMDnsPlugin *self);
Packit Service 5ffa24
Packit Service 5ffa24
gboolean nm_dns_plugin_update(NMDnsPlugin *            self,
Packit Service 5ffa24
                              const NMGlobalDnsConfig *global_config,
Packit Service 5ffa24
                              const CList *            ip_config_lst_head,
Packit Service 5ffa24
                              const char *             hostname,
Packit Service 5ffa24
                              GError **                error);
Packit Service 5ffa24
Packit Service 5ffa24
void nm_dns_plugin_stop(NMDnsPlugin *self);
Packit Service 5ffa24
Packit Service 5ffa24
#endif /* __NM_DNS_PLUGIN_H__ */