Skip to content
This repository has been archived by the owner on Mar 9, 2022. It is now read-only.

Commit

Permalink
allow multiple API/Gateway addresses
Browse files Browse the repository at this point in the history
Alternative to #6 that doesn't require a migration.
  • Loading branch information
Stebalien committed Sep 15, 2018
1 parent 66ebd9c commit 8b4cdc9
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 6 deletions.
23 changes: 21 additions & 2 deletions addresses.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,29 @@
package config

import (
"encoding/json"
)

// Strings is a helper type that can decode a single string into a string slice.
type Strings []string

func (o *Strings) UnmarshalJSON(data []byte) error {
if data[0] == '[' {
return json.Unmarshal(data, (*[]string)(o))
}
var value string
if err := json.Unmarshal(data, &value); err != nil {
return err
}
*o = []string{value}
return nil
}

// Addresses stores the (string) multiaddr addresses for the node.
type Addresses struct {
Swarm []string // addresses for the swarm to listen on
Announce []string // swarm addresses to announce to the network
NoAnnounce []string // swarm addresses not to announce to the network
API string // address for the local API (RPC)
Gateway string // address to listen on for IPFS HTTP object gateway
API Strings // address for the local API (RPC)
Gateway Strings // address to listen on for IPFS HTTP object gateway
}
4 changes: 2 additions & 2 deletions init.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,8 @@ func addressesConfig() Addresses {
},
Announce: []string{},
NoAnnounce: []string{},
API: "/ip4/127.0.0.1/tcp/5001",
Gateway: "/ip4/127.0.0.1/tcp/8080",
API: Strings{"/ip4/127.0.0.1/tcp/5001"},
Gateway: Strings{"/ip4/127.0.0.1/tcp/8080"},
}
}

Expand Down
4 changes: 2 additions & 2 deletions profile.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ profile, enables discovery in local networks.`,
is useful when using the daemon in test environments.`,

Transform: func(c *Config) error {
c.Addresses.API = "/ip4/127.0.0.1/tcp/0"
c.Addresses.Gateway = "/ip4/127.0.0.1/tcp/0"
c.Addresses.API = Strings{"/ip4/127.0.0.1/tcp/0"}
c.Addresses.Gateway = Strings{"/ip4/127.0.0.1/tcp/0"}
c.Addresses.Swarm = []string{
"/ip4/127.0.0.1/tcp/0",
}
Expand Down

0 comments on commit 8b4cdc9

Please sign in to comment.