start the nameserver and stop it again
This commit is contained in:
parent
9eea4682fd
commit
04884f4c2f
|
@ -60,7 +60,7 @@ type Responder interface {
|
||||||
|
|
||||||
// Start a new responder. The returned channel is only used to stop the responder.
|
// Start a new responder. The returned channel is only used to stop the responder.
|
||||||
// Send 'true' to make it stop
|
// Send 'true' to make it stop
|
||||||
func (res *Server) NewResponder(h Responder, ch chan bool) os.Error {
|
func (res *Server) NewResponder(h Responder, stop chan bool) os.Error {
|
||||||
var port string
|
var port string
|
||||||
if len(res.Address) == 0 {
|
if len(res.Address) == 0 {
|
||||||
// We cannot start responding without an addresss
|
// We cannot start responding without an addresss
|
||||||
|
@ -79,9 +79,9 @@ func (res *Server) NewResponder(h Responder, ch chan bool) os.Error {
|
||||||
foreverTCP:
|
foreverTCP:
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-ch:
|
case <-stop:
|
||||||
ch <- true
|
stop <- true
|
||||||
/* stop listening */
|
close(stop)
|
||||||
break foreverTCP
|
break foreverTCP
|
||||||
case s := <-tch:
|
case s := <-tch:
|
||||||
if s.err != nil {
|
if s.err != nil {
|
||||||
|
@ -98,8 +98,9 @@ func (res *Server) NewResponder(h Responder, ch chan bool) os.Error {
|
||||||
foreverUDP:
|
foreverUDP:
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-ch:
|
case <-stop:
|
||||||
ch <- true // last echo
|
stop <- true
|
||||||
|
close(stop)
|
||||||
break foreverUDP
|
break foreverUDP
|
||||||
case s := <-uch:
|
case s := <-uch:
|
||||||
if s.err != nil {
|
if s.err != nil {
|
||||||
|
|
|
@ -64,6 +64,9 @@ func TestResponder(t *testing.T) {
|
||||||
var ts *myserv
|
var ts *myserv
|
||||||
tch := make(chan bool)
|
tch := make(chan bool)
|
||||||
go st.NewResponder(ts, tch)
|
go st.NewResponder(ts, tch)
|
||||||
|
time.Sleep(1 * 1e9)
|
||||||
time.Sleep(100 * 1e9)
|
uch<-true
|
||||||
|
tch<-true
|
||||||
|
<-uch
|
||||||
|
<-tch
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue