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