【发布时间】:2014-08-06 03:24:46
【问题描述】:
我正在尝试通过 socks5 连接到 IMAP 服务器。为此,我从 Imap 包中导出了一些功能,但我被困在 socks5 dialer setup(1st step:) 中。
我认为原因是我将nil 作为forward (Dial) 参数传递。 forward 参数应该是什么?它没有记录(在 godoc 中)
func dialSocks(socks string) (Dial proxy.Dialer, err error) {
Dial, err = proxy.SOCKS5("tcp", socks, nil, nil)
return
}
func dialTLS(addr string, config *tls.Config) (c *imap.Client, err error) {
addr = defaultPort(addr, "993")
d, err := dialSocks("101.120.113.185:1328")
if err != nil {
log.Error(err)
return
}
conn, err := d.Dial("tcp", addr)
if err == nil {
host, _, _ := net.SplitHostPort(addr)
tlsConn := tls.Client(conn, setServerName(config, host))
if c, err = imap.NewClient(tlsConn, host, 60*time.Second); err != nil {
conn.Close()
}
}
return
}
func defaultPort(addr, port string) string {
_, _, err := net.SplitHostPort(addr)
if err != nil {
addr = net.JoinHostPort(addr, port)
}
return addr
}
【问题讨论】: