~james-page/ubuntu/raring/dovecot/autopkgtest

« back to all changes in this revision

Viewing changes to src/doveadm/doveadm-mail.h

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2012-06-11 11:11:54 UTC
  • mfrom: (1.15.2) (4.1.27 sid)
  • Revision ID: package-import@ubuntu.com-20120611111154-678cwbdj6ktgsv1h
Tags: 1:2.1.7-1ubuntu1
* Merge from Debian unstable, remaining changes:
  + Add mail-stack-delivery package:
    - Update d/rules
    - d/control: convert existing dovecot-postfix package to a dummy
      package and add new mail-stack-delivery package.
    - Update maintainer scripts.
    - Rename d/dovecot-postfix.* to debian/mail-stack-delivery.*
    - d/mail-stack-delivery.preinst: Move previously installed backups and
      config files to a new package namespace.
    - d/mail-stack-delivery.prerm: Added to handle downgrades.
  + Use Snakeoil SSL certificates by default:
    - d/control: Depend on ssl-cert.
    - d/dovecot-core.postinst: Relax grep for SSL_* a bit.
  + Add autopkgtest to debian/tests/*.
  + Add ufw integration:
    - d/dovecot-core.ufw.profile: new ufw profile.
    - d/rules: install profile in dovecot-core.
    - d/control: dovecot-core - suggest ufw.
  + d/{control,rules}: enable PIE hardening.
  + d/dovecot-core.dirs: Added usr/share/doc/dovecot-core
  + Add apport hook:
    - d/rules, d/source_dovecot.py
  + Add upstart job:
    - d/rules, d/dovecot-core.dovecot.upstart, d/control,
      d/dovecot-core.dirs, dovecot-imapd.{postrm, postinst, prerm},
      d/dovecot-pop3d.{postinst, postrm, prerm}.
      d/mail-stack-deliver.postinst: Convert init script to upstart.
  + d/control: Added Pre-Depends: dpkg (>= 1.15.6) to dovecot-dbg to support
    xz compression in Ubuntu.
  + d/control: Demote dovecot-common Recommends: to Suggests: to prevent
    install of extra packages on upgrade.
  + d/patches/dovecot-drac.patch: Updated with version for dovecot >= 2.0.0.
  + d/control: Drop B-D on systemd.
* Dropped changes:
  + d/patches/fix-racey-restart.patch: part of 2.1.x, no longer required.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
#define DOVEADM_MAIL_H
3
3
 
4
4
#include <stdio.h>
 
5
#include "doveadm.h"
5
6
#include "doveadm-util.h"
6
7
#include "module-context.h"
 
8
#include "mail-storage-service.h"
7
9
 
8
 
enum mail_storage_service_flags;
 
10
enum mail_error;
9
11
struct mailbox;
 
12
struct mail_storage;
10
13
struct mail_user;
11
 
struct mail_storage_service_ctx;
12
 
struct mail_storage_service_input;
13
 
struct mail_storage_service_user;
14
14
struct doveadm_mail_cmd_context;
15
15
 
16
16
struct doveadm_mail_cmd_vfuncs {
17
17
        bool (*parse_arg)(struct doveadm_mail_cmd_context *ctx,int c);
 
18
        void (*preinit)(struct doveadm_mail_cmd_context *ctx);
18
19
        void (*init)(struct doveadm_mail_cmd_context *ctx,
19
20
                     const char *const args[]);
20
21
        int (*get_next_user)(struct doveadm_mail_cmd_context *ctx,
21
22
                             const char **username_r);
22
 
        void (*run)(struct doveadm_mail_cmd_context *ctx,
23
 
                    struct mail_user *mail_user);
 
23
        int (*prerun)(struct doveadm_mail_cmd_context *ctx,
 
24
                      struct mail_storage_service_user *service_user,
 
25
                      const char **error_r);
 
26
        int (*run)(struct doveadm_mail_cmd_context *ctx,
 
27
                   struct mail_user *mail_user);
24
28
        void (*deinit)(struct doveadm_mail_cmd_context *ctx);
25
29
};
26
30
 
37
41
        pool_t pool;
38
42
        const struct doveadm_mail_cmd *cmd;
39
43
        const char *const *args;
 
44
        /* args including -options */
 
45
        const char *const *full_args;
40
46
 
41
47
        const char *getopt_args;
42
48
        const struct doveadm_settings *set;
 
49
        enum mail_storage_service_flags service_flags;
43
50
        struct mail_storage_service_ctx *storage_service;
44
51
        /* search args aren't set for all mail commands */
45
52
        struct mail_search_args *search_args;
46
53
 
 
54
        const char *cur_username;
 
55
        struct mail_storage_service_user *cur_service_user;
47
56
        struct mail_user *cur_mail_user;
48
57
        struct doveadm_mail_cmd_vfuncs v;
49
58
 
50
59
        ARRAY_DEFINE(module_contexts, union doveadm_mail_cmd_module_context *);
51
60
 
 
61
        /* if non-zero, exit with this code */
 
62
        int exit_code;
 
63
 
52
64
        /* We're handling only a single user */
53
65
        unsigned int iterate_single_user:1;
54
66
        /* We're going through all users (not set for wildcard usernames) */
55
67
        unsigned int iterate_all_users:1;
56
 
        unsigned int failed:1;
57
68
};
58
69
 
59
70
struct doveadm_mail_cmd {
66
77
extern ARRAY_TYPE(doveadm_mail_cmd) doveadm_mail_cmds;
67
78
extern void (*hook_doveadm_mail_init)(struct doveadm_mail_cmd_context *ctx);
68
79
extern struct doveadm_mail_cmd_module_register doveadm_mail_cmd_module_register;
 
80
extern char doveadm_mail_cmd_hide;
69
81
 
70
82
bool doveadm_mail_try_run(const char *cmd_name, int argc, char *argv[]);
71
83
void doveadm_mail_register_cmd(const struct doveadm_mail_cmd *cmd);
83
95
struct doveadm_mail_cmd_context *
84
96
doveadm_mail_cmd_init(const struct doveadm_mail_cmd *cmd,
85
97
                      const struct doveadm_settings *set);
86
 
void doveadm_mail_single_user(struct doveadm_mail_cmd_context *ctx, char *argv[],
87
 
                              const struct mail_storage_service_input *input,
88
 
                              enum mail_storage_service_flags service_flags);
 
98
int doveadm_mail_single_user(struct doveadm_mail_cmd_context *ctx,
 
99
                             const struct mail_storage_service_input *input,
 
100
                             const char **error_r);
89
101
int doveadm_mail_server_user(struct doveadm_mail_cmd_context *ctx,
90
102
                             const struct mail_storage_service_input *input,
91
103
                             const char **error_r);
92
104
void doveadm_mail_server_flush(void);
93
105
 
 
106
struct mailbox *
 
107
doveadm_mailbox_find(struct mail_user *user, const char *mailbox);
94
108
int doveadm_mailbox_find_and_sync(struct mail_user *user, const char *mailbox,
95
109
                                  struct mailbox **box_r);
96
110
struct mail_search_args *
97
111
doveadm_mail_build_search_args(const char *const args[]);
98
 
const char *const *doveadm_mailbox_args_to_mutf7(const char *const args[]);
 
112
void doveadm_mailbox_args_check(const char *const args[]);
99
113
struct mail_search_args *
100
114
doveadm_mail_mailbox_search_args_build(const char *const args[]);
101
115
 
106
120
#define doveadm_mail_cmd_alloc(type) \
107
121
        (type *)doveadm_mail_cmd_alloc_size(sizeof(type))
108
122
 
 
123
void doveadm_mail_failed_error(struct doveadm_mail_cmd_context *ctx,
 
124
                               enum mail_error error);
 
125
void doveadm_mail_failed_storage(struct doveadm_mail_cmd_context *ctx,
 
126
                                 struct mail_storage *storage);
 
127
void doveadm_mail_failed_mailbox(struct doveadm_mail_cmd_context *ctx,
 
128
                                 struct mailbox *box);
 
129
 
109
130
struct doveadm_mail_cmd cmd_expunge;
110
131
struct doveadm_mail_cmd cmd_search;
111
132
struct doveadm_mail_cmd cmd_fetch;