Mercurial > dovecot > core-2.2
annotate src/lib-dict-extra/dict-register.c @ 20065:50d86fbcfd28
Split parts of lib-dict into lib-dict-extra.
Otherwise there's a circular dependency because lib-dict/dict-fs.c depends
on lib-fs, while lib-fs/fs-dict.c depends on lib-dict. This becomes a problem
when compiling --without-shared-libs, although for some reason it works for
me while linking the Dovecot core, but not when linking external plugins.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 21 Apr 2016 18:51:57 +0300 |
parents | src/lib-dict/dict-register.c@0f22db71df7a |
children | 2e2563132d5f |
rev | line source |
---|---|
19552
0f22db71df7a
global: freshen copyright
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
18649
diff
changeset
|
1 /* Copyright (c) 2013-2016 Dovecot authors, see the included COPYING file */ |
17043
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
2 |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
3 #include "lib.h" |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
4 #include "dict-private.h" |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
5 |
18649
ac259cd62fbc
lib-dict: Allow registering builtin dict drivers multiple times.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
6 static int refcount = 0; |
ac259cd62fbc
lib-dict: Allow registering builtin dict drivers multiple times.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
7 |
17043
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
8 void dict_drivers_register_builtin(void) |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
9 { |
18649
ac259cd62fbc
lib-dict: Allow registering builtin dict drivers multiple times.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
10 if (refcount++ > 0) |
ac259cd62fbc
lib-dict: Allow registering builtin dict drivers multiple times.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
11 return; |
17043
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
12 dict_driver_register(&dict_driver_client); |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
13 dict_driver_register(&dict_driver_file); |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
14 dict_driver_register(&dict_driver_fs); |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
15 dict_driver_register(&dict_driver_memcached); |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
16 dict_driver_register(&dict_driver_memcached_ascii); |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
17 dict_driver_register(&dict_driver_redis); |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
18 } |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
19 |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
20 void dict_drivers_unregister_builtin(void) |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
21 { |
18649
ac259cd62fbc
lib-dict: Allow registering builtin dict drivers multiple times.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
22 if (--refcount > 0) |
ac259cd62fbc
lib-dict: Allow registering builtin dict drivers multiple times.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
23 return; |
17043
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
24 dict_driver_unregister(&dict_driver_client); |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
25 dict_driver_unregister(&dict_driver_file); |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
26 dict_driver_unregister(&dict_driver_fs); |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
27 dict_driver_unregister(&dict_driver_memcached); |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
28 dict_driver_unregister(&dict_driver_memcached_ascii); |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
29 dict_driver_unregister(&dict_driver_redis); |
773e9ce608ed
lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
30 } |