aboutsummaryrefslogtreecommitdiff
path: root/internal/imap/imap.go
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.eu>2021-02-28 15:20:03 +0100
committerRené 'Necoro' Neumann <necoro@necoro.eu>2021-02-28 15:20:03 +0100
commitf22c45ab83a83297feaaa727accf2f93a124a336 (patch)
tree0b9a8174a6162628e8b1296ade0a6b24d045bf93 /internal/imap/imap.go
parent0182cd0c2b1ca8a9bfa7f6725c44620d24dfe5ba (diff)
downloadfeed2imap-go-f22c45ab83a83297feaaa727accf2f93a124a336.tar.gz
feed2imap-go-f22c45ab83a83297feaaa727accf2f93a124a336.tar.bz2
feed2imap-go-f22c45ab83a83297feaaa727accf2f93a124a336.zip
Restructure
Diffstat (limited to 'internal/imap/imap.go')
-rw-r--r--internal/imap/imap.go54
1 files changed, 1 insertions, 53 deletions
diff --git a/internal/imap/imap.go b/internal/imap/imap.go
index 51687ff..a6995af 100644
--- a/internal/imap/imap.go
+++ b/internal/imap/imap.go
@@ -2,68 +2,16 @@ package imap
import (
"fmt"
- "net"
"strings"
- "time"
-
- imapClient "github.com/emersion/go-imap/client"
"github.com/Necoro/feed2imap-go/pkg/config"
"github.com/Necoro/feed2imap-go/pkg/log"
)
-var dialer imapClient.Dialer
-
-func init() {
- dialer = &net.Dialer{Timeout: 30 * time.Second}
-}
-
-func newImapClient(url config.Url) (*imapClient.Client, error) {
- var (
- c *imapClient.Client
- err error
- )
-
- if url.ForceTLS() {
- if c, err = imapClient.DialWithDialerTLS(dialer, url.HostPort(), nil); err != nil {
- return nil, fmt.Errorf("connecting (TLS) to %s: %w", url.Host, err)
- }
- log.Print("Connected to ", url.HostPort(), " (TLS)")
- } else {
- if c, err = imapClient.DialWithDialer(dialer, url.HostPort()); err != nil {
- return nil, fmt.Errorf("connecting to %s: %w", url.Host, err)
- }
- }
-
- return c, nil
-}
-
-func (cl *Client) connect(url config.Url) (*connection, error) {
- c, err := newImapClient(url)
- if err != nil {
- return nil, err
- }
-
- conn := cl.createConnection(c)
-
- if !url.ForceTLS() {
- if err = conn.startTls(); err != nil {
- return nil, err
- }
- }
-
- if err = c.Login(url.User, url.Password); err != nil {
- return nil, fmt.Errorf("login to %s: %w", url.Host, err)
- }
-
- cl.connChannel <- conn
- return conn, nil
-}
-
func Connect(url config.Url) (*Client, error) {
var err error
- client := NewClient()
+ client := newClient()
client.host = url.Host
defer func() {
if err != nil {