Off the events of the ipc task done in webtorrent node
authorChocobozzz <florian.bigard@gmail.com>
Mon, 2 Nov 2015 21:42:27 +0000 (22:42 +0100)
committerChocobozzz <florian.bigard@gmail.com>
Tue, 3 Nov 2015 07:10:30 +0000 (08:10 +0100)
src/webTorrentNode.js

index 507cf31fc025d2763013a1f9411f29b348517144..bc77872ceae73e83e290e8d6566e9479e585c75e 100644 (file)
@@ -88,7 +88,8 @@
     if (!webtorrentnode.silent) logger.debug('Node wants to seed ' + data._id)
 
     // Finish signal
-    ipc.server.on(nodeKey + '.seedDone.' + data._id, function (received) {
+    var event_key = nodeKey + '.seedDone.' + data._id
+    ipc.server.on(event_key, function listener (received) {
       if (!webtorrentnode.silent) logger.debug('Process seeded torrent ' + received.magnetUri)
 
       // This is a fake object, we just use the magnetUri in this project
@@ -96,6 +97,7 @@
         magnetURI: received.magnetUri
       }
 
+      ipc.server.off(event_key)
       callback(torrent)
     })
 
     if (!webtorrentnode.silent) logger.debug('Node wants to add ' + data._id)
 
     // Finish signal
-    ipc.server.on(nodeKey + '.addDone.' + data._id, function (received) {
+    var event_key = nodeKey + '.addDone.' + data._id
+    ipc.server.on(event_key, function (received) {
       if (!webtorrentnode.silent) logger.debug('Process added torrent')
 
       // This is a fake object, we just use the magnetUri in this project
         files: received.files
       }
 
+      ipc.server.off(event_key)
       callback(torrent)
     })
 
     if (!webtorrentnode.silent) logger.debug('Node wants to stop seeding ' + data._id)
 
     // Finish signal
-    ipc.server.on(nodeKey + '.removeDone.' + data._id, function (received) {
+    var event_key = nodeKey + '.removeDone.' + data._id
+    ipc.server.on(event_key, function (received) {
       if (!webtorrentnode.silent) logger.debug('Process removed torrent ' + data._id)
 
       var err = null
       if (received.err) err = received.err
 
+      ipc.server.off(event_key)
       callback(err)
     })