From c2b1b66cacc5eca6ee1a447ffbad93116839b2a7 Mon Sep 17 00:00:00 2001
From: librelois <elois@ifee.fr>
Date: Mon, 23 Apr 2018 19:27:28 +0200
Subject: [PATCH] [fix] add resetWot and write to each modifications

---
 .gitignore   |  1 +
 lib/index.js | 40 ++++++++++++++++++++++++++++++++++------
 2 files changed, 35 insertions(+), 6 deletions(-)

diff --git a/.gitignore b/.gitignore
index 0b3cb79..8c8bf61 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+test.bin
 native/target
 native/index.node
 native/artifacts.json
diff --git a/lib/index.js b/lib/index.js
index 7b577e2..e3bb6c8 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -90,25 +90,44 @@ const WotB = {
         return addon.set_max_links(this.instanceID, maxCert);
     },
 
-
     addNode: function() {
-        return addon.add_node(this.instanceID);
+        var result = addon.add_node(this.instanceID);
+        if (this.filePath.length > 0) {
+            this.write();
+        }
+        return result;
     },
 
     removeNode: function() {
-        return addon.rem_node(this.instanceID);
+        var result = addon.rem_node(this.instanceID);
+        if (this.filePath.length > 0) {
+            this.write();
+        }
+        return result;
     },
 
     setEnabled: function(is_enabled, nodeId) {
-        return addon.set_enabled(this.instanceID, is_enabled, nodeId);
+        var result = addon.set_enabled(this.instanceID, is_enabled, nodeId);
+        if (this.filePath.length > 0) {
+            this.write();
+        }
+        return result;
     },
 
     addLink: function(source, target) {
-        return addon.add_link(this.instanceID, source, target);
+        var result = addon.add_link(this.instanceID, source, target);
+        if (this.filePath.length > 0) {
+            this.write();
+        }
+        return result;
     },
 
     removeLink: function(source, target) {
-        return addon.rem_link(this.instanceID, source, target);
+        var result = addon.rem_link(this.instanceID, source, target);
+        if (this.filePath.length > 0) {
+            this.write();
+        }
+        return result;
     },
 
     isOutdistanced: function(node, sentry_requirement, step_max, x_percent) {
@@ -136,5 +155,14 @@ const WotB = {
 
     clear: function() {
         return addon.remove_wot(this.instanceID);
+    },
+
+    resetWoT: function() {
+        var sigStock = addon.getMaxCert(this.instanceID);
+        addon.remove_wot(this.instanceID);
+        this.instanceID = addon.new_memory_instance(sigStock);
+        if (filePath.length > 0) {
+            this.write();
+        }
     }
 }
\ No newline at end of file
-- 
GitLab