diff --git a/gun.js b/gun.js index 0be1772f..3aec8afa 100644 --- a/gun.js +++ b/gun.js @@ -2126,10 +2126,10 @@ mesh.hi = function(peer){ var tmp = peer.wire || {}; if(peer.id || peer.url){ + Type.obj.del(opt.peers, tmp.pid); opt.peers[peer.url || peer.id] = peer; - Type.obj.del(opt.peers, tmp.id); } else { - tmp = tmp.id = tmp.id || Type.text.random(9); + tmp = peer.id = peer.id || Type.text.random(9); mesh.say({dam: '?'}, opt.peers[tmp] = peer); } if(!tmp.hied){ ctx.on(tmp.hied = 'hi', peer) } @@ -2154,7 +2154,9 @@ // }); return; } - peer.id = peer.id || msg.pid; + if(!peer.wire){ return } + if(peer.wire.pid){ return } // they already set their ID! + peer.id = peer.wire.pid = msg.pid; mesh.hi(peer); } return mesh; diff --git a/sea.js b/sea.js index 95ae6fc2..f44214cd 100644 --- a/sea.js +++ b/sea.js @@ -1113,6 +1113,10 @@ } var ctx = this.as; (msg._||(msg._=function(){})).user = ctx.user; + if(ctx.opt.faith && msg._.faith){ // you probably shouldn't have faith in this! + this.to.next(msg); + return; + } security.call(this, msg); } diff --git a/sea/index.js b/sea/index.js index a1d880af..56afb70a 100644 --- a/sea/index.js +++ b/sea/index.js @@ -55,6 +55,10 @@ } var ctx = this.as; (msg._||(msg._=function(){})).user = ctx.user; + if(ctx.opt.faith && msg._.faith){ // you probably shouldn't have faith in this! + this.to.next(msg); + return; + } security.call(this, msg); } diff --git a/src/adapters/mesh.js b/src/adapters/mesh.js index 3904cd72..f62f81a4 100644 --- a/src/adapters/mesh.js +++ b/src/adapters/mesh.js @@ -188,10 +188,10 @@ function Mesh(ctx){ mesh.hi = function(peer){ var tmp = peer.wire || {}; if(peer.id || peer.url){ + Type.obj.del(opt.peers, tmp.pid); opt.peers[peer.url || peer.id] = peer; - Type.obj.del(opt.peers, tmp.id); } else { - tmp = tmp.id = tmp.id || Type.text.random(9); + tmp = peer.id = peer.id || Type.text.random(9); mesh.say({dam: '?'}, opt.peers[tmp] = peer); } if(!tmp.hied){ ctx.on(tmp.hied = 'hi', peer) } @@ -216,7 +216,9 @@ function Mesh(ctx){ // }); return; } - peer.id = peer.id || msg.pid; + if(!peer.wire){ return } + if(peer.wire.pid){ return } // they already set their ID! + peer.id = peer.wire.pid = msg.pid; mesh.hi(peer); } return mesh; diff --git a/test/tmp/tmp.html b/test/tmp/tmp.html new file mode 100644 index 00000000..39e50963 --- /dev/null +++ b/test/tmp/tmp.html @@ -0,0 +1,50 @@ + + +
+ + + + + + + + + + + \ No newline at end of file