@cryptotaxi247 / kubo / commits / 6f54181f6

ipfs swarm addrs listen command, fix t0060-daemon

Necessary for meaningful semantics in the presence of address filtering. License: MIT Signed-off-by: vyzo <vyzo@hackzen.org>

vyzo committed Jul 31, 2017 at 22:53 UTC 6f54181f665b3bb4452127fdc13851239dbcfad0
2 files changed +47 -2
core/commands/swarm.go
+42 -1
@@ -202,7 +202,8 @@ var swarmAddrsCmd = &cmds.Command{
202 `,
203 },
204 Subcommands: map[string]*cmds.Command{
205 - "local": swarmAddrsLocalCmd,
205 + "local": swarmAddrsLocalCmd,
206 + "listen": swarmAddrsListenCmd,
207 },
208 Run: func(req cmds.Request, res cmds.Response) {
209
@@ -301,6 +302,46 @@ var swarmAddrsLocalCmd = &cmds.Command{
302 },
303 }
304
305 +var swarmAddrsListenCmd = &cmds.Command{
306 + Helptext: cmds.HelpText{
307 + Tagline: "List interface listening addresses.",
308 + ShortDescription: `
309 +'ipfs swarm addrs listen' lists all interface addresses the node is listening on.
310 +`,
311 + },
312 + Run: func(req cmds.Request, res cmds.Response) {
313 +
314 + n, err := req.InvocContext().GetNode()
315 + if err != nil {
316 + res.SetError(err, cmds.ErrNormal)
317 + return
318 + }
319 +
320 + if n.PeerHost == nil {
321 + res.SetError(errNotOnline, cmds.ErrClient)
322 + return
323 + }
324 +
325 + var addrs []string
326 + maddrs, err := n.PeerHost.Network().InterfaceListenAddresses()
327 + if err != nil {
328 + res.SetError(err, cmds.ErrNormal)
329 + return
330 + }
331 +
332 + for _, addr := range maddrs {
333 + addrs = append(addrs, addr.String())
334 + }
335 + sort.Sort(sort.StringSlice(addrs))
336 +
337 + res.SetOutput(&stringList{addrs})
338 + },
339 + Type: stringList{},
340 + Marshalers: cmds.MarshalerMap{
341 + cmds.Text: stringListMarshaler,
342 + },
343 +}
344 +
345 var swarmConnectCmd = &cmds.Command{
346 Helptext: cmds.HelpText{
347 Tagline: "Open connection to a given address.",
test/sharness/t0060-daemon.sh
+5 -1
@@ -21,6 +21,10 @@ test_expect_success "'ipfs swarm addrs local' works" '
21 ipfs swarm addrs local >local_addrs
22 '
23
24 +test_expect_success "ipfs swarm addrs listen; works" '
25 + ipfs swarm addrs listen >listen_addrs
26 +'
27 +
28 test_expect_success "ipfs peer id looks good" '
29 test_check_peerid "$PEERID"
30 '
@@ -38,7 +42,7 @@ test_expect_success "ipfs gateway works with the correct allowed origin port" '
42 test_expect_success "ipfs daemon output looks good" '
43 STARTFILE="ipfs cat /ipfs/$HASH_WELCOME_DOCS/readme" &&
44 echo "Initializing daemon..." >expected_daemon &&
41 - sed "s/^/Swarm listening on /" local_addrs >>expected_daemon &&
45 + sed "s/^/Swarm listening on /" listen_addrs >>expected_daemon &&
46 sed "s/^/Swarm announcing /" local_addrs >>expected_daemon &&
47 echo "API server listening on '$API_MADDR'" >>expected_daemon &&
48 echo "Gateway (readonly) server listening on '$GWAY_MADDR'" >>expected_daemon &&