summaryrefslogtreecommitdiff
path: root/src/storage.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-12-14 09:51:31 +0100
committerMarcel Holtmann <marcel@holtmann.org>2009-12-14 09:51:31 +0100
commita4d04d8c7bce8ada5ca7fd8a431de5d29e264fb0 (patch)
treec018d96741caa46049e3d340c217f78b88949baa /src/storage.c
parent549cf017b031985f2f2966637fbfaac16a3e9a83 (diff)
downloadconnman-a4d04d8c7bce8ada5ca7fd8a431de5d29e264fb0.tar.gz
connman-a4d04d8c7bce8ada5ca7fd8a431de5d29e264fb0.tar.bz2
connman-a4d04d8c7bce8ada5ca7fd8a431de5d29e264fb0.zip
Add generic suffix handling to storage helpers
Diffstat (limited to 'src/storage.c')
-rw-r--r--src/storage.c37
1 files changed, 28 insertions, 9 deletions
diff --git a/src/storage.c b/src/storage.c
index 04721692..e7959aae 100644
--- a/src/storage.c
+++ b/src/storage.c
@@ -27,6 +27,8 @@
#include "connman.h"
+#define PROFILE_SUFFIX "profile"
+
static GSList *storage_list = NULL;
static gint compare_priority(gconstpointer a, gconstpointer b)
@@ -68,16 +70,16 @@ void connman_storage_unregister(struct connman_storage *storage)
storage_list = g_slist_remove(storage_list, storage);
}
-GKeyFile *__connman_storage_open(const char *ident)
+GKeyFile *__connman_storage_open(const char *ident, const char *suffix)
{
GKeyFile *keyfile;
gchar *pathname, *data = NULL;
gboolean result;
gsize length;
- DBG("ident %s", ident);
+ DBG("ident %s suffix %s", ident, suffix);
- pathname = g_strdup_printf("%s/%s.profile", STORAGEDIR, ident);
+ pathname = g_strdup_printf("%s/%s.%s", STORAGEDIR, ident, suffix);
if (pathname == NULL)
return NULL;
@@ -101,20 +103,21 @@ done:
return keyfile;
}
-void __connman_storage_close(const char *ident,
+void __connman_storage_close(const char *ident, const char *suffix,
GKeyFile *keyfile, gboolean save)
{
gchar *pathname, *data = NULL;
gsize length = 0;
- DBG("ident %s keyfile %p save %d", ident, keyfile, save);
+ DBG("ident %s suffix %s keyfile %p save %d",
+ ident, suffix, keyfile, save);
if (save == FALSE) {
g_key_file_free(keyfile);
return;
}
- pathname = g_strdup_printf("%s/%s.profile", STORAGEDIR, ident);
+ pathname = g_strdup_printf("%s/%s.%s", STORAGEDIR, ident, suffix);
if (pathname == NULL)
return;
@@ -130,13 +133,13 @@ void __connman_storage_close(const char *ident,
g_key_file_free(keyfile);
}
-void __connman_storage_delete(const char *ident)
+void __connman_storage_delete(const char *ident, const char *suffix)
{
gchar *pathname;
- DBG("ident %s", ident);
+ DBG("ident %s suffix %s", ident, suffix);
- pathname = g_strdup_printf("%s/%s.profile", STORAGEDIR, ident);
+ pathname = g_strdup_printf("%s/%s.%s", STORAGEDIR, ident, suffix);
if (pathname == NULL)
return;
@@ -144,6 +147,22 @@ void __connman_storage_delete(const char *ident)
connman_error("Failed to remove %s", pathname);
}
+GKeyFile *__connman_storage_open_profile(const char *ident)
+{
+ return __connman_storage_open(ident, PROFILE_SUFFIX);
+}
+
+void __connman_storage_close_profile(const char *ident,
+ GKeyFile *keyfile, gboolean save)
+{
+ __connman_storage_close(ident, PROFILE_SUFFIX, keyfile, save);
+}
+
+void __connman_storage_delete_profile(const char *ident)
+{
+ __connman_storage_delete(ident, PROFILE_SUFFIX);
+}
+
int __connman_storage_init_profile(void)
{
GSList *list;