|
9 | 9 | "fmt" |
10 | 10 | "net" |
11 | 11 | "net/url" |
12 | | - "strconv" |
13 | 12 | "time" |
14 | 13 |
|
15 | 14 | "github.com/wlynxg/anet" |
@@ -66,7 +65,6 @@ func New(core *core.Core, log *log.Logger, opts ...SetupOption) (*Multicast, err |
66 | 65 | _listeners: make(map[int]*listenerInfo), |
67 | 66 | _interfaces: make(map[int]*interfaceInfo), |
68 | 67 | } |
69 | | - m.SetOsVersion() |
70 | 68 | m.config._interfaces = map[MulticastInterface]struct{}{} |
71 | 69 | m.config._groupAddr = GroupAddress("[ff02::114]:9001") |
72 | 70 | for _, opt := range opts { |
@@ -180,8 +178,7 @@ func (m *Multicast) _getAllowedInterfaces() map[int]*interfaceInfo { |
180 | 178 | // Ask the system for network interfaces |
181 | 179 | allifaces, err := anet.Interfaces() |
182 | 180 | if err != nil { |
183 | | - // Don't panic, since this may be from e.g. too many open files (from too much connection spam) |
184 | | - // TODO? log something |
| 181 | + m.log.Debugf("Failed to get interfaces: %s", err) |
185 | 182 | return nil |
186 | 183 | } |
187 | 184 | // Work out which interfaces to announce on |
@@ -408,11 +405,16 @@ func (m *Multicast) listen() { |
408 | 405 | phony.Block(m, func() { |
409 | 406 | interfaces = m._interfaces |
410 | 407 | }) |
411 | | - zone, err := strconv.Atoi(from.Zone) |
412 | | - if err != nil { |
413 | | - continue |
| 408 | + var inter interfaceInfo |
| 409 | + var ok = false |
| 410 | + for _, info := range interfaces { |
| 411 | + if info.iface.Name == from.Zone { |
| 412 | + inter = *info |
| 413 | + ok = true |
| 414 | + } |
414 | 415 | } |
415 | | - if info, ok := interfaces[zone]; ok && info.listen { |
| 416 | + info := inter |
| 417 | + if ok && info.listen { |
416 | 418 | addr.Zone = "" |
417 | 419 | pin := fmt.Sprintf("/?key=%s&priority=%d", hex.EncodeToString(key), info.priority) |
418 | 420 | u, err := url.Parse("tls://" + addr.String() + pin) |
|
0 commit comments