func (z *zone) listen(addr *net.UDPAddr) error { conn, err := openSocket(addr) if err != nil { return err } c := &connector{ UDPAddr: addr, UDPConn: conn, zone: z, } go c.mainloop() // publish gmx stats for the connector gmx.Publish("mdns.connector.questions", func() interface{} { return c.questions }) gmx.Publish("mdns.connector.responses", func() interface{} { return c.responses }) return nil }
func init() { local = &zone{ entries: make(map[string]entries), add: make(chan *entry), queries: make(chan *query, 16), } go local.mainloop() if err := local.listen(ipv4mcastaddr); err != nil { log.Fatalf("Failed to listen %s: %s", ipv4mcastaddr, err) } if err := local.listen(ipv6mcastaddr); err != nil { log.Printf("Failed to listen %s: %s", ipv6mcastaddr, err) } // publish gmx stats for the local zone gmx.Publish("mdns.zone.local.queries", func() interface{} { return local.queryCount }) gmx.Publish("mdns.zone.local.entries", func() interface{} { return local.entryCount }) }
func init() { gmx.Publish("hello", func() interface{} { return "world" }) }