diff --git a/connect.go b/connect.go index b344cd9..1adaee7 100644 --- a/connect.go +++ b/connect.go @@ -1,11 +1,32 @@ package goftp import ( + "crypto/tls" "bufio" "log" "net" ) +// ConnectTLS (FTP over TLS). +func ConnectTLS(addr string, config *tls.Config, debug bool) (*FTP, error) { + var err error + var conn net.Conn + + if conn, err = net.Dial("tcp", addr); err != nil { + return nil, err + } + conn = tls.Client(conn, config) + + writer := bufio.NewWriter(conn) + reader := bufio.NewReader(conn) + + // reader.ReadString('\n') + object := &FTP{conn: conn, addr: addr, reader: reader, writer: writer, tlsconfig: config, debug: debug} + object.receive() + + return object, nil +} + // Connect to server at addr (format "host:port"). debug is OFF func Connect(addr string) (*FTP, error) { var err error @@ -18,7 +39,7 @@ func Connect(addr string) (*FTP, error) { writer := bufio.NewWriter(conn) reader := bufio.NewReader(conn) - //reader.ReadString('\n') + // reader.ReadString('\n') object := &FTP{conn: conn, addr: addr, reader: reader, writer: writer, debug: false} object.receive()