cmd/ipfs: Load API address from config
Matt Bell committed
Oct 27, 2014 at 17:01 UTC
cf60fdd3d9e266dd56d1fb45bfab4fd5b50a6136
1 file changed
+27
-2
cmd/ipfs/daemon.go
+27
-2
@@ -5,6 +5,8 @@ import (
5
"net/http"
6
7
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/camlistore/lock"
8
+ ma "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr"
9
+ manet "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr/net"
10
11
cmds "github.com/jbenet/go-ipfs/commands"
12
cmdsHttp "github.com/jbenet/go-ipfs/commands/http"
@@ -41,10 +43,33 @@ func daemonFunc(req cmds.Request, res cmds.Response) {
43
}
44
defer lk.Close()
45
46
+ configFile, err := config.Filename(configPath)
47
+ if err != nil {
48
+ res.SetError(err, cmds.ErrNormal)
49
+ return
50
+ }
51
+
52
+ config, err := config.Load(configFile)
53
+ if err != nil {
54
+ res.SetError(err, cmds.ErrNormal)
55
+ return
56
+ }
57
+
58
+ addr, err := ma.NewMultiaddr(config.Addresses.API)
59
+ if err != nil {
60
+ res.SetError(err, cmds.ErrNormal)
61
+ return
62
+ }
63
+
64
+ _, host, err := manet.DialArgs(addr)
65
+ if err != nil {
66
+ res.SetError(err, cmds.ErrNormal)
67
+ return
68
+ }
69
+
70
handler := cmdsHttp.Handler{}
71
http.Handle(cmdsHttp.ApiPath+"/", handler)
46
- // TODO: load listen address/port from config/options
47
- err = http.ListenAndServe(":8080", nil)
72
+ err = http.ListenAndServe(host, nil)
73
if err != nil {
74
res.SetError(err, cmds.ErrNormal)
75
return