From: Pasi Sjöholm <[email protected]>
A new append_domain()- and remove_domain()-functions which both
call append_or_remove_domain()-function by setting boolean append-
variable accordingly.
This enables a capability to remove domains from the dns-server's
domain list.
---
src/dnsproxy.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/dnsproxy.c b/src/dnsproxy.c
index c37eee9..1e8fcfb 100644
--- a/src/dnsproxy.c
+++ b/src/dnsproxy.c
@@ -2649,7 +2649,7 @@ static bool resolv(struct request_data *req,
return false;
}
-static void append_domain(int index, const char *domain)
+static void append_or_remove_domain(int index, const char *domain, bool append)
{
GSList *list;
@@ -2680,13 +2680,26 @@ static void append_domain(int index, const char *domain)
}
}
- if (!dom_found) {
+ if (!dom_found && append) {
data->domains =
g_list_append(data->domains, g_strdup(domain));
+ } else if (dom_found && !append) {
+ data->domains =
+ g_list_remove(data->domains, dom);
}
}
}
+static void append_domain(int index, const char *domain)
+{
+ append_or_remove_domain(index, domain, true);
+}
+
+static void remove_domain(int index, const char *domain)
+{
+ append_or_remove_domain(index, domain, false);
+}
+
static void flush_requests(struct server_data *server)
{
GSList *list;
--
2.1.4
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman