source: storage.c @ ab49fdc

Last change on this file since ab49fdc was ab49fdc, checked in by Jelmer Vernooij <jelmer@…>, at 2005-12-10T14:50:49Z

Use helper functions rather then the backends directly. This will be
used for transparent upgrade support later on.

  • Property mode set to 100644
File size: 2.4 KB
RevLine 
[1ee6c18]1  /********************************************************************\
2  * BitlBee -- An IRC to other IM-networks gateway                     *
3  *                                                                    *
4  * Copyright 2002-2004 Wilmer van der Gaast and others                *
5  \********************************************************************/
6
7/* Support for multiple storage backends */
8
9/*
10  This program is free software; you can redistribute it and/or modify
11  it under the terms of the GNU General Public License as published by
12  the Free Software Foundation; either version 2 of the License, or
13  (at your option) any later version.
14
15  This program is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  GNU General Public License for more details.
19
20  You should have received a copy of the GNU General Public License with
21  the Debian GNU/Linux distribution in /usr/share/common-licenses/GPL;
22  if not, write to the Free Software Foundation, Inc., 59 Temple Place,
23  Suite 330, Boston, MA  02111-1307  USA
24*/
25
26#define BITLBEE_CORE
27#include "bitlbee.h"
28#include "crypting.h"
29
30extern storage_t storage_text;
31
32static GList text_entry = { &storage_text, NULL, NULL };
33static GList *storage_backends = &text_entry;
34
35void register_storage_backend(storage_t *backend)
36{
37        storage_backends = g_list_append(storage_backends, backend);
38}
39
40storage_t *storage_init(const char *name)
41{
42        GList *gl;
43        storage_t *st;
44
45        for (gl = storage_backends; gl; gl = gl->next) {
46                st = gl->data;
47                if (strcmp(st->name, name) == 0)
48                        break;
49        }
50
51        if (gl == NULL) 
52                return NULL;
53
54        if (st->init)
55                st->init();
56
57        return st;
58}
[ab49fdc]59
60storage_status_t storage_check_pass (const char *nick, const char *password)
61{
62        return global.storage->check_pass(nick, password);
63}
64
65storage_status_t storage_load (const char *nick, const char *password, irc_t * irc)
66{
67        return global.storage->load(nick, password, irc);
68}
69
70storage_status_t storage_save (irc_t *irc, int overwrite)
71{
72        return global.storage->save(irc, overwrite);
73}
74
75storage_status_t storage_remove (const char *nick, const char *password)
76{
77        return global.storage->remove(nick, password);
78}
79
80storage_status_t storage_rename (const char *onick, const char *nnick, const char *password)
81{
82        return global.storage->rename(onick, nnick, password);
83}
Note: See TracBrowser for help on using the repository browser.