Browse Source

better mc debug output

Jakob Borg 11 years ago
parent
commit
e4f266883a
1 changed files with 14 additions and 9 deletions
  1. 14 9
      mc/beacon.go

+ 14 - 9
mc/beacon.go

@@ -10,10 +10,15 @@ type recv struct {
 	src  net.Addr
 }
 
+type dst struct {
+	intf string
+	conn *net.UDPConn
+}
+
 type Beacon struct {
 	group  string
 	port   int
-	conns  []*net.UDPConn
+	conns  []dst
 	inbox  chan []byte
 	outbox chan recv
 }
@@ -61,25 +66,25 @@ func (b *Beacon) run() {
 				dlog.Printf("failed to listen for multicast group on %q: %v", intf.Name, err)
 			}
 		} else {
-			b.conns = append(b.conns, conn)
+			b.conns = append(b.conns, dst{intf.Name, conn})
 			if debug {
 				dlog.Printf("listening for multicast group on %q", intf.Name)
 			}
 		}
 	}
 
-	for _, conn := range b.conns {
-		conn := conn
+	for _, dst := range b.conns {
+		dst := dst
 		go func() {
 			for {
 				var bs = make([]byte, 1500)
-				n, addr, err := conn.ReadFrom(bs)
+				n, addr, err := dst.conn.ReadFrom(bs)
 				if err != nil {
 					dlog.Println(err)
 					return
 				}
 				if debug {
-					dlog.Printf("recv %d bytes from %s on %v", n, addr, conn)
+					dlog.Printf("recv %d bytes from %s on %s", n, addr, dst.intf)
 				}
 				b.outbox <- recv{bs[:n], addr}
 			}
@@ -88,14 +93,14 @@ func (b *Beacon) run() {
 
 	go func() {
 		for bs := range b.inbox {
-			for _, conn := range b.conns {
-				_, err := conn.WriteTo(bs, group)
+			for _, dst := range b.conns {
+				_, err := dst.conn.WriteTo(bs, group)
 				if err != nil {
 					dlog.Println(err)
 					return
 				}
 				if debug {
-					dlog.Printf("sent %d bytes to %s on %v", len(bs), group, conn)
+					dlog.Printf("sent %d bytes to %s on %s", len(bs), group, dst.intf)
 				}
 			}
 		}