[PATCH v3 3/3] client: Add RemoveKnownService client implementation

Roman Smrž <[email protected]> Thu, 26 Jun 2025 09:27:46 +0200
Newsgroups dev.linux.lists.connman
Message-ID <[email protected]>
From: Michael Trimarchi <[email protected]>

Add a way to test the remove network feature
---
 client/commands.c | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/client/commands.c b/client/commands.c
index f4366e8c..14dc47e2 100644
--- a/client/commands.c
+++ b/client/commands.c
@@ -432,6 +432,47 @@ static int cmd_known_services(char *args[], int num, struct connman_option *opti
 			 services_list, NULL, NULL, NULL);
 }
 
+static int remove_known_service_return(DBusMessageIter *iter, int errnum,
+					const char *error, void *user_data)
+{
+	char *name = user_data;
+
+	if (!error)
+		fprintf(stdout, "Removed %s\n", name);
+	else
+		fprintf(stderr, "Error %s: %s\n", name, error);
+
+	g_free(user_data);
+
+	return 0;
+}
+
+static void remove_known_service_append_data(DBusMessageIter *iter, void *user_data)
+{
+	const char *data = user_data;
+
+	dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &data);
+}
+
+static int cmd_remove_known_service(char *args[], int num, struct connman_option *options)
+{
+	char *data;
+
+	if (num > 2)
+		return -E2BIG;
+
+	if (num < 2)
+		return -EINVAL;
+
+	data = g_strdup_printf("%s", args[1]);
+
+	return __connmanctl_dbus_method_call(connection,
+			 CONNMAN_SERVICE, CONNMAN_PATH,
+			 "net.connman.Manager",
+			 "RemoveKnownService",
+			 remove_known_service_return, data, remove_known_service_append_data, data);
+}
+
 static int cmd_peers(char *args[], int num, struct connman_option *options)
 {
 	char *peer_name = NULL;
@@ -2822,6 +2863,8 @@ static const struct {
 	  "Display services", lookup_service_arg },
 	{ "known-services", NULL,  NULL, cmd_known_services,
 	  "Display known services", NULL },
+	{ "remove-known-service", "[<service>]",  NULL,
+	  cmd_remove_known_service, "Remove known service", NULL },
 	{ "peers",        "[peer]",       NULL,            cmd_peers,
 	  "Display peers", lookup_peer_arg },
 	{ "scan",         "<technology>", NULL,            cmd_scan,
-- 
2.49.0