func (p *V2) addGroup(pkt *packet.Packet) { g, err := device.NewGroup(pkt) if err != nil { common.Log.Errorf("Error parsing group: %v", err) return } group, err := p.getGroup(g.ID()) if err == nil { if err := group.Parse(pkt); err != nil { common.Log.Errorf("Error parsing group: %v", err) } return } p.Lock() p.groups[g.ID()] = g p.Unlock() if err := p.publish(common.EventNewGroup{Group: g}); err != nil { common.Log.Errorf("Error adding group to client: %v", err) return } }
func (p *V2) addGroup(pkt *packet.Packet) { g, err := device.NewGroup(pkt) if err != nil { common.Log.Errorf("Error parsing group: %v\n", err) return } p.RLock() group, ok := p.groups[g.ID()] p.RUnlock() if !ok { p.Lock() p.groups[g.ID()] = g p.Unlock() if err := p.publish(common.EventNewGroup{Group: g}); err != nil { common.Log.Errorf("Error adding group to client: %v\n", err) return } } else { if err := group.Parse(pkt); err != nil { common.Log.Errorf("Error parsing group: %v\n", err) } } }