mirror of
https://github.com/drakkan/sftpgo.git
synced 2025-12-06 22:30:56 +03:00
quota tracking: fix concurrent updates
added a test case to check quota size for upload that replace an existing file
This commit is contained in:
@@ -168,8 +168,9 @@ func (c Connection) Filewrite(request *sftp.Request) (io.WriterAt, error) {
|
||||
}
|
||||
|
||||
if trunc {
|
||||
// the file is truncated so we need to decrease quota size but not quota files
|
||||
logger.Debug(logSender, "file truncation requested update quota for user %v", c.User.Username)
|
||||
dataprovider.UpdateUserQuota(dataProvider, c.User.Username, -1, -stat.Size(), false)
|
||||
dataprovider.UpdateUserQuota(dataProvider, c.User.Username, 0, -stat.Size(), false)
|
||||
}
|
||||
|
||||
utils.SetPathPermissions(p, c.User.GetUID(), c.User.GetGID())
|
||||
@@ -185,7 +186,7 @@ func (c Connection) Filewrite(request *sftp.Request) (io.WriterAt, error) {
|
||||
user: c.User,
|
||||
connectionID: c.ID,
|
||||
transferType: transferUpload,
|
||||
isNewFile: trunc,
|
||||
isNewFile: !trunc,
|
||||
}
|
||||
addTransfer(&transfer)
|
||||
return &transfer, nil
|
||||
|
||||
Reference in New Issue
Block a user