@@ -29,15 +29,15 @@ func (c *Conn) availableCaps() []imap.Cap {
2929 available := c .server .options .caps ()
3030
3131 var caps []imap.Cap
32- addAvailableCaps (& caps , available , [] imap.Cap {
33- imap .CapIMAP4rev2 ,
34- imap .CapIMAP4rev1 ,
32+ addAvailableCaps (& caps , map [ imap.Cap ] bool {
33+ imap .CapIMAP4rev2 : available . IMAP4rev1 ,
34+ imap .CapIMAP4rev1 : available . IMAP4rev2 ,
3535 })
3636 if len (caps ) == 0 {
3737 panic ("imapserver: must support at least IMAP4rev1 or IMAP4rev2" )
3838 }
3939
40- if available .Has ( imap . CapIMAP4rev1 ) {
40+ if available .IMAP4rev1 {
4141 caps = append (caps , []imap.Cap {
4242 imap .CapSASLIR ,
4343 imap .CapLiteralMinus ,
@@ -58,7 +58,7 @@ func (c *Conn) availableCaps() []imap.Cap {
5858 caps = append (caps , imap .CapLoginDisabled )
5959 }
6060 if c .state == imap .ConnStateAuthenticated || c .state == imap .ConnStateSelected {
61- if available .Has ( imap . CapIMAP4rev1 ) {
61+ if available .IMAP4rev1 {
6262 // IMAP4rev1-specific capabilities that don't require backend
6363 // support and are not applicable to IMAP4rev2
6464 caps = append (caps , []imap.Cap {
@@ -70,35 +70,35 @@ func (c *Conn) availableCaps() []imap.Cap {
7070
7171 // IMAP4rev1-specific capabilities which require backend support
7272 // and are not applicable to IMAP4rev2
73- addAvailableCaps (& caps , available , [] imap.Cap {
74- imap .CapNamespace ,
75- imap .CapUIDPlus ,
76- imap .CapESearch ,
77- imap .CapSearchRes ,
78- imap .CapListExtended ,
79- imap .CapListStatus ,
80- imap .CapMove ,
81- imap .CapStatusSize ,
82- imap .CapBinary ,
83- imap .CapChildren ,
73+ addAvailableCaps (& caps , map [ imap.Cap ] bool {
74+ imap .CapNamespace : available . Namespace ,
75+ imap .CapUIDPlus : available . UIDPlus ,
76+ imap .CapESearch : available . ESearch ,
77+ // imap.CapSearchRes: available.SearchRes ,
78+ imap .CapListExtended : available . ListExtended ,
79+ imap .CapListStatus : available . ListStatus ,
80+ imap .CapMove : available . Move ,
81+ imap .CapStatusSize : available . StatusSize ,
82+ // imap.CapBinary: available.Binary ,
83+ // imap.CapChildren: available.Children ,
8484 })
8585 }
8686
8787 // Capabilities which require backend support and apply to both
8888 // IMAP4rev1 and IMAP4rev2
89- addAvailableCaps (& caps , available , [] imap.Cap {
90- imap .CapSpecialUse ,
91- imap .CapCreateSpecialUse ,
92- imap .CapLiteralPlus ,
93- imap .CapUnauthenticate ,
89+ addAvailableCaps (& caps , map [ imap.Cap ] bool {
90+ imap .CapSpecialUse : available . SpecialUse ,
91+ imap .CapCreateSpecialUse : available . CreateSpecialUse ,
92+ imap .CapLiteralPlus : available . LiteralPlus ,
93+ imap .CapUnauthenticate : available . Unauthenticate ,
9494 })
9595 }
9696 return caps
9797}
9898
99- func addAvailableCaps (caps * []imap.Cap , available imap. CapSet , l [] imap.Cap ) {
100- for _ , c := range l {
101- if available . Has ( c ) {
99+ func addAvailableCaps (caps * []imap.Cap , available map [ imap.Cap ] bool ) {
100+ for c , ok := range available {
101+ if ok {
102102 * caps = append (* caps , c )
103103 }
104104 }
0 commit comments