mirror of
https://github.com/cryptpad/cryptpad.git
synced 2026-09-14 11:05:41 +05:00
fix(export): fix TypeError while downloading folders from the drive
This commit is contained in:
parent
db9698030b
commit
5cc9d2113a
@ -1971,7 +1971,7 @@ define([
|
||||
// It seems we have performance issues when we open and close a lot of channels over
|
||||
// the same network, maybe a memory leak. To fix this, we kill and create a new
|
||||
// network every 30 cryptget calls (1 call = 1 channel)
|
||||
const cgNetworkStatus = {};
|
||||
let cgNetworkStatus = {};
|
||||
let cgNetworkId = 0;
|
||||
let cgNetworkIndex = 0;
|
||||
let cgNetwork;
|
||||
@ -1985,7 +1985,7 @@ define([
|
||||
// Use promises to know when all the cryptget are done
|
||||
// so that we can disconnect the network
|
||||
cgNetworkStatus[cgNetworkId] ||= [];
|
||||
cgNetworkStatus.push(new Promise((res) => {
|
||||
cgNetworkStatus[cgNetworkId].push(new Promise((res) => {
|
||||
Cryptget.get(data.hash, function (err, val) {
|
||||
res(network);
|
||||
cb({
|
||||
@ -2033,9 +2033,17 @@ define([
|
||||
});
|
||||
});
|
||||
sframeChan.on('EV_CRYPTGET_DISCONNECT', function () {
|
||||
if (!cgNetwork) { return; }
|
||||
cgNetwork.disconnect();
|
||||
const prom = cgNetworkStatus[cgNetworkId] || [];
|
||||
Promise.all(prom).then((nw) => {
|
||||
let network = nw[0];
|
||||
if (typeof(network?.disconnect) === "function") {
|
||||
network.disconnect();
|
||||
}
|
||||
});
|
||||
cgNetwork = undefined;
|
||||
cgNetworkId = 0;
|
||||
cgNetworkIndex = 0;
|
||||
cgNetworkStatus = {};
|
||||
});
|
||||
|
||||
if (cfg.addRpc) {
|
||||
|
||||
@ -136,7 +136,6 @@ define([
|
||||
});
|
||||
});
|
||||
sframeChan.on('Q_FORM_FETCH_ANSWERS', function (data, _cb) {
|
||||
var formHref = data.href;
|
||||
var cb = Utils.Util.once(_cb);
|
||||
var myKeys = {};
|
||||
var myFormKeys;
|
||||
@ -167,19 +166,19 @@ define([
|
||||
if (myFormKeys.formSeed) {
|
||||
myFormKeys = Cryptpad.getAnonymousKeys(myFormKeys.formSeed, data.channel, Utils);
|
||||
}
|
||||
var keys;
|
||||
var privateKey, publicKey;
|
||||
var formData;
|
||||
|
||||
let secret, parsed;
|
||||
if (data.drive) {
|
||||
var secret = Utils.Hash.getSecrets('form', formHref, data.password);
|
||||
keys = secret && secret.keys;
|
||||
formData = Utils.Hash.getFormData(secret);
|
||||
parsed = Utils.Hash.parseTypeHash('form', data.href);
|
||||
secret = Utils.Hash.getSecrets('form', data.href, data.password);
|
||||
} else {
|
||||
formData = Utils.Hash.getFormData(Utils.secret);
|
||||
keys = Utils.secret && Utils.secret.keys;
|
||||
secret = Utils.secret;
|
||||
}
|
||||
privateKey = formData?.form_private;
|
||||
publicKey = formData?.form_public;
|
||||
let keys = (secret && secret.keys) || {};
|
||||
let formData = Utils.Hash.getFormData(secret);
|
||||
const privateKey = parsed.auditorKey || formData?.form_private;
|
||||
const publicKey = formData?.form_public;
|
||||
|
||||
var curvePrivate = privateKey || data.privateKey;
|
||||
if (!curvePrivate) { return void cb({error: 'EFORBIDDEN'}); }
|
||||
var cryptoKeys = {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user