Files
kapow/internal/server/server.go
2019-10-08 09:40:51 +02:00

34 lines
987 B
Go

package server
import (
"fmt"
"net/url"
"strconv"
)
// StartServer Starts one instance of each server in a goroutine and remains listening on a channel for trace events generated by them
func StartServer(bindAddr, certfile, keyfile string, interactive bool) error {
// Parse URI and manage parameters to extract
userBindAddr, err := url.Parse(bindAddr)
if err != nil {
return err
}
userPort, err := strconv.ParseInt(userBindAddr.Port(), 10, 64)
if err != nil {
return fmt.Errorf("Error extracting port from provided address %s", bindAddr)
}
ctrlBindAddr := fmt.Sprintf("%s:%d", userBindAddr.Host, userPort+1)
dataBindAddr := fmt.Sprintf("%s:%d", userBindAddr.Host, userPort+2)
fmt.Printf("User server bind address: %s, Control server bind address: %s, Data server bind address: %s", bindAddr, ctrlBindAddr, dataBindAddr)
//go ctrlServer.Start(traceChannel)
//go dataServer.Start(traceChannel)
//go ctrlServer.Start(traceChannel)
// Wait for ever
select {}
}