mirror of
https://github.com/drakkan/sftpgo.git
synced 2025-12-07 14:50:55 +03:00
@@ -244,6 +244,8 @@ func TestBasicFTPHandling(t *testing.T) {
|
||||
}
|
||||
err = client.Delete(path.Join("/", testDir, testFileName))
|
||||
assert.NoError(t, err)
|
||||
err = client.Delete(testDir)
|
||||
assert.Error(t, err)
|
||||
err = client.RemoveDir(testDir)
|
||||
assert.NoError(t, err)
|
||||
|
||||
|
||||
@@ -86,7 +86,8 @@ func (c *Connection) OpenFile(name string, flag int, perm os.FileMode) (afero.Fi
|
||||
return nil, errNotImplemented
|
||||
}
|
||||
|
||||
// Remove removes a file or an empty directory
|
||||
// Remove removes a file.
|
||||
// We implements ClientDriverExtensionRemoveDir for directories
|
||||
func (c *Connection) Remove(name string) error {
|
||||
c.UpdateLastActivity()
|
||||
|
||||
@@ -102,7 +103,8 @@ func (c *Connection) Remove(name string) error {
|
||||
}
|
||||
|
||||
if fi.IsDir() && fi.Mode()&os.ModeSymlink != os.ModeSymlink {
|
||||
return c.RemoveDir(p, name)
|
||||
c.Log(logger.LevelDebug, "cannot remove %#v is not a file/symlink", p)
|
||||
return c.GetGenericError()
|
||||
}
|
||||
return c.RemoveFile(p, name, fi)
|
||||
}
|
||||
@@ -215,6 +217,18 @@ func (c *Connection) AllocateSpace(size int) error {
|
||||
return common.ErrQuotaExceeded
|
||||
}
|
||||
|
||||
// RemoveDir implements ClientDriverExtensionRemoveDir
|
||||
func (c *Connection) RemoveDir(name string) error {
|
||||
c.UpdateLastActivity()
|
||||
|
||||
p, err := c.Fs.ResolvePath(name)
|
||||
if err != nil {
|
||||
return c.GetFsError(err)
|
||||
}
|
||||
|
||||
return c.BaseConnection.RemoveDir(p, name)
|
||||
}
|
||||
|
||||
// ReadDir implements ClientDriverExtensionFilelist
|
||||
func (c *Connection) ReadDir(name string) ([]os.FileInfo, error) {
|
||||
c.UpdateLastActivity()
|
||||
|
||||
@@ -268,6 +268,10 @@ func TestResolvePathErrors(t *testing.T) {
|
||||
if assert.Error(t, err) {
|
||||
assert.EqualError(t, err, common.ErrGenericFailure.Error())
|
||||
}
|
||||
err = connection.RemoveDir("")
|
||||
if assert.Error(t, err) {
|
||||
assert.EqualError(t, err, common.ErrGenericFailure.Error())
|
||||
}
|
||||
err = connection.Rename("", "")
|
||||
if assert.Error(t, err) {
|
||||
assert.EqualError(t, err, common.ErrGenericFailure.Error())
|
||||
|
||||
Reference in New Issue
Block a user