func AnnounceMyPresence() { localPrint := cryptowrapper.GetLocalFingerPrint() ap := customtypes.AnnouncePresence{localPrint, tcpPort} var annMsg customtypes.AnnounceMsg annMsg.Payload = ap annMsg.Kind = "ap" annMsgBytes, err := json.Marshal(annMsg) CheckError(err) listenConn.WriteToUDP(annMsgBytes, serverUDPAddr) }
//initialize all variables func (c *CalendarInfo) Init() { c.Hostname = cryptowrapper.GetLocalFingerPrint() fmt.Println("fingerprint:" + c.Hostname) //c.Hostname = name c.GroupMember = make(map[string]map[string]int) c.RcvQueue = make(chan customtypes.TsMessage, 1024) c.AddrMap = make(map[string]string) // c.GroupMember["group1"] = make(map[string]int) // c.GroupMember["group2"] = make(map[string]int) // c.GroupMember["group1"]["a"]=0 // c.GroupMember["group1"]["b"]=1 // c.GroupMember["group1"]["c"]=2 // c.GroupMember["group2"]["b"]=0 // c.GroupMember["group2"]["c"]=1 c.ReadFromFile("config.txt") announce_client.AnnounceMyPresence() addr := announce_client.GetInfo(c.Hostname) c.AddrMap[c.Hostname] = addr.IP.String() + ":9200" ipMap := make(map[string]*net.TCPAddr) for _, ms := range c.GroupMember { for m, _ := range ms { _, ok := ipMap[m] if !ok { ipMap[m] = nil } } } announce_client.GetInfoStruct(ipMap) //map[string]string for mem, ip := range ipMap { c.AddrMap[mem] = ip.IP.String() + ":9200" } // c.AddrMap["a"]="127.0.0.1:1234" // c.AddrMap["b"]="127.0.0.1:1235" // c.AddrMap["c"]="127.0.0.1:1236" }