This helper function takes in a heap-allocated buffer of heap-allocated
strings. It frees empty strings and moves other strings on top of them.
---
 src/service.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/src/service.c b/src/service.c
index 2d8245e..3cf49a8 100644
--- a/src/service.c
+++ b/src/service.c
@@ -2926,6 +2926,23 @@ static DBusMessage *get_properties(DBusConnection *conn,
        return reply;
 }
 
+static char **remove_empty_strings(char **strv)
+{
+       int index = 0;
+       char **iter = strv;
+
+       while (*iter) {
+               if (**iter)
+                       strv[index++] = *iter;
+               else
+                       g_free(*iter);
+               iter++;
+       }
+
+       strv[index] = NULL;
+       return strv;
+}
+
 static int update_proxy_configuration(struct connman_service *service,
                                DBusMessageIter *array)
 {
-- 
2.1.0

_______________________________________________
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman

Reply via email to