@@ -45,7 +45,8 @@ func main() {
4545 client := etcd .NewClient ([]string {"http://" + publishHost + ":" + publishPort })
4646
4747 signalChan := make (chan os.Signal , 1 )
48- drainChan := make (chan * etcd.Response )
48+ drainRespChan := make (chan * etcd.Response )
49+ drainChan := make (chan string )
4950 stopChan := make (chan bool )
5051 exitChan := make (chan bool )
5152 cleanupChan := make (chan bool )
@@ -56,14 +57,16 @@ func main() {
5657 setEtcd (client , publishPath + "/drain" , drainURI , 0 )
5758 }
5859
59- go client .Watch (publishPath + "/drain" , 0 , false , drainChan , stopChan )
60+ go client .Watch (publishPath + "/drain" , 0 , false , drainRespChan , stopChan )
6061 go syslogd .Listen (exitChan , cleanupChan , drainChan , fmt .Sprintf ("%s:%d" , logAddr , logPort ))
6162 if enablePublish {
6263 go publishService (exitChan , client , publishHost , publishPath , strconv .Itoa (logPort ), uint64 (time .Duration (publishTTL ).Seconds ()))
6364 }
6465
6566 for {
6667 select {
68+ case er := <- drainRespChan :
69+ drainChan <- er .Node .Value
6770 case <- signalChan :
6871 close (exitChan )
6972 stopChan <- true
0 commit comments