[dovecot-cvs] dovecot/src/lib-storage proxy-mailbox.c, 1.6,
1.7 proxy-mailbox.h, 1.2, 1.3
cras at procontrol.fi
cras at procontrol.fi
Mon Jun 21 21:13:27 EEST 2004
- Previous message: [dovecot-cvs] dovecot/src/imap cmd-append.c, 1.37, 1.38 cmd-copy.c,
1.20, 1.21
- Next message: [dovecot-cvs] dovecot/src/lib-index Makefile.am, 1.17,
1.18 mail-cache-lookup.c, 1.4, 1.5 mail-cache-transaction.c,
1.5, 1.6 mail-index-transaction-private.h, 1.5,
1.6 mail-index-transaction-view.c, NONE,
1.1 mail-index-transaction.c, 1.13,
1.14 mail-index-view-private.h, 1.6, 1.7 mail-index-view.c,
1.16, 1.17 mail-index.h, 1.118, 1.119
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/dovecot/src/lib-storage
In directory talvi:/tmp/cvs-serv21239
Modified Files:
proxy-mailbox.c proxy-mailbox.h
Log Message:
updates
Index: proxy-mailbox.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/proxy-mailbox.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- proxy-mailbox.c 2 May 2004 20:32:16 -0000 1.6
+++ proxy-mailbox.c 21 Jun 2004 18:13:21 -0000 1.7
@@ -3,7 +3,6 @@
#include "lib.h"
#include "proxy-mailbox.h"
-#if 0
static int _is_readonly(struct mailbox *box)
{
struct proxy_mailbox *p = (struct proxy_mailbox *) box;
@@ -51,16 +50,17 @@
static struct mail *_fetch(struct mailbox_transaction_context *t, uint32_t seq,
enum mail_fetch_field wanted_fields)
{
- struct proxy_mailbox *p = (struct proxy_mailbox *) t->box;
+ struct proxy_mailbox_transaction_context *pt =
+ (struct proxy_mailbox_transaction_context *)t;
+ struct proxy_mailbox *pbox = (struct proxy_mailbox *)t->box;
- return box->fetch(t, seq, wanted_fields);
+ return pbox->box->fetch(pt->ctx, seq, wanted_fields);
}
-static int _get_uids(struct mailbox_transaction_context *t,
- uint32_t uid1, uint32_t uid2,
+static int _get_uids(struct mailbox *box, uint32_t uid1, uint32_t uid2,
uint32_t *seq1_r, uint32_t *seq2_r)
{
- struct proxy_mailbox *p = (struct proxy_mailbox *) t->box;
+ struct proxy_mailbox *p = (struct proxy_mailbox *) box;
return p->box->get_uids(p->box, uid1, uid2, seq1_r, seq2_r);
}
@@ -74,24 +74,60 @@
}
static struct mail_search_context *
-_search_init(struct mailbox *box, const char *charset,
- struct mail_search_arg *args,
+_search_init(struct mailbox_transaction_context *t,
+ const char *charset, struct mail_search_arg *args,
const enum mail_sort_type *sort_program,
enum mail_fetch_field wanted_fields,
const char *const wanted_headers[])
{
- struct proxy_mailbox *p = (struct proxy_mailbox *) box;
+ struct proxy_mailbox_transaction_context *pt =
+ (struct proxy_mailbox_transaction_context *)t;
+ struct proxy_mailbox *pbox = (struct proxy_mailbox *)t->box;
- return p->box->search_init(p->box, charset, args, sort_program,
- wanted_fields, wanted_headers);
+ return pbox->box->search_init(pt->ctx, charset, args, sort_program,
+ wanted_fields, wanted_headers);
}
-static struct mailbox_transaction_context *
-_transaction_begin(struct mailbox *box)
+static int _transaction_commit(struct mailbox_transaction_context *t)
{
- struct proxy_mailbox *p = (struct proxy_mailbox *) box;
+ struct proxy_mailbox_transaction_context *pt =
+ (struct proxy_mailbox_transaction_context *)t;
+ struct proxy_mailbox *pbox = (struct proxy_mailbox *)t->box;
- return p->box->transaction_begin(p->box);
+ return pbox->box->transaction_commit(pt->ctx);
+}
+
+static void _transaction_rollback(struct mailbox_transaction_context *t)
+{
+ struct proxy_mailbox_transaction_context *pt =
+ (struct proxy_mailbox_transaction_context *)t;
+ struct proxy_mailbox *pbox = (struct proxy_mailbox *)t->box;
+
+ pbox->box->transaction_rollback(pt->ctx);
+}
+
+static int _save(struct mailbox_transaction_context *t,
+ const struct mail_full_flags *flags,
+ time_t received_date, int timezone_offset,
+ const char *from_envelope, struct istream *data,
+ struct mail **mail_r)
+{
+ struct proxy_mailbox_transaction_context *pt =
+ (struct proxy_mailbox_transaction_context *)t;
+ struct proxy_mailbox *pbox = (struct proxy_mailbox *)t->box;
+
+ return pbox->box->save(pt->ctx, flags, received_date, timezone_offset,
+ from_envelope, data, mail_r);
+}
+
+static int _copy(struct mailbox_transaction_context *t, struct mail *mail,
+ struct mail **dest_mail_r)
+{
+ struct proxy_mailbox_transaction_context *pt =
+ (struct proxy_mailbox_transaction_context *)t;
+ struct proxy_mailbox *pbox = (struct proxy_mailbox *)t->box;
+
+ return pbox->box->copy(pt->ctx, mail, dest_mail_r);
}
static int _is_inconsistent(struct mailbox *box)
@@ -116,21 +152,28 @@
pb->get_status = _get_status;
pb->sync = _sync;
pb->auto_sync = _auto_sync;
- pb->fetch = box->fetch;
- pb->get_uids = box->get_uids;
+ pb->fetch = _fetch;
+ pb->get_uids = _get_uids;
pb->search_get_sorting = _search_get_sorting;
- pb->search_init = box->search_init;
+ pb->search_init = _search_init;
pb->search_next = box->search_next;
pb->search_deinit = box->search_deinit;
- pb->transaction_begin = _transaction_begin;
- pb->transaction_commit = box->transaction_commit;
- pb->transaction_rollback = box->transaction_rollback;
+ pb->transaction_begin = NULL; /* must be implemented */
+ pb->transaction_commit = _transaction_commit;
+ pb->transaction_rollback = _transaction_rollback;
- pb->save = box->save;
- pb->copy = box->copy;
+ pb->save = _save;
+ pb->copy = _copy;
pb->is_inconsistent = _is_inconsistent;
}
-#endif
+
+void proxy_transaction_init(struct proxy_mailbox *proxy_box,
+ struct proxy_mailbox_transaction_context *proxy_ctx,
+ struct mailbox_transaction_context *ctx)
+{
+ proxy_ctx->proxy_ctx.box = &proxy_box->proxy_box;
+ proxy_ctx->ctx = ctx;
+}
Index: proxy-mailbox.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/proxy-mailbox.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- proxy-mailbox.h 27 Apr 2004 20:25:54 -0000 1.2
+++ proxy-mailbox.h 21 Jun 2004 18:13:21 -0000 1.3
@@ -8,6 +8,14 @@
struct mailbox *box;
};
-void proxy_mailbox_init(struct proxy_mailbox *proxy, struct mailbox *box);
+struct proxy_mailbox_transaction_context {
+ struct mailbox_transaction_context proxy_ctx;
+ struct mailbox_transaction_context *ctx;
+};
+
+void proxy_mailbox_init(struct proxy_mailbox *proxy_box, struct mailbox *box);
+void proxy_transaction_init(struct proxy_mailbox *proxy_box,
+ struct proxy_mailbox_transaction_context *proxy_ctx,
+ struct mailbox_transaction_context *ctx);
#endif
- Previous message: [dovecot-cvs] dovecot/src/imap cmd-append.c, 1.37, 1.38 cmd-copy.c,
1.20, 1.21
- Next message: [dovecot-cvs] dovecot/src/lib-index Makefile.am, 1.17,
1.18 mail-cache-lookup.c, 1.4, 1.5 mail-cache-transaction.c,
1.5, 1.6 mail-index-transaction-private.h, 1.5,
1.6 mail-index-transaction-view.c, NONE,
1.1 mail-index-transaction.c, 1.13,
1.14 mail-index-view-private.h, 1.6, 1.7 mail-index-view.c,
1.16, 1.17 mail-index.h, 1.118, 1.119
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the dovecot-cvs
mailing list