@cryptotaxi247 / kubo / commits / a7d1fd42d

updating daemon addr output

Juan Batiz-Benet committed Nov 18, 2014 at 08:17 UTC a7d1fd42d8d693ccb595fdb614965c6a6a079bd1
2 files changed +26 -20
cmd/ipfs/daemon.go
+25 -19
@@ -21,6 +21,8 @@ const (
21 mountKwd = "mount"
22 ipfsMountKwd = "mount-ipfs"
23 ipnsMountKwd = "mount-ipns"
24 + // apiAddrKwd = "address-api"
25 + // swarmAddrKwd = "address-swarm"
26 )
27
28 var daemonCmd = &cmds.Command{
@@ -40,6 +42,10 @@ the daemon.
42 cmds.BoolOption(mountKwd, "Mounts IPFS to the filesystem"),
43 cmds.StringOption(ipfsMountKwd, "Path to the mountpoint for IPFS (if using --mount)"),
44 cmds.StringOption(ipnsMountKwd, "Path to the mountpoint for IPNS (if using --mount)"),
45 +
46 + // TODO: add way to override addresses. tricky part: updating the config if also --init.
47 + // cmds.StringOption(apiAddrKwd, "Address for the daemon rpc API (overrides config)"),
48 + // cmds.StringOption(swarmAddrKwd, "Address for the swarm socket (overrides config)"),
49 },
50 Subcommands: map[string]*cmds.Command{},
51 Run: daemonFunc,
@@ -86,19 +92,16 @@ func daemonFunc(req cmds.Request) (interface{}, error) {
92 }
93 defer lock.Close()
94
89 - // make sure we construct online node.
95 + // OK!!! Now we're ready to construct the node.
96 + // make sure we construct an online node.
97 ctx.Online = true
98 node, err := ctx.GetNode()
99 if err != nil {
100 return nil, err
101 }
102
96 - addr, err := ma.NewMultiaddr(cfg.Addresses.API)
97 - if err != nil {
98 - return nil, err
99 - }
100 -
101 - _, host, err := manet.DialArgs(addr)
103 + // verify api address is valid multiaddr
104 + apiMaddr, err := ma.NewMultiaddr(cfg.Addresses.API)
105 if err != nil {
106 return nil, err
107 }
@@ -131,6 +134,17 @@ func daemonFunc(req cmds.Request) (interface{}, error) {
134 }
135 }
136
137 + return nil, listenAndServeAPI(node, req, apiMaddr)
138 +}
139 +
140 +func listenAndServeAPI(node *core.IpfsNode, req cmds.Request, addr ma.Multiaddr) error {
141 +
142 + _, host, err := manet.DialArgs(addr)
143 + if err != nil {
144 + return err
145 + }
146 +
147 + server := manners.NewServer()
148 mux := http.NewServeMux()
149 cmdHandler := cmdsHttp.NewHandler(*req.Context(), commands.Root)
150 mux.Handle(cmdsHttp.ApiPath+"/", cmdHandler)
@@ -138,15 +152,6 @@ func daemonFunc(req cmds.Request) (interface{}, error) {
152 ifpsHandler := &ipfsHandler{node}
153 mux.Handle("/ipfs/", ifpsHandler)
154
141 - err = listenAndServe(node, mux, host)
142 - return nil, err
143 -}
144 -
145 -func listenAndServe(node *core.IpfsNode, mux *http.ServeMux, host string) error {
146 -
147 - fmt.Printf("API server listening on '%s'\n", host)
148 - s := manners.NewServer()
149 -
155 done := make(chan struct{}, 1)
156 defer func() {
157 done <- struct{}{}
@@ -160,11 +165,12 @@ func listenAndServe(node *core.IpfsNode, mux *http.ServeMux, host string) error
165 return
166 }
167
163 - log.Info("terminating daemon at %s...", host)
164 - s.Shutdown <- true
168 + log.Info("terminating daemon at %s...", addr)
169 + server.Shutdown <- true
170 }()
171
167 - if err := s.ListenAndServe(host, mux); err != nil {
172 + fmt.Printf("daemon listening on %s\n", addr)
173 + if err := server.ListenAndServe(host, mux); err != nil {
174 return err
175 }
176
test/lib/test-lib.sh
+1 -1
@@ -58,7 +58,7 @@ test_launch_ipfs_mount() {
58
59 test_expect_success FUSE "'ipfs daemon' output looks good" '
60 IPFS_PID=$! &&
61 - echo "API server listening on '\''127.0.0.1:5001'\''" >expected &&
61 + echo "daemon listening on /ip4/127.0.0.1/tcp/5001" >expected &&
62 test_cmp_repeat_10_sec expected actual
63 '
64