make the broker/transport listen on new addr when stop/started with addr :0
This commit is contained in:
parent
6444b7e24c
commit
c666558f8c
@ -326,10 +326,16 @@ func (h *httpBroker) Connect() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.Logf("Broker Listening on %s", l.Addr().String())
|
log.Logf("Broker Listening on %s", l.Addr().String())
|
||||||
|
addr := h.address
|
||||||
h.address = l.Addr().String()
|
h.address = l.Addr().String()
|
||||||
|
|
||||||
go http.Serve(l, h.mux)
|
go http.Serve(l, h.mux)
|
||||||
go h.run(l)
|
go func() {
|
||||||
|
h.run(l)
|
||||||
|
h.Lock()
|
||||||
|
h.address = addr
|
||||||
|
h.Unlock()
|
||||||
|
}()
|
||||||
|
|
||||||
// get registry
|
// get registry
|
||||||
reg, ok := h.opts.Context.Value(registryKey).(registry.Registry)
|
reg, ok := h.opts.Context.Value(registryKey).(registry.Registry)
|
||||||
|
@ -386,6 +386,8 @@ func (s *rpcServer) Start() error {
|
|||||||
|
|
||||||
log.Logf("Listening on %s", ts.Addr())
|
log.Logf("Listening on %s", ts.Addr())
|
||||||
s.Lock()
|
s.Lock()
|
||||||
|
// swap address
|
||||||
|
addr := s.opts.Address
|
||||||
s.opts.Address = ts.Addr()
|
s.opts.Address = ts.Addr()
|
||||||
s.Unlock()
|
s.Unlock()
|
||||||
|
|
||||||
@ -405,6 +407,11 @@ func (s *rpcServer) Start() error {
|
|||||||
|
|
||||||
// disconnect the broker
|
// disconnect the broker
|
||||||
config.Broker.Disconnect()
|
config.Broker.Disconnect()
|
||||||
|
|
||||||
|
s.Lock()
|
||||||
|
// swap back address
|
||||||
|
s.opts.Address = addr
|
||||||
|
s.Unlock()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
// TODO: subscribe to cruft
|
// TODO: subscribe to cruft
|
||||||
|
Loading…
Reference in New Issue
Block a user