Skip to content

Commit 921a0f6

Browse files
authored
Optional connection request server (#24)
* Rename package server to simulator * Separate simulator and CR server
1 parent 1f704b7 commit 921a0f6

20 files changed

+228
-131
lines changed

cmd/server/main.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
"github.com/rs/zerolog/log"
1313

1414
"github.com/localhots/SimulaTR69/datamodel"
15-
"github.com/localhots/SimulaTR69/server"
15+
"github.com/localhots/SimulaTR69/simulator"
1616
)
1717

1818
func main() {
@@ -21,10 +21,10 @@ func main() {
2121
Out: os.Stdout,
2222
TimeFormat: time.DateTime,
2323
})
24-
if err := server.LoadConfig(ctx); err != nil {
24+
if err := simulator.LoadConfig(ctx); err != nil {
2525
log.Fatal().Err(err).Msg("Failed to load config")
2626
}
27-
cfg := server.Config
27+
cfg := simulator.Config
2828

2929
log.Info().Str("file", cfg.DataModelPath).Msg("Loading datamodel")
3030
defaults, err := datamodel.LoadDataModelFile(cfg.DataModelPath)
@@ -54,7 +54,7 @@ func main() {
5454
Str("serial_number", id.SerialNumber).
5555
Msg("Simulating device")
5656

57-
srv := server.New(dm)
57+
srv := simulator.New(dm)
5858
go func() {
5959
// FIXME: something's off with error checking here
6060
// nolint:errorlint
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package server
1+
package simulator
22

33
import (
44
"strings"
@@ -8,7 +8,7 @@ import (
88
"github.com/localhots/SimulaTR69/rpc"
99
)
1010

11-
func (s *Server) handleAddObject(envID string, r *rpc.AddObjectRequest) *rpc.EnvelopeEncoder {
11+
func (s *Simulator) handleAddObject(envID string, r *rpc.AddObjectRequest) *rpc.EnvelopeEncoder {
1212
log.Info().Str("method", "AddObject").Msg("Received message")
1313
r.Debug()
1414
resp := rpc.NewEnvelope(envID)

server/config.go renamed to simulator/config.go

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
package server
1+
package simulator
22

33
import (
44
"context"
55
"errors"
66
"fmt"
7-
"net"
87
"time"
98

109
"github.com/rs/zerolog"
@@ -19,6 +18,10 @@ var Config struct {
1918
// debug, info, warn, error, fatal, panic.
2019
LogLevel string `env:"LOG_LEVEL, default=info"`
2120

21+
// ConnReqEnableHTTP enables an HTTP server that can accept connection
22+
// requests.
23+
ConnReqEnableHTTP bool `env:"CR_HTTP, default=true"`
24+
2225
// Host is the host name or IP address used by the simulator to accept
2326
// connection requests. If no value is provided it will be automatically
2427
// resolved.
@@ -99,13 +102,6 @@ func LoadConfig(ctx context.Context) error {
99102
return fmt.Errorf("load env config: %w", err)
100103
}
101104

102-
if Config.Host == "" {
103-
Config.Host, err = getIP()
104-
if err != nil {
105-
return fmt.Errorf("get ip address: %w", err)
106-
}
107-
}
108-
109105
if Config.ACSAuth != AuthNone {
110106
if Config.ACSUsername == "" || Config.ACSPassword == "" {
111107
return fmt.Errorf("auth %s: %w", Config.ACSAuth, ErrNoCreds)
@@ -120,17 +116,3 @@ func LoadConfig(ctx context.Context) error {
120116

121117
return nil
122118
}
123-
124-
func getIP() (string, error) {
125-
addrs, err := net.InterfaceAddrs()
126-
if err != nil {
127-
return "", err
128-
}
129-
for _, addr := range addrs {
130-
ipNet, ok := addr.(*net.IPNet)
131-
if ok && !ipNet.IP.IsLoopback() && ipNet.IP.To4() != nil {
132-
return ipNet.IP.String(), nil
133-
}
134-
}
135-
return "0.0.0.0", nil
136-
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package server
1+
package simulator
22

33
import (
44
"strings"
@@ -8,7 +8,7 @@ import (
88
"github.com/localhots/SimulaTR69/rpc"
99
)
1010

11-
func (s *Server) handleDeleteObject(envID string, r *rpc.DeleteObjectRequest) *rpc.EnvelopeEncoder {
11+
func (s *Simulator) handleDeleteObject(envID string, r *rpc.DeleteObjectRequest) *rpc.EnvelopeEncoder {
1212
log.Info().Str("method", "DeleteObject").Msg("Received message")
1313
r.Debug()
1414
resp := rpc.NewEnvelope(envID)
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package server
1+
package simulator
22

33
import (
44
"encoding/json"
@@ -11,7 +11,7 @@ import (
1111
"github.com/localhots/SimulaTR69/rpc"
1212
)
1313

14-
func (s *Server) handleDownload(envID string, r *rpc.DownloadRequest) *rpc.EnvelopeEncoder {
14+
func (s *Simulator) handleDownload(envID string, r *rpc.DownloadRequest) *rpc.EnvelopeEncoder {
1515
log.Info().Str("method", "Download").Msg("Received message")
1616
r.Debug()
1717
resp := rpc.NewEnvelope(envID)
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
package server
1+
package simulator
22

33
import (
44
"github.com/rs/zerolog/log"
55

66
"github.com/localhots/SimulaTR69/rpc"
77
)
88

9-
func (s *Server) handleFactoryReset(envID string) *rpc.EnvelopeEncoder {
9+
func (s *Simulator) handleFactoryReset(envID string) *rpc.EnvelopeEncoder {
1010
log.Info().Str("method", "FactoryReset").Msg("Received message")
1111
resp := rpc.NewEnvelope(envID)
1212

1313
// TODO: Make it so factory reset action is executed at the end of Inform
1414
s.dm.Reset()
15-
s.dm.SetConnectionRequestURL(s.URL())
15+
s.dm.SetConnectionRequestURL(s.server.url())
1616
if Config.SerialNumber != "" {
1717
s.dm.SetSerialNumber(Config.SerialNumber)
1818
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package server
1+
package simulator
22

33
import (
44
"github.com/rs/zerolog/log"
55

66
"github.com/localhots/SimulaTR69/rpc"
77
)
88

9-
func (s *Server) handleGetParameterAttributes(envID string, r *rpc.GetParameterAttributesRequest) *rpc.EnvelopeEncoder {
9+
func (s *Simulator) handleGetParameterAttributes(envID string, r *rpc.GetParameterAttributesRequest) *rpc.EnvelopeEncoder {
1010
log.Info().Str("method", "GetParameterAttributes").Msg("Received message")
1111
r.Debug()
1212
resp := rpc.NewEnvelope(envID)
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package server
1+
package simulator
22

33
import (
44
"github.com/rs/zerolog/log"
55

66
"github.com/localhots/SimulaTR69/rpc"
77
)
88

9-
func (s *Server) handleGetParameterNames(envID string, r *rpc.GetParameterNamesRequest) *rpc.EnvelopeEncoder {
9+
func (s *Simulator) handleGetParameterNames(envID string, r *rpc.GetParameterNamesRequest) *rpc.EnvelopeEncoder {
1010
log.Info().Str("method", "GetParameterNames").Msg("Received message")
1111
r.Debug()
1212
names := s.dm.ParameterNames(r.ParameterPath, r.NextLevel)
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package server
1+
package simulator
22

33
import (
44
"github.com/rs/zerolog/log"
55

66
"github.com/localhots/SimulaTR69/rpc"
77
)
88

9-
func (s *Server) handleGetParameterValues(envID string, r *rpc.GetParameterValuesRequest) *rpc.EnvelopeEncoder {
9+
func (s *Simulator) handleGetParameterValues(envID string, r *rpc.GetParameterValuesRequest) *rpc.EnvelopeEncoder {
1010
log.Info().Str("method", "GetParameterValues").Msg("Received message")
1111
r.Debug()
1212
resp := rpc.NewEnvelope(envID)
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package server
1+
package simulator
22

33
import (
44
"github.com/rs/zerolog/log"
55

66
"github.com/localhots/SimulaTR69/rpc"
77
)
88

9-
func (s *Server) handleGetRPCMethods(envID string) *rpc.EnvelopeEncoder {
9+
func (s *Simulator) handleGetRPCMethods(envID string) *rpc.EnvelopeEncoder {
1010
log.Info().Str("method", "GetRPCMethods").Msg("Received message")
1111
methods := rpc.SupportedMethods()
1212
for _, m := range methods {

0 commit comments

Comments
 (0)