mirror of
https://github.com/schlagmichdoch/PairDrop.git
synced 2026-04-28 18:30:39 +00:00
Move header comparison to _onTransferHeader function as there is no benefit in doing it after file is received
This commit is contained in:
+24
-14
@@ -810,6 +810,14 @@ class Peer {
|
|||||||
this._sendState();
|
this._sendState();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!this._fitsAcceptedHeader(header)) {
|
||||||
|
this._abortTransfer();
|
||||||
|
Events.fire('notify-user', Localization.getTranslation("notifications.files-incorrect"));
|
||||||
|
Logger.error("Received files differ from requested files. Abort!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
this._timeStart = Date.now();
|
this._timeStart = Date.now();
|
||||||
|
|
||||||
this._addFileDigester(header);
|
this._addFileDigester(header);
|
||||||
@@ -870,34 +878,36 @@ class Peer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async _fileReceived(file) {
|
async _fileReceived(file) {
|
||||||
if (!this._fitsHeader(file)) {
|
|
||||||
this._abortTransfer();
|
|
||||||
Events.fire('notify-user', Localization.getTranslation("notifications.files-incorrect"));
|
|
||||||
Logger.error("Received files differ from requested files. Abort!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// File transfer complete
|
// File transfer complete
|
||||||
this._singleFileReceiveComplete(file);
|
this._singleFileReceiveComplete(file);
|
||||||
|
|
||||||
if (this._acceptedRequest.header.length) return;
|
// If less files received than header accepted -> wait for next file
|
||||||
|
if (this._filesReceived.length < this._acceptedRequest.header.length) return;
|
||||||
|
|
||||||
// We are done receiving
|
// We are done receiving
|
||||||
Events.fire('set-progress', {peerId: this._peerId, progress: 1, status: 'receive'});
|
Events.fire('set-progress', {peerId: this._peerId, progress: 1, status: 'receive'});
|
||||||
this._allFilesReceiveComplete();
|
this._allFilesReceiveComplete();
|
||||||
}
|
}
|
||||||
|
|
||||||
_fitsHeader(file) {
|
_fitsAcceptedHeader(header) {
|
||||||
if (!this._acceptedRequest) {
|
if (!this._acceptedRequest) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if file fits to header
|
const positionFile = this._filesReceived.length;
|
||||||
const acceptedHeader = this._acceptedRequest.header.shift();
|
|
||||||
|
|
||||||
const sameSize = file.size === acceptedHeader.size;
|
if (positionFile > this._acceptedRequest.header.length - 1) {
|
||||||
const sameName = file.name === acceptedHeader.name
|
return false;
|
||||||
return sameSize && sameName;
|
}
|
||||||
|
|
||||||
|
// Check if file header fits
|
||||||
|
const acceptedHeader = this._acceptedRequest.header[positionFile];
|
||||||
|
|
||||||
|
const sameSize = header.size === acceptedHeader.size;
|
||||||
|
const sameType = header.mime === acceptedHeader.mime;
|
||||||
|
const sameName = header.name === acceptedHeader.name;
|
||||||
|
|
||||||
|
return sameSize && sameType && sameName;
|
||||||
}
|
}
|
||||||
|
|
||||||
_singleFileReceiveComplete(file) {
|
_singleFileReceiveComplete(file) {
|
||||||
|
|||||||
Reference in New Issue
Block a user