Merge branch 'bsidhom-master'
* bsidhom-master: Continue discovery on connect errors (fixes #324)
This commit is contained in:
commit
4a88d1244d
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue