Skip to content

Commit

Permalink
remote default config
Browse files Browse the repository at this point in the history
  • Loading branch information
anthdm committed Jan 13, 2024
1 parent 4c07bc4 commit bebe16d
Show file tree
Hide file tree
Showing 10 changed files with 30 additions and 22 deletions.
2 changes: 1 addition & 1 deletion cluster/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ type Cluster struct {
// New returns a new cluster given a Config.
func New(config Config) (*Cluster, error) {
if config.engine == nil {
remote := remote.New(config.listenAddr, nil)
remote := remote.New(config.listenAddr, remote.NewConfig())
e, err := actor.NewEngine(actor.NewEngineConfig().WithRemote(remote))
if err != nil {
return nil, err
Expand Down
2 changes: 1 addition & 1 deletion cluster/cluster_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ func TestMemberLeave(t *testing.T) {
c1Addr := getRandomLocalhostAddr()
c2Addr := getRandomLocalhostAddr()

remote := remote.New(c2Addr, nil)
remote := remote.New(c2Addr, remote.NewConfig())
e, err := actor.NewEngine(actor.NewEngineConfig().WithRemote(remote))
if err != nil {
log.Fatal(err)
Expand Down
2 changes: 1 addition & 1 deletion examples/chat/client/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func main() {
if *listenAt == "" {
*listenAt = fmt.Sprintf("127.0.0.1:%d", rand.Int31n(50000)+10000)
}
rem := remote.New(*listenAt, nil)
rem := remote.New(*listenAt, remote.NewConfig())
e, err := actor.NewEngine(actor.NewEngineConfig().WithRemote(rem))
if err != nil {
slog.Error("failed to create engine", "err", err)
Expand Down
2 changes: 1 addition & 1 deletion examples/chat/server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ func main() {
listenAt = flag.String("listen", "127.0.0.1:4000", "")
)
flag.Parse()
rem := remote.New(*listenAt, nil)
rem := remote.New(*listenAt, remote.NewConfig())
e, err := actor.NewEngine(actor.NewEngineConfig().WithRemote(rem))
if err != nil {
panic(err)
Expand Down
2 changes: 1 addition & 1 deletion examples/mdns/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ func main() {
// pick a random port, 2000 and up.
*port = rand.Intn(10000) + 2000
}
rem := remote.New(fmt.Sprintf("%s:%d", *ip, *port), nil)
rem := remote.New(fmt.Sprintf("%s:%d", *ip, *port), remote.NewConfig())
engine, err := actor.NewEngine(actor.NewEngineConfig().WithRemote(rem))
if err != nil {
panic(err)
Expand Down
2 changes: 1 addition & 1 deletion examples/remote/client/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (

func main() {
slog.SetDefault(slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelDebug})))
r := remote.New("127.0.0.1:3000", nil)
r := remote.New("127.0.0.1:3000", remote.NewConfig())
e, err := actor.NewEngine(actor.NewEngineConfig().WithRemote(r))
if err != nil {
panic(err)
Expand Down
2 changes: 1 addition & 1 deletion examples/remote/server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func (f *server) Receive(ctx *actor.Context) {

func main() {
slog.SetDefault(slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelDebug})))
r := remote.New("127.0.0.1:4000", nil)
r := remote.New("127.0.0.1:4000", remote.NewConfig())
e, err := actor.NewEngine(actor.NewEngineConfig().WithRemote(r))
if err != nil {
panic(err)
Expand Down
34 changes: 21 additions & 13 deletions remote/remote.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,23 @@ import (

// Config holds the remote configuration.
type Config struct {
TlsConfig *tls.Config
Wg *sync.WaitGroup
TLSConfig *tls.Config
// Wg *sync.WaitGroup
}

// NewConfig returns a new default remote configuration.
func NewConfig() Config {
return Config{}
}

// WithTLS sets the TLS config of the remote.
func (c Config) WithTLS(tlsconf *tls.Config) Config {
c.TLSConfig = tlsconf
return c
}

type Remote struct {
addr string
tlsConfig *tls.Config
wg *sync.WaitGroup
engine *actor.Engine
config Config
streamReader *streamReader
Expand All @@ -41,13 +50,10 @@ const (
)

// New creates a new "Remote" object given a Config.
func New(addr string, cfg *Config) *Remote {
func New(addr string, config Config) *Remote {
r := &Remote{
addr: addr,
}
if cfg != nil {
r.tlsConfig = cfg.TlsConfig
r.wg = cfg.Wg
addr: addr,
config: config,
}
r.state.Store(stateInitialized)
r.streamReader = newStreamReader(r)
Expand All @@ -62,12 +68,12 @@ func (r *Remote) Start(e *actor.Engine) error {
r.engine = e
var ln net.Listener
var err error
switch r.config.TlsConfig {
switch r.config.TLSConfig {
case nil:
ln, err = net.Listen("tcp", r.addr)
default:
slog.Debug("remote using TLS for listening")
ln, err = tls.Listen("tcp", r.addr, r.config.TlsConfig)
ln, err = tls.Listen("tcp", r.addr, r.config.TLSConfig)
}
if err != nil {
return fmt.Errorf("remote failed to listen: %w", err)
Expand All @@ -80,7 +86,9 @@ func (r *Remote) Start(e *actor.Engine) error {
}
s := drpcserver.New(mux)

r.streamRouterPID = r.engine.Spawn(newStreamRouter(r.engine, r.config.TlsConfig), "router", actor.WithInboxSize(1024*1024))
r.streamRouterPID = r.engine.Spawn(
newStreamRouter(r.engine, r.config.TLSConfig),
"router", actor.WithInboxSize(1024*1024))
slog.Debug("server started", "listenAddr", r.addr)
r.stopWg = &sync.WaitGroup{}
r.stopWg.Add(1)
Expand Down
2 changes: 1 addition & 1 deletion remote/remote_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ func TestWeird(t *testing.T) {

func makeRemoteEngine(listenAddr string) (*actor.Engine, *Remote, error) {
var e *actor.Engine
r := New(listenAddr, nil)
r := New(listenAddr, NewConfig())
var err error
e, err = actor.NewEngine(actor.NewEngineConfig().WithRemote(r))
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion remote/remote_tls_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ func generateCert(ca *x509.Certificate, caKey *ecdsa.PrivateKey) (*tls.Certifica
func makeRemoteEngineTls(listenAddr string, config *tls.Config) (*actor.Engine, *Remote, error) {
var eng *actor.Engine
var err error
rem := New(listenAddr, &Config{TlsConfig: config})
rem := New(listenAddr, NewConfig().WithTLS(config))
eng, err = actor.NewEngine(actor.NewEngineConfig().WithRemote(rem))
if err != nil {
return nil, nil, fmt.Errorf("actor.NewEngine: %w", err)
Expand Down

0 comments on commit bebe16d

Please sign in to comment.