imap: fix confusion between mailbox flags and attributes

This commit is contained in:
Simon Ser 2020-02-29 10:50:23 +01:00
parent 7d3d0ee71e
commit 25bd036b53
No known key found for this signature in database
GPG Key ID: 0FDE7BE0E88F5E48
2 changed files with 8 additions and 8 deletions

View File

@ -19,7 +19,7 @@ const delimiter = "/"
type mailbox struct {
name string
label string
flags []string
attrs []string
u *user
db *database.Mailbox
@ -31,7 +31,7 @@ type mailbox struct {
deleted map[string]struct{}
}
func newMailbox(name string, label string, flags []string, u *user) (*mailbox, error) {
func newMailbox(name string, label string, attrs []string, u *user) (*mailbox, error) {
mboxDB, err := u.db.Mailbox(label)
if err != nil {
return nil, err
@ -40,7 +40,7 @@ func newMailbox(name string, label string, flags []string, u *user) (*mailbox, e
return &mailbox{
name: name,
label: label,
flags: flags,
attrs: attrs,
u: u,
db: mboxDB,
deleted: make(map[string]struct{}),
@ -53,7 +53,7 @@ func (mbox *mailbox) Name() string {
func (mbox *mailbox) Info() (*imap.MailboxInfo, error) {
return &imap.MailboxInfo{
Attributes: append(mbox.flags, imap.NoInferiorsAttr),
Attributes: append([]string{imap.NoInferiorsAttr}, mbox.attrs...),
Delimiter: delimiter,
Name: mbox.name,
}, nil
@ -61,8 +61,8 @@ func (mbox *mailbox) Info() (*imap.MailboxInfo, error) {
func (mbox *mailbox) Status(items []imap.StatusItem) (*imap.MailboxStatus, error) {
status := imap.NewMailboxStatus(mbox.name, items)
status.Flags = mbox.flags
status.PermanentFlags = []string{imap.SeenFlag, imap.FlaggedFlag, imap.DeletedFlag}
status.Flags = []string{imap.SeenFlag, imap.FlaggedFlag, imap.DeletedFlag}
status.PermanentFlags = []string{imap.SeenFlag, imap.FlaggedFlag}
status.UnseenSeqNum = 0 // TODO
for _, name := range items {

View File

@ -17,7 +17,7 @@ import (
var systemMailboxes = []struct {
name string
label string
flags []string
attrs []string
}{
{imap.InboxName, protonmail.LabelInbox, nil},
{"All Mail", protonmail.LabelAllMail, []string{specialuse.All}},
@ -111,7 +111,7 @@ func (u *user) initMailboxes() error {
for _, data := range systemMailboxes {
var err error
u.mailboxes[data.label], err = newMailbox(data.name, data.label, data.flags, u)
u.mailboxes[data.label], err = newMailbox(data.name, data.label, data.attrs, u)
if err != nil {
return err
}