diff options
| author | Chris Lu <chris.lu@gmail.com> | 2020-12-26 23:46:20 -0800 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2020-12-26 23:46:20 -0800 |
| commit | f0455dee683e831487c345a575b7894c0e2bf61a (patch) | |
| tree | a6d6bc9b76f89139377f503d3da8b23e486705d0 /weed/ftpd/ftp_server.go | |
| parent | aa020ee7e765f200976cd513d296530bbe3704a8 (diff) | |
| download | seaweedfs-f0455dee683e831487c345a575b7894c0e2bf61a.tar.xz seaweedfs-f0455dee683e831487c345a575b7894c0e2bf61a.zip | |
WIP
Diffstat (limited to 'weed/ftpd/ftp_server.go')
| -rw-r--r-- | weed/ftpd/ftp_server.go | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/weed/ftpd/ftp_server.go b/weed/ftpd/ftp_server.go index 4a0dca2c3..633a0371c 100644 --- a/weed/ftpd/ftp_server.go +++ b/weed/ftpd/ftp_server.go @@ -4,6 +4,7 @@ import ( "crypto/tls" "errors" "fmt" + "github.com/spf13/afero" "net" ftpserver "github.com/fclairamb/ftpserverlib" @@ -25,16 +26,18 @@ type FtpServerOption struct { type SftpServer struct { option *FtpServerOption ftpListener net.Listener + fs *FtpFileSystem } var _ = ftpserver.MainDriver(&SftpServer{}) // NewServer returns a new FTP server driver func NewFtpServer(ftpListener net.Listener, option *FtpServerOption) (*SftpServer, error) { - var err error + fs, err := NewFtpFileSystem(option) server := &SftpServer{ option: option, ftpListener: ftpListener, + fs: fs, } return server, err } @@ -71,7 +74,9 @@ func (s *SftpServer) ClientDisconnected(cc ftpserver.ClientContext) { // AuthUser authenticates the user and selects an handling driver func (s *SftpServer) AuthUser(cc ftpserver.ClientContext, username, password string) (ftpserver.ClientDriver, error) { - return nil, nil + return &ClientDriver{ + Fs: s.fs, + }, nil } // GetTLSConfig returns a TLS Certificate to use @@ -79,3 +84,7 @@ func (s *SftpServer) AuthUser(cc ftpserver.ClientContext, username, password str func (s *SftpServer) GetTLSConfig() (*tls.Config, error) { return nil, errors.New("no TLS certificate configured") } + +type ClientDriver struct { + afero.Fs +} |
