예제 #1
0
func getName(addr string, g store.Getter) string {
	for _, name := range store.Getdir(g, "/ctl/node") {
		if store.GetString(g, "/ctl/node/"+name+"/addr") == addr {
			return name
		}
	}
	return ""
}
예제 #2
0
func getAddrs(g store.Getter, cals []string) (a []*net.UDPAddr) {
	a = make([]*net.UDPAddr, len(cals))
	var i int
	var err error
	for _, id := range cals {
		s := store.GetString(g, "/ctl/node/"+id+"/addr")
		a[i], err = net.ResolveUDPAddr("udp", s)
		if err != nil {
			log.Println(err)
		} else {
			i++
		}
	}
	return a[:i]
}
예제 #3
0
func getCals(g store.Getter) []string {
	ents := store.Getdir(g, "/ctl/cal")
	cals := make([]string, len(ents))

	i := 0
	for _, cal := range ents {
		id := store.GetString(g, "/ctl/cal/"+cal)
		if id != "" {
			cals[i] = id
			i++
		}
	}

	cals = cals[0:i]
	sort.Strings(cals)

	return cals
}