mirror of
https://github.com/schlagmichdoch/PairDrop.git
synced 2025-04-22 07:46:17 -04:00
Move header comparison to _onTransferHeader function as there is no benefit in doing it after file is received
This commit is contained in:
parent
7c471910ef
commit
a98499ea5a
1 changed files with 24 additions and 14 deletions
|
@ -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) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue