diff --git a/_examples/funkensturm/funkensturm.go b/_examples/funkensturm/funkensturm.go index 1b577ea3..42cdaf31 100644 --- a/_examples/funkensturm/funkensturm.go +++ b/_examples/funkensturm/funkensturm.go @@ -234,8 +234,6 @@ forever: println("Signal received, stopping") rs <- nil // shutdown responder break forever - case e := <-rs: - println(e.String()) } } close(rs) diff --git a/_examples/reflect/reflect.go b/_examples/reflect/reflect.go index c41f3bfe..2497a1a8 100644 --- a/_examples/reflect/reflect.go +++ b/_examples/reflect/reflect.go @@ -121,12 +121,6 @@ forever: ch <- nil cht <- nil break forever - case e := <-cht: - // last message from tcp channel - println(e.String()) - case e := <-ch: - // last message from udp channel - println(e.String()) } } close(cht) diff --git a/_examples/rude/rude.go b/_examples/rude/rude.go index a839133a..abd5df18 100644 --- a/_examples/rude/rude.go +++ b/_examples/rude/rude.go @@ -64,10 +64,6 @@ forever: println("Signal received, stopping") ch <- nil break forever - case e := <-cht: - println(e.String()) - case e := <-ch: - println(e.String()) } } close(cht) diff --git a/responder/responder.go b/responder/responder.go index fb6c10e3..cf9f1e21 100644 --- a/responder/responder.go +++ b/responder/responder.go @@ -64,7 +64,7 @@ type Responder interface { func (res *Server) NewResponder(h Responder, stop chan os.Error) { var port string if len(res.Address) == 0 { - stop <- &dns.Error{Error: "No addresses"} + //stop <- &dns.Error{Error: "No addresses"} return } if res.Port == "" { @@ -79,16 +79,15 @@ func (res *Server) NewResponder(h Responder, stop chan os.Error) { a, _ := net.ResolveTCPAddr(res.Address + ":" + port) go listenerTCP(a, tch, lch) listener := <-lch - foreverTCP: + for { select { case <-stop: - stop <- nil listener.Close() - break foreverTCP + return case s := <-tch: if s.err != nil { - stop <- s.err + // stop <- s.err seperate error channel } else { go h.ResponderTCP(s.tcp, s.msg) } @@ -99,15 +98,14 @@ func (res *Server) NewResponder(h Responder, stop chan os.Error) { uch := make(chan msg) a, _ := net.ResolveUDPAddr(res.Address + ":" + port) go listenerUDP(a, uch) - foreverUDP: + for { select { case <-stop: - stop <- nil - break foreverUDP + return case s := <-uch: if s.err != nil { - stop <- s.err + //stop <- s.err // seperate error channel } else { go h.ResponderUDP(s.udp, s.addr, s.msg) }