static void pop3c_mail_close(struct mail *_mail)
{
- struct pop3c_mail *pmail = (struct pop3c_mail *)_mail;
+ struct pop3c_mail *pmail = POP3C_MAIL(_mail);
struct pop3c_mailbox *mbox = POP3C_MAILBOX(_mail->box);
/* wait for any prefetch to finish before closing the mail */
static bool pop3c_mail_prefetch(struct mail *_mail)
{
- struct pop3c_mail *pmail = (struct pop3c_mail *)_mail;
+ struct pop3c_mail *pmail = POP3C_MAIL(_mail);
struct pop3c_mailbox *mbox = POP3C_MAILBOX(_mail->box);
enum pop3c_capability capa;
const char *cmd;
struct message_size *hdr_size,
struct message_size *body_size, struct istream **stream_r)
{
- struct pop3c_mail *pmail = (struct pop3c_mail *)_mail;
+ struct pop3c_mail *pmail = POP3C_MAIL(_mail);
struct index_mail *mail = &pmail->imail;
struct pop3c_mailbox *mbox = POP3C_MAILBOX(_mail->box);
enum pop3c_capability capa;
#define POP3C_STORAGE(s) container_of(s, struct pop3c_storage, storage)
#define POP3C_MAILBOX(s) container_of(s, struct pop3c_mailbox, box)
+#define POP3C_MAIL(s) container_of(s, struct pop3c_mail, imail.mail.mail)
struct mail *
pop3c_mail_alloc(struct mailbox_transaction_context *t,