diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2006-12-05 21:40:17 +0100 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2006-12-05 21:40:17 +0100 |
commit | d8d63a27dcfd38245927af95521b6f8918b23795 (patch) | |
tree | 75e4675b12970db6645c087ab75ec35c1b1ba9fd /storage.c | |
parent | f4aa393b221dcc709f189ed04945ee67e956872a (diff) | |
parent | 55078f59c8e9f52f1d10bed55511e5e58ec3e53b (diff) |
[merge] wilmer
Diffstat (limited to 'storage.c')
-rw-r--r-- | storage.c | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -6,6 +6,8 @@ /* Support for multiple storage backends */ +/* Copyright (C) 2005 Jelmer Vernooij <jelmer@samba.org> */ + /* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -28,9 +30,9 @@ #include "crypting.h" extern storage_t storage_text; +extern storage_t storage_xml; -static GList text_entry = { &storage_text, NULL, NULL }; -static GList *storage_backends = &text_entry; +static GList *storage_backends = NULL; void register_storage_backend(storage_t *backend) { @@ -40,7 +42,7 @@ void register_storage_backend(storage_t *backend) static storage_t *storage_init_single(const char *name) { GList *gl; - storage_t *st; + storage_t *st = NULL; for (gl = storage_backends; gl; gl = gl->next) { st = gl->data; @@ -62,9 +64,12 @@ GList *storage_init(const char *primary, char **migrate) GList *ret = NULL; int i; storage_t *storage; - + + register_storage_backend(&storage_text); + register_storage_backend(&storage_xml); + storage = storage_init_single(primary); - if (storage == NULL) + if (storage == NULL && storage->save == NULL) return NULL; ret = g_list_append(ret, storage); |