func (sa *ServiceAdmin) Listen(addr *skynet.BindAddr, bindWait *sync.WaitGroup) { listener, err := addr.Listen() if err != nil { panic(err) } bindWait.Done() sa.service.Log.Trace(fmt.Sprintf("%+v", AdminListening{sa.service.Config})) for { conn, err := listener.AcceptTCP() if err != nil { panic(err) } go sa.rpc.ServeCodec(bsonrpc.NewServerCodec(conn)) } }
func (s *Service) cleanupDoozerEntriesForAddr(addr *skynet.BindAddr) { if addr == nil { return } q := skynet.Query{ Host: addr.IPAddress, Port: strconv.Itoa(addr.Port), DoozerConn: s.doozer(), } instances := q.FindInstances() for _, i := range instances { s.Log.Trace("Cleaning up old doozer entry with conflicting addr " + addr.String() + "(" + i.GetConfigPath() + ")") s.doozer().Del(i.GetConfigPath(), s.doozer().GetCurrentRevision()) s.doozer().Del(i.GetStatsPath(), s.doozer().GetCurrentRevision()) } }
func (s *Service) listen(addr *skynet.BindAddr, bindWait *sync.WaitGroup) { var err error s.rpcListener, err = addr.Listen() if err != nil { panic(err) } s.Log.Trace(fmt.Sprintf("%+v", ServiceListening{ Addr: addr, ServiceConfig: s.Config, })) bindWait.Done() for { conn, err := s.rpcListener.AcceptTCP() if err != nil { panic(err) } s.connectionChan <- conn } }