Files
ziti/controller/settings.go
T
Andrew Martinez 08e658514a adds newListener and newAddress options for controller ip/hostname move
- ctrl section for fabric now supports newListener addresses, sent on
  router connect
- xweb bindPoints now support newAddress, sent as a header on every
  response
2022-01-27 10:17:53 -05:00

45 lines
1.2 KiB
Go

package controller
import (
"github.com/golang/protobuf/proto"
"github.com/michaelquigley/pfxlog"
"github.com/openziti/fabric/controller/network"
"github.com/openziti/fabric/pb/ctrl_pb"
"github.com/openziti/foundation/channel"
)
type OnConnectSettingsHandler struct {
config *Config
settings map[int32][]byte
}
func (o *OnConnectSettingsHandler) RouterDisconnected(r *network.Router) {}
func (o OnConnectSettingsHandler) RouterConnected(r *network.Router) {
if len(o.settings) > 0 {
settingsMsg := &ctrl_pb.Settings{
Data: map[int32][]byte{},
}
for k, v := range o.settings {
settingsMsg.Data[k] = v
}
if body, err := proto.Marshal(settingsMsg); err == nil {
msg := channel.NewMessage(int32(ctrl_pb.ContentType_SettingsType), body)
if err := r.Control.Send(msg); err == nil {
pfxlog.Logger().WithError(err).WithFields(map[string]interface{}{
"routerId": r.Id,
"channel": r.Control.LogicalName(),
}).Error("error sending settings on router connect")
}
}
} else {
pfxlog.Logger().WithFields(map[string]interface{}{
"routerId": r.Id,
"channel": r.Control.LogicalName(),
}).Info("no on connect settings to send")
}
}