Lines Matching refs:imtrans

68 imap_metadata_transaction_set_error(struct imap_metadata_transaction *imtrans,
71 i_free(imtrans->error_string);
72 imtrans->error_string = i_strdup(string);
73 imtrans->error = error;
77 imap_metadata_entry2key(struct imap_metadata_transaction *imtrans,
81 const char *key_prefix = (imtrans->server ?
117 imap_metadata_get_mailbox_transaction(struct imap_metadata_transaction *imtrans)
119 if (imtrans->trans != NULL)
122 if (imtrans->box == NULL || mailbox_open(imtrans->box) < 0)
124 imtrans->trans = mailbox_transaction_begin(imtrans->box,
129 int imap_metadata_set(struct imap_metadata_transaction *imtrans,
135 if (!imap_metadata_entry2key(imtrans, entry, &type, &key)) {
136 imap_metadata_transaction_set_error(imtrans, MAIL_ERROR_PARAMS,
141 if (imap_metadata_get_mailbox_transaction(imtrans) < 0)
144 mailbox_attribute_unset(imtrans->trans, type, key) :
145 mailbox_attribute_set(imtrans->trans, type, key, value));
148 int imap_metadata_unset(struct imap_metadata_transaction *imtrans,
154 return imap_metadata_set(imtrans, entry, &value);
157 int imap_metadata_get(struct imap_metadata_transaction *imtrans,
164 if (!imap_metadata_entry2key(imtrans, entry, &type, &key))
166 return mailbox_attribute_get(imtrans->box, type, key, value_r);
169 int imap_metadata_get_stream(struct imap_metadata_transaction *imtrans,
176 if (!imap_metadata_entry2key(imtrans, entry, &type, &key))
178 return mailbox_attribute_get_stream(imtrans->box, type, key, value_r);
186 imap_metadata_iter_init(struct imap_metadata_transaction *imtrans,
194 if (imap_metadata_entry2key(imtrans, entry, &type, &key)) {
197 iter->iter = mailbox_attribute_iter_init(imtrans->box, type,
228 struct imap_metadata_transaction *imtrans;
230 imtrans = i_new(struct imap_metadata_transaction, 1);
231 imtrans->box = box;
232 return imtrans;
240 struct imap_metadata_transaction *imtrans;
245 imtrans = imap_metadata_transaction_begin(box);
246 imtrans->server = TRUE;
247 return imtrans;
253 struct imap_metadata_transaction *imtrans = *_imtrans;
255 if (imtrans->server)
256 mailbox_free(&imtrans->box);
258 i_free(imtrans->error_string);
259 i_free(imtrans);
267 struct imap_metadata_transaction *imtrans = *_imtrans;
270 if (imtrans->trans != NULL) {
272 ret = mailbox_transaction_commit(&imtrans->trans);
274 error = mailbox_get_last_error(imtrans->box, error_code_r);
285 struct imap_metadata_transaction *imtrans = *_imtrans;
287 if (imtrans->trans != NULL)
288 mailbox_transaction_rollback(&imtrans->trans);
294 struct imap_metadata_transaction *imtrans,
297 if (imtrans->error != MAIL_ERROR_NONE) {
299 *error_code_r = imtrans->error;
300 return imtrans->error_string;
302 i_assert(imtrans->box != NULL);
303 return mailbox_get_last_error(imtrans->box, error_code_r);