Commit 617f906272a087ee445056d1b722241f1728275c
Merge branch 'ssb_minimal' of ../_scuttlebot
Dominic Tarr committed on 10/29/2017, 6:47:04 AMParent: 34a334f786f16f1ad957c4c2981f04a5fb8038ce
Parent: 94202451dc4011befeceade810fdf8a1895f768f
Files changed
index.js | changed |
plugins/invite.js | changed |
test/caps.js | changed |
test/random.js | changed |
test/realtime.js | changed |
index.js | ||
---|---|---|
@@ -102,8 +102,9 @@ | ||
102 | 102 … | close : valid.async(close), |
103 | 103 … | |
104 | 104 … | publish : valid.async(feed.add, 'string|msgContent'), |
105 | 105 … | add : valid.async(ssb.add, 'msg'), |
106 … | + queue : valid.async(ssb.queue, 'msg'), | |
106 | 107 … | get : valid.async(ssb.get, 'msgId|number'), |
107 | 108 … | |
108 | 109 … | post : ssb.post, |
109 | 110 … | |
@@ -160,4 +161,5 @@ | ||
160 | 161 … | //when creating a Sbot instance. |
161 | 162 … | appKey: require('./lib/ssb-cap') |
162 | 163 … | }) |
163 | 164 … | .use(SSB) |
165 … | + |
plugins/invite.js | ||
---|---|---|
@@ -183,13 +183,36 @@ | ||
183 | 183 … | } |
184 | 184 … | |
185 | 185 … | opts = ref.parseAddress(ref.parseInvite(invite).remote) |
186 | 186 … | |
187 | - ssbClient(null, { | |
188 | - caps: config.caps, | |
189 | - remote: invite, | |
190 | - manifest: {invite: {use: 'async'}, getAddress: 'async'} | |
191 | - }, function (err, rpc) { | |
187 … | + function connect (cb) { | |
188 … | + ssbClient(null, { | |
189 … | + caps: config.caps, | |
190 … | + remote: invite, | |
191 … | + manifest: {invite: {use: 'async'}, getAddress: 'async'} | |
192 … | + }, cb) | |
193 … | + } | |
194 … | + | |
195 … | + // retry 3 times, with timeouts. | |
196 … | + // This is an UGLY hack to get the test/invite.js to pass | |
197 … | + // it's a race condition, I think because the server isn't ready | |
198 … | + // when it connects? | |
199 … | + | |
200 … | + function retry (fn, cb) { | |
201 … | + var n = 0 | |
202 … | + ;(function next () { | |
203 … | + var start = Date.now() | |
204 … | + fn(function (err, value) { | |
205 … | + n++ | |
206 … | + if(n >= 3) cb(err, value) | |
207 … | + else if(err) setTimeout(next, 500 + (Date.now()-start)*n) | |
208 … | + else cb(null, value) | |
209 … | + }) | |
210 … | + })() | |
211 … | + } | |
212 … | + | |
213 … | + retry(connect, function (err, rpc) { | |
214 … | + | |
192 | 215 … | if(err) return cb(explain(err, 'could not connect to server')) |
193 | 216 … | |
194 | 217 … | // command the peer to follow me |
195 | 218 … | rpc.invite.use({ feed: server.id }, function (err, msg) { |
test/caps.js | ||
---|---|---|
@@ -63,13 +63,13 @@ | ||
63 | 63 … | tape('signatures not accepted if made from different caps', function (t) { |
64 | 64 … | |
65 | 65 … | |
66 | 66 … | dbA.publish({type: 'test', foo: true}, function (err, msg) { |
67 | - | |
67 … | + if(err) throw err | |
68 | 68 … | console.log(msg) |
69 | 69 … | dbB.add(msg.value, function (err) { |
70 | 70 … | t.ok(err) //should not be valid in this universe |
71 | - t.ok(/signature was invalid/.test(err.message)) | |
71 … | + t.ok(/invalid signature/.test(err.message)) | |
72 | 72 … | console.log(err.stack) |
73 | 73 … | t.end() |
74 | 74 … | |
75 | 75 … | }) |
test/random.js | ||
---|---|---|
@@ -11,9 +11,8 @@ | ||
11 | 11 … | var dogs = require('dog-names') |
12 | 12 … | |
13 | 13 … | var generated = {}, F=100,N=10000 |
14 | 14 … | |
15 | - | |
16 | 15 … | //build a random network, with n members. |
17 | 16 … | function bar (prog) { |
18 | 17 … | var r = prog.progress/prog.total |
19 | 18 … | var s = '\r', M = 50 |
@@ -190,9 +189,10 @@ | ||
190 | 189 … | |
191 | 190 … | pull( |
192 | 191 … | dump.createLogStream({live: true, keys: false}), |
193 | 192 … | pull.drain(function (e) { |
194 | - live ++ | |
193 … | + if(!(live ++ % 100)) | |
194 … | + console.log('live', live) | |
195 | 195 … | }) |
196 | 196 … | ) |
197 | 197 … | |
198 | 198 … | var wants = {}, n = 0, c = 0, start = Date.now() |
test/realtime.js | ||
---|---|---|
@@ -44,11 +44,10 @@ | ||
44 | 44 … | ary.push(data); |
45 | 45 … | }) |
46 | 46 … | ) |
47 | 47 … | var l = 12 |
48 | - var int = setInterval(function () { | |
48 … | + setTimeout(function next () { | |
49 | 49 … | if(!--l) { |
50 | - clearInterval(int) | |
51 | 50 … | var _ary = [] |
52 | 51 … | pull( |
53 | 52 … | bob.createHistoryStream({id: alice.id, sequence: 0, keys: false}), |
54 | 53 … | pull.collect(function (err, _ary) { |
@@ -62,11 +61,11 @@ | ||
62 | 61 … | alice.publish({type: 'test', value: new Date()}, |
63 | 62 … | function (err, msg){ |
64 | 63 … | if(err) throw err |
65 | 64 … | console.log('added', msg.key, msg.value.sequence) |
65 … | + setTimeout(next, 200) | |
66 | 66 … | }) |
67 | 67 … | }, 200) |
68 | 68 … | |
69 | 69 … | }) |
70 | 70 … | }) |
71 | 71 … | |
72 | - |
Built with git-ssb-web