From 6d09316b6fb03ab4c00dce9b98931671e4e524f3 Mon Sep 17 00:00:00 2001 From: Mu Qiao Date: Wed, 7 Dec 2011 10:39:26 +0800 Subject: [PATCH] ifnet: support writing openrc style --- src/settings/plugins/ifnet/net_parser.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/settings/plugins/ifnet/net_parser.c b/src/settings/plugins/ifnet/net_parser.c index 417c08a996..a206eda8d6 100644 --- a/src/settings/plugins/ifnet/net_parser.c +++ b/src/settings/plugins/ifnet/net_parser.c @@ -479,22 +479,28 @@ format_ips (gchar * value, gchar ** out_line, gchar * key, gchar * name) guint length, i; GString *formated_string = g_string_new (NULL); + strip_string (value, '('); + strip_string (value, ')'); strip_string (value, '"'); - ipset = g_strsplit (value, "\" \"", 0); + ipset = g_strsplit (value, "\"", 0); length = g_strv_length (ipset); //only one line if (length < 2) { *out_line = - g_strdup_printf ("%s_%s=( \"%s\" )\n", key, name, value); + g_strdup_printf ("%s_%s=\"%s\"\n", key, name, value); goto done; } // Multiple lines - g_string_append_printf (formated_string, "%s_%s=(\n", key, name); + g_string_append_printf (formated_string, "%s_%s=\"\n", key, name); for (i = 0; i < length; i++) - g_string_append_printf (formated_string, - "\t\"%s\"\n", ipset[i]); - g_string_append (formated_string, ")\n"); + { + strip_string (ipset[i], ' '); + if (ipset[i][0] != '\0') + g_string_append_printf (formated_string, + "%s\n", ipset[i]); + } + g_string_append (formated_string, "\"\n"); *out_line = g_strdup (formated_string->str); done: g_string_free (formated_string, TRUE); @@ -509,7 +515,7 @@ ifnet_flush_to_file (const char *config_file) gpointer key, value, name, network; GHashTableIter iter, iter_network; GList *list_iter; - gchar *out_line; + gchar *out_line = NULL; gsize bytes_written; gboolean result = FALSE;