aboutsummaryrefslogtreecommitdiff
path: root/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'widgets')
-rw-r--r--widgets/aerc.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/widgets/aerc.go b/widgets/aerc.go
index 23dac3e..5a7914a 100644
--- a/widgets/aerc.go
+++ b/widgets/aerc.go
@@ -2,6 +2,7 @@ package widgets
import (
"errors"
+ "io"
"log"
"net/url"
"strings"
@@ -405,3 +406,21 @@ func (aerc *Aerc) Mailto(addr *url.URL) error {
})
return nil
}
+
+func (aerc *Aerc) CloseBackends() error {
+ var returnErr error
+ for _, acct := range aerc.accounts {
+ var raw interface{} = acct.worker.Backend
+ c, ok := raw.(io.Closer)
+ if !ok {
+ continue
+ }
+ err := c.Close()
+ if err != nil {
+ returnErr = err
+ aerc.logger.Printf("Closing backend failed for %v: %v\n",
+ acct.Name(), err)
+ }
+ }
+ return returnErr
+}