Ejemplo n.º 1
0
func (s *State) Save() {
	if data, err := json.Marshal(s); err == nil {
		if err = ioutil.WriteFile(s.getConfigPath(), data, os.ModePerm); err != nil {
			log.Error("error on write state, %v", err)
		}
	}
}
Ejemplo n.º 2
0
func NewState(secret *secure.NetworkSecret) *State {
	s := &State{
		Secret: secret,
	}
	s.Load()

	var save bool

	if s.ListenPort < 1 {
		s.ListenPort = GetRandomPort()
		save = true
	}
	if s.PrivateIP == nil {
		var err error
		if s.PrivateIP, err = network.GenerateIPAddress(secret.Net); err == nil {
			save = true
		} else {
			log.Error("error on generate IP, %v", err)
		}
	}

	if save {
		s.Save()
	}

	return s
}