Skip to content

Commit

Permalink
feat(daemon): allow user to specify network listen details for daemon
Browse files Browse the repository at this point in the history
  • Loading branch information
mefellows committed Feb 19, 2017
1 parent c4944c7 commit 5c89b30
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 14 deletions.
8 changes: 6 additions & 2 deletions command/daemon.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import (
)

var port int
var network string
var address string
var daemonCmdInstance *daemon.Daemon
var daemonCmd = &cobra.Command{
Use: "daemon",
Expand All @@ -19,11 +21,13 @@ var daemonCmd = &cobra.Command{
verifier := &daemon.VerificationService{}
verifier.Setup()
daemonCmdInstance = daemon.NewDaemon(mock, verifier)
daemonCmdInstance.StartDaemon(port)
daemonCmdInstance.StartDaemon(port, network, address)
},
}

func init() {
daemonCmd.Flags().IntVarP(&port, "port", "p", 6666, "Local daemon port")
daemonCmd.Flags().IntVarP(&port, "port", "p", 6666, "Local daemon port to listen on")
daemonCmd.Flags().StringVarP(&network, "network", "n", "", "Local network interface to listen on ('tcp', 'tcp4', 'tcp6')")
daemonCmd.Flags().StringVarP(&address, "address", "a", "", "Local network address to listen on (e.g. '', '127.0.0.1', '[::1]' etc.)")
RootCmd.AddCommand(daemonCmd)
}
1 change: 1 addition & 0 deletions command/daemon_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ func TestDaemonCommand(t *testing.T) {
args := []string{"daemon"}
p, _ := utils.GetFreePort()
port = p
network = "tcp"
go daemonCmd.Run(nil, args)

waitForPortInTest(port, t)
Expand Down
6 changes: 3 additions & 3 deletions daemon/daemon.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ func NewDaemon(MockServiceManager Service, verificationServiceManager Service) *
}

// StartDaemon starts the daemon RPC server.
func (d Daemon) StartDaemon(port int) {
log.Println("[INFO] daemon - starting daemon on port", port)
func (d Daemon) StartDaemon(port int, network string, address string) {
log.Println("[INFO] daemon - starting daemon on network:", network, "address:", address, "port:", port)

serv := rpc.NewServer()
serv.Register(d)
Expand All @@ -62,7 +62,7 @@ func (d Daemon) StartDaemon(port int) {
// Workaround for multiple RPC ServeMux's
http.DefaultServeMux = oldMux

l, err := net.Listen("tcp", fmt.Sprintf(":%d", port))
l, err := net.Listen(network, fmt.Sprintf("%s:%d", address, port))
if err != nil {
panic(err)
}
Expand Down
16 changes: 8 additions & 8 deletions daemon/daemon_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ func TestNewDaemon(t *testing.T) {
func TestStopDaemon(t *testing.T) {
d, _ := createMockedDaemon(true)
port, _ := utils.GetFreePort()
go d.StartDaemon(port)
go d.StartDaemon(port, "tcp", "")
connectToDaemon(port, t)
var res string
d.StopDaemon("", &res)
Expand All @@ -77,7 +77,7 @@ func TestStopDaemon(t *testing.T) {
func TestShutdownDaemon(t *testing.T) {
d, _ := createMockedDaemon(true)
port, _ := utils.GetFreePort()
go d.StartDaemon(port)
go d.StartDaemon(port, "tcp", "")
connectToDaemon(port, t)
d.Shutdown()
}
Expand Down Expand Up @@ -129,7 +129,7 @@ func TestStartAndStopDaemon(t *testing.T) {
port, _ := utils.GetFreePort()
daemon, _ := createMockedDaemon(true)
defer waitForDaemonToShutdown(port, daemon, t)
go daemon.StartDaemon(port)
go daemon.StartDaemon(port, "tcp", "")
connectToDaemon(port, t)
}

Expand Down Expand Up @@ -339,7 +339,7 @@ func TestRPCClient_List(t *testing.T) {
daemon, _ := createMockedDaemon(true)
port, _ := utils.GetFreePort()
defer waitForDaemonToShutdown(port, daemon, t)
go daemon.StartDaemon(port)
go daemon.StartDaemon(port, "tcp", "")
connectToDaemon(port, t)

client, err := rpc.DialHTTP("tcp", fmt.Sprintf(":%d", port))
Expand All @@ -358,7 +358,7 @@ func TestRPCClient_StartServer(t *testing.T) {
daemon, _ := createMockedDaemon(true)
port, _ := utils.GetFreePort()
defer waitForDaemonToShutdown(port, daemon, t)
go daemon.StartDaemon(port)
go daemon.StartDaemon(port, "tcp", "")
connectToDaemon(port, t)

client, err := rpc.DialHTTP("tcp", fmt.Sprintf(":%d", port))
Expand All @@ -381,7 +381,7 @@ func TestRPCClient_StopServer(t *testing.T) {
daemon, manager := createMockedDaemon(true)
port, _ := utils.GetFreePort()
defer waitForDaemonToShutdown(port, daemon, t)
go daemon.StartDaemon(port)
go daemon.StartDaemon(port, "tcp", "")
connectToDaemon(port, t)

var cmd *exec.Cmd
Expand Down Expand Up @@ -412,7 +412,7 @@ func TestRPCClient_StopDaemon(t *testing.T) {
daemon, _ := createMockedDaemon(true)
port, _ := utils.GetFreePort()
defer waitForDaemonToShutdown(port, daemon, t)
go daemon.StartDaemon(port)
go daemon.StartDaemon(port, "tcp", "")
connectToDaemon(port, t)

client, err := rpc.DialHTTP("tcp", fmt.Sprintf(":%d", port))
Expand All @@ -429,7 +429,7 @@ func TestRPCClient_Verify(t *testing.T) {
daemon, _ := createMockedDaemon(true)
port, _ := utils.GetFreePort()
defer waitForDaemonToShutdown(port, daemon, t)
go daemon.StartDaemon(port)
go daemon.StartDaemon(port, "tcp", "")
connectToDaemon(port, t)

client, err := rpc.DialHTTP("tcp", fmt.Sprintf(":%d", port))
Expand Down
2 changes: 1 addition & 1 deletion dsl/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ func createDaemon(port int, success bool) (*daemon.Daemon, *daemon.ServiceMock)
}()

d := daemon.NewDaemon(svc, svc)
go d.StartDaemon(port)
go d.StartDaemon(port, "tcp", "")
return d, svc
}

Expand Down

0 comments on commit 5c89b30

Please sign in to comment.