diff --git a/app/lib/dal/fileDAL.js b/app/lib/dal/fileDAL.js index 1da9a15636f65428cc7e57dc6695125683f5861a..26ac953007d0bd0240b4f773a1d2237e10c3d8e4 100644 --- a/app/lib/dal/fileDAL.js +++ b/app/lib/dal/fileDAL.js @@ -538,7 +538,7 @@ function FileDAL(params) { cindex = cindex.concat(yield indexer.ruleIndexGenCertificationExpiry(HEAD, that)); mindex = mindex.concat(yield indexer.ruleIndexGenMembershipExpiry(HEAD, that)); iindex = iindex.concat(yield indexer.ruleIndexGenExclusionByMembership(HEAD, mindex, that)); - iindex = iindex.concat(yield indexer.ruleIndexGenExclusionByCertificatons(HEAD, cindex, conf, that)); + iindex = iindex.concat(yield indexer.ruleIndexGenExclusionByCertificatons(HEAD, cindex, iindex, conf, that)); mindex = mindex.concat(yield indexer.ruleIndexGenImplicitRevocation(HEAD, that)); yield indexer.ruleIndexCorrectMembershipExpiryDate(HEAD, mindex, that); yield indexer.ruleIndexCorrectCertificationExpiryDate(HEAD, cindex, that); diff --git a/app/lib/dup/indexer.js b/app/lib/dup/indexer.js index 2d52a073b260c8a4a816333e6d3084359555e1bc..c5aead1e75c3da87a75e11f19ae3271612d3e159 100644 --- a/app/lib/dup/indexer.js +++ b/app/lib/dup/indexer.js @@ -1410,7 +1410,7 @@ const indexer = module.exports = { }), // BR_G95 - ruleIndexGenExclusionByCertificatons: (HEAD, cindex, conf, dal) => co(function*() { + ruleIndexGenExclusionByCertificatons: (HEAD, cindex, iindex, conf, dal) => co(function*() { const exclusions = []; const expiredCerts = _.filter(cindex, (c) => c.expired_on > 0); for (const CERT of expiredCerts) { @@ -1418,8 +1418,9 @@ const indexer = module.exports = { const just_received = _.filter(cindex, (c) => c.receiver == CERT.receiver && c.expired_on == 0); const non_expired_global = yield dal.cindexDAL.getValidLinksTo(CERT.receiver); if ((count(non_expired_global) - count(just_expired) + count(just_received)) < conf.sigQty) { + const isInExcluded = _.filter(iindex, (i) => i.member === false && i.pub === CERT.receiver)[0]; const idty = yield dal.iindexDAL.getFromPubkey(CERT.receiver); - if (idty.member) { + if (!isInExcluded && idty.member) { exclusions.push({ op: 'UPDATE', pub: CERT.receiver, diff --git a/package.json b/package.json index e652efbd9fd4080f1fe8beb07f954c7132b82ed0..7d3c0d194052b48614f618be423668972e37f788 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "daemonize2": "0.4.2", "duniter-bma": "^0.2.11", "duniter-common": "0.1.0", - "duniter-crawler": "^0.2.16", + "duniter-crawler": "^0.2.17", "duniter-keypair": "^0.3.0", "duniter-prover": "^0.2.9", "event-stream": "3.3.4",