__attribute__((format(printf, 1, 2)));
int __connman_iptables_commit(const char *table_name);
-int __connman_dnsproxy_init(void);
+int __connman_dnsproxy_init(connman_bool_t dnsproxy);
void __connman_dnsproxy_cleanup(void);
gsize resplen;
};
+static connman_bool_t dnsproxy_enabled = TRUE;
static GSList *server_list = NULL;
static GSList *request_list = NULL;
static GSList *request_pending_list = NULL;
destroy_udp_listener();
}
-int __connman_dnsproxy_init(void)
+int __connman_dnsproxy_init(connman_bool_t dnsproxy)
{
int err;
+ dnsproxy_enabled = dnsproxy;
+ if (dnsproxy_enabled == FALSE)
+ return 0;
+
err = create_listener();
if (err < 0)
return err;
void __connman_dnsproxy_cleanup(void)
{
+ if (dnsproxy_enabled == FALSE)
+ return;
+
connman_notifier_unregister(&dnsproxy_notifier);
connman_resolver_unregister(&dnsproxy_resolver);
static gchar *option_noplugin = NULL;
static gchar *option_wifi = NULL;
static gboolean option_detach = TRUE;
+static gboolean option_dnsproxy = TRUE;
static gboolean option_compat = FALSE;
static gboolean option_version = FALSE;
{ "nodaemon", 'n', G_OPTION_FLAG_REVERSE,
G_OPTION_ARG_NONE, &option_detach,
"Don't fork daemon to background" },
+ { "nodnsproxy", 'r', G_OPTION_FLAG_REVERSE,
+ G_OPTION_ARG_NONE, &option_dnsproxy,
+ "Don't enable DNS Proxy" },
{ "compat", 'c', 0, G_OPTION_ARG_NONE, &option_compat,
"Enable Network Manager compatibility" },
{ "version", 'v', 0, G_OPTION_ARG_NONE, &option_version,
__connman_config_init();
__connman_stats_init();
- __connman_dnsproxy_init();
+ __connman_dnsproxy_init(option_dnsproxy);
__connman_resolver_init();
__connman_ipconfig_init();
__connman_rtnl_init();