Merge branch 'bsidhom-master'

* bsidhom-master:
  Continue discovery on connect errors (fixes #324)
This commit is contained in:
Jakob Borg 2014-07-05 23:01:37 +02:00
commit 4a88d1244d
1 changed files with 13 additions and 8 deletions

View File

@ -172,16 +172,21 @@ func (d *Discoverer) sendLocalAnnouncements() {
} }
func (d *Discoverer) sendExternalAnnouncements() { func (d *Discoverer) sendExternalAnnouncements() {
// this should go in the Discoverer struct
errorRetryIntv := 60 * time.Second
remote, err := net.ResolveUDPAddr("udp", d.extServer) remote, err := net.ResolveUDPAddr("udp", d.extServer)
if err != nil { for err != nil {
l.Warnf("Global discovery: %v; no external announcements", err) l.Warnf("Global discovery: %v; trying again in %v", err, errorRetryIntv)
return time.Sleep(errorRetryIntv)
remote, err = net.ResolveUDPAddr("udp", d.extServer)
} }
conn, err := net.ListenUDP("udp", nil) conn, err := net.ListenUDP("udp", nil)
if err != nil { for err != nil {
l.Warnf("Global discovery: %v; no external announcements", err) l.Warnf("Global discovery: %v; trying again in %v", err, errorRetryIntv)
return time.Sleep(errorRetryIntv)
conn, err = net.ListenUDP("udp", nil)
} }
var buf []byte var buf []byte
@ -202,7 +207,7 @@ func (d *Discoverer) sendExternalAnnouncements() {
l.Debugf("discover: send announcement -> %v\n%s", remote, hex.Dump(buf)) l.Debugf("discover: send announcement -> %v\n%s", remote, hex.Dump(buf))
} }
_, err = conn.WriteTo(buf, remote) _, err := conn.WriteTo(buf, remote)
if err != nil { if err != nil {
if debug { if debug {
l.Debugln("discover: warning:", err) l.Debugln("discover: warning:", err)
@ -226,7 +231,7 @@ func (d *Discoverer) sendExternalAnnouncements() {
if ok { if ok {
time.Sleep(d.globalBcastIntv) time.Sleep(d.globalBcastIntv)
} else { } else {
time.Sleep(60 * time.Second) time.Sleep(errorRetryIntv)
} }
} }
} }