mirror of
https://github.com/drakkan/sftpgo.git
synced 2025-12-09 16:25:15 +03:00
improve error messages for generic failures
This commit is contained in:
@@ -346,7 +346,7 @@ func (c *Connection) handleSFTPUploadToNewFile(fs vfs.Fs, resolvedPath, filePath
|
||||
quotaResult := c.HasSpace(true, false, requestPath)
|
||||
if !quotaResult.HasSpace {
|
||||
c.Log(logger.LevelInfo, "denying file write due to quota limits")
|
||||
return nil, sftp.ErrSSHFxFailure
|
||||
return nil, c.GetQuotaExceededError()
|
||||
}
|
||||
|
||||
if err := common.ExecutePreAction(&c.User, common.OperationPreUpload, resolvedPath, requestPath, c.GetProtocol(), 0, 0); err != nil {
|
||||
@@ -378,7 +378,7 @@ func (c *Connection) handleSFTPUploadToExistingFile(fs vfs.Fs, pflags sftp.FileO
|
||||
quotaResult := c.HasSpace(false, false, requestPath)
|
||||
if !quotaResult.HasSpace {
|
||||
c.Log(logger.LevelInfo, "denying file write due to quota limits")
|
||||
return nil, sftp.ErrSSHFxFailure
|
||||
return nil, c.GetQuotaExceededError()
|
||||
}
|
||||
|
||||
osFlags := getOSOpenFlags(pflags)
|
||||
|
||||
@@ -173,7 +173,8 @@ func TestUploadResumeInvalidOffset(t *testing.T) {
|
||||
|
||||
err = transfer.Close()
|
||||
if assert.Error(t, err) {
|
||||
assert.EqualError(t, err, sftp.ErrSSHFxFailure.Error())
|
||||
assert.ErrorIs(t, err, sftp.ErrSSHFxFailure)
|
||||
assert.Contains(t, err.Error(), "invalid write offset")
|
||||
}
|
||||
|
||||
err = os.Remove(testfile)
|
||||
@@ -270,7 +271,8 @@ func TestTransferCancelFn(t *testing.T) {
|
||||
transfer.TransferError(errFake)
|
||||
err = transfer.Close()
|
||||
if assert.Error(t, err) {
|
||||
assert.EqualError(t, err, sftp.ErrSSHFxFailure.Error())
|
||||
assert.ErrorIs(t, err, sftp.ErrSSHFxFailure)
|
||||
assert.Contains(t, err.Error(), errFake.Error())
|
||||
}
|
||||
if assert.Error(t, transfer.ErrTransfer) {
|
||||
assert.EqualError(t, transfer.ErrTransfer, errFake.Error())
|
||||
|
||||
@@ -3564,7 +3564,10 @@ func TestQuotaLimits(t *testing.T) {
|
||||
err = sftpUploadFile(testFilePath, testFileName+".quota", testFileSize, client)
|
||||
assert.NoError(t, err)
|
||||
err = sftpUploadFile(testFilePath, testFileName+".quota.1", testFileSize, client)
|
||||
assert.Error(t, err, "user is over quota files, upload must fail")
|
||||
if assert.Error(t, err, "user is over quota files, upload must fail") {
|
||||
assert.Contains(t, err.Error(), "SSH_FX_FAILURE")
|
||||
assert.Contains(t, err.Error(), common.ErrQuotaExceeded.Error())
|
||||
}
|
||||
// rename should work
|
||||
err = client.Rename(testFileName+".quota", testFileName)
|
||||
assert.NoError(t, err)
|
||||
@@ -3579,7 +3582,10 @@ func TestQuotaLimits(t *testing.T) {
|
||||
defer conn.Close()
|
||||
defer client.Close()
|
||||
err = sftpUploadFile(testFilePath, testFileName+".quota.1", testFileSize, client)
|
||||
assert.Error(t, err, "user is over quota size, upload must fail")
|
||||
if assert.Error(t, err, "user is over quota size, upload must fail") {
|
||||
assert.Contains(t, err.Error(), "SSH_FX_FAILURE")
|
||||
assert.Contains(t, err.Error(), common.ErrQuotaExceeded.Error())
|
||||
}
|
||||
err = client.Rename(testFileName, testFileName+".quota")
|
||||
assert.NoError(t, err)
|
||||
err = client.Rename(testFileName+".quota", testFileName)
|
||||
@@ -3595,7 +3601,10 @@ func TestQuotaLimits(t *testing.T) {
|
||||
defer conn.Close()
|
||||
defer client.Close()
|
||||
err = sftpUploadFile(testFilePath1, testFileName1, testFileSize1, client)
|
||||
assert.Error(t, err)
|
||||
if assert.Error(t, err) {
|
||||
assert.Contains(t, err.Error(), "SSH_FX_FAILURE")
|
||||
assert.Contains(t, err.Error(), common.ErrQuotaExceeded.Error())
|
||||
}
|
||||
_, err = client.Stat(testFileName1)
|
||||
assert.Error(t, err)
|
||||
_, err = client.Lstat(testFileName1)
|
||||
|
||||
Reference in New Issue
Block a user