code: func (c *localClient) announcementPkt(instanceID int64, msg []byte) ([]byte, bool) {
  	addrs := c.addrList.AllAddresses()
  	if len(addrs) == 0 {
  		// Nothing to announce
  		return msg, false
  	}
  
  	if cap(msg) >= 4 {
  		msg = msg[:4]
  	} else {
  		msg = make([]byte, 4)
  	}
  	binary.BigEndian.PutUint32(msg, Magic)
  
  	pkt := Announce{
  		ID:         c.myID,
  		Addresses:  addrs,
  		InstanceID: instanceID,
  	}
  	bs, _ := pkt.Marshal()
  	msg = append(msg, bs...)
  
  	return msg, true
  }
docs: // announcementPkt appends the local discovery packet to send to msg. Returns
  // true if the packet should be sent, false if there is nothing useful to
  // send.