Commit b357b56dacd821a496aeddf0de4a7b1713bc34a9
use pull-streams properly
* domains must always be lowercase * always return something, even if it's nothingansuz committed on 10/31/2016, 4:03:44 PM
Parent: fe970e28e308489bb390816eaf391da29c39b0b7
Files changed
index.js | changed |
publish.js | changed |
index.js | ||
---|---|---|
@@ -1,8 +1,8 @@ | ||
1 | 1 … | var Dnsd = require("dnsd"); |
2 | 2 … | var Client = require("ssb-client"); |
3 | 3 … | var Pull = require("pull-stream"); |
4 | -var Paramap = require("pull-paramap"); | |
4 … | +var Ansuz = require("ansuz"); | |
5 | 5 … | |
6 | 6 … | var Config; |
7 | 7 … | try { |
8 | 8 … | Config = require("./config.js"); |
@@ -12,9 +12,11 @@ | ||
12 | 12 … | } |
13 | 13 … | |
14 | 14 … | var log = { |
15 | 15 … | req: function (req) { |
16 … | + if (!Config.verbose) { return; } | |
16 | 17 … | var q = req.question[0]; |
18 … | + console.log(); | |
17 | 19 … | console.log({ |
18 | 20 … | name: q.name, |
19 | 21 … | type: q.type, |
20 | 22 … | class: q.class, |
@@ -22,15 +24,15 @@ | ||
22 | 24 … | }, |
23 | 25 … | }; |
24 | 26 … | |
25 | 27 … | var answer = function (sbot, req, res) { |
26 | - console.log(); | |
27 | 28 … | log.req(req); |
28 | 29 … | |
29 | 30 … | var q = req.question; |
30 | 31 … | |
32 … | + // TODO validate queries more carefully | |
31 | 33 … | if (!q.length) { |
32 | - console.log("invalid question"); | |
34 … | + console.error("invalid question"); | |
33 | 35 … | res.end(); |
34 | 36 … | } |
35 | 37 … | |
36 | 38 … | var name = q[0].name; |
@@ -38,18 +40,16 @@ | ||
38 | 40 … | |
39 | 41 … | Pull(sbot.messagesByType({ |
40 | 42 … | type: 'ssb-dns', |
41 | 43 … | }), |
42 | - Paramap(function getAvatar(msg, cb) { | |
43 | - cb(null, msg); | |
44 … | + Pull.map(function (msg) { | |
45 … | + return Ansuz.find(msg, ['value', 'content', 'record']); | |
44 | 46 … | }), |
45 | - Pull.drain(function printMessage(msg) { | |
46 | - var record = msg.value.content.record; | |
47 | - | |
47 … | + Pull.filter(function (record) { return record; }), | |
48 … | + Pull.find(function printMessage(record) { | |
48 | 49 … | if (typeof(record) !== 'object') { return; } |
49 | - | |
50 | 50 … | if (name && type && |
51 | - record.name === name && | |
51 … | + record.name === name.toLowerCase() && | |
52 | 52 … | record.type === type && |
53 | 53 … | record.value) { |
54 | 54 … | console.log("%s (%s) => %s", name, record.type, record.value); |
55 | 55 … | |
@@ -58,12 +58,14 @@ | ||
58 | 58 … | res.answer.push({ |
59 | 59 … | name: record.name, |
60 | 60 … | type: record.type, |
61 | 61 … | data: record.value, |
62 | - ttl: 500, | |
62 … | + ttl: 500, // short ttl | |
63 | 63 … | }); |
64 | - res.end() | |
64 … | + return true; | |
65 | 65 … | } |
66 … | + }, function () { | |
67 … | + res.end(); | |
66 | 68 … | })); |
67 | 69 … | }; |
68 | 70 … | |
69 | 71 … | var createServer = function (sbot, port, host, cb) { |
Built with git-ssb-web