Mercurial > dovecot > core-2.2
annotate src/lib-imap-storage/imap-metadata.h @ 22656:1789bf2a1e01
director: Make sure HOST-RESET-USERS isn't used with max_moving_users=0
The reset command would just hang in that case. doveadm would never have
sent this, so this is just an extra sanity check.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Sun, 05 Nov 2017 23:51:56 +0200 |
parents | a350812e07bf |
children |
rev | line source |
---|---|
18094
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
1 #ifndef IMAP_METADATA_H |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
2 #define IMAP_METADATA_H |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
3 |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
4 #define IMAP_METADATA_PRIVATE_PREFIX "/private" |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
5 #define IMAP_METADATA_SHARED_PREFIX "/shared" |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
6 |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
7 struct imap_metadata_iter; |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
8 struct imap_metadata_transaction; |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
9 |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
10 /* Checks whether IMAP metadata entry name is valid */ |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
11 bool imap_metadata_verify_entry_name( |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
12 const char *name, const char **error_r); |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
13 |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
14 /* Set IMAP metadata entry to value. */ |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
15 int imap_metadata_set(struct imap_metadata_transaction *imtrans, |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
16 const char *entry, const struct mail_attribute_value *value); |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
17 /* Delete IMAP metadata entry. This is just a wrapper to |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
18 imap_metadata_set() with value->value=NULL. */ |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
19 int imap_metadata_unset(struct imap_metadata_transaction *imtrans, |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
20 const char *entry); |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
21 /* Returns value for IMAP metadata entry. Returns 1 if value was returned, |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
22 0 if value wasn't found (set to NULL), -1 if error */ |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
23 int imap_metadata_get(struct imap_metadata_transaction *imtrans, |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
24 const char *entry, struct mail_attribute_value *value_r); |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
25 /* Same as imap_metadata_get(), but the returned value may be either an |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
26 input stream or a string. */ |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
27 int imap_metadata_get_stream(struct imap_metadata_transaction *imtrans, |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
28 const char *entry, struct mail_attribute_value *value_r); |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
29 |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
30 /* Iterate through IMAP metadata entries names under the specified entry. */ |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
31 struct imap_metadata_iter * |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
32 imap_metadata_iter_init(struct imap_metadata_transaction *imtrans, |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
33 const char *entry); |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
34 /* Returns the next IMAP metadata entry name or NULL if there are no more |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
35 entries. */ |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
36 const char *imap_metadata_iter_next(struct imap_metadata_iter *iter); |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
37 int imap_metadata_iter_deinit(struct imap_metadata_iter **_iter); |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
38 |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
39 struct imap_metadata_transaction * |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
40 imap_metadata_transaction_begin(struct mailbox *box); |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
41 struct imap_metadata_transaction * |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
42 imap_metadata_transaction_begin_mailbox(struct mail_user *user, |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
43 const char *mailbox); |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
44 struct imap_metadata_transaction * |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
45 imap_metadata_transaction_begin_server(struct mail_user *user); |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
46 |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
47 int imap_metadata_transaction_commit( |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
48 struct imap_metadata_transaction **_imtrans, |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
49 enum mail_error *error_code_r, const char **error_r); |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
50 void imap_metadata_transaction_rollback( |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
51 struct imap_metadata_transaction **_imtrans); |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
52 const char * |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
53 imap_metadata_transaction_get_last_error( |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
54 struct imap_metadata_transaction *imtrans, |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
55 enum mail_error *error_code_r); |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
56 |
a350812e07bf
lib-imap-storage: Created new METADATA API.
Stephan Bosch <stephan@rename-it.nl>
parents:
diff
changeset
|
57 #endif |