// start the settings service that synchronizes Lantern's configuration with every UI client func (s *Settings) start() error { var err error ui.PreferProxiedUI(s.SystemProxy) helloFn := func(write func(interface{}) error) error { log.Debugf("Sending Lantern settings to new client") s.Lock() defer s.Unlock() return write(&msg{Settings: s}) } service, err = ui.Register(messageType, nil, helloFn) return err }
// SetSystemProxy sets whether or not to set system proxy when lantern starts func (s *Settings) SetSystemProxy(enable bool) { s.Lock() defer s.unlockAndSave() changed := enable != s.SystemProxy s.SystemProxy = enable if changed { if enable { pacOn() } else { pacOff() } preferredUIAddr, addrChanged := ui.PreferProxiedUI(enable) if !enable && addrChanged { log.Debugf("System proxying disabled, redirect UI to: %v", preferredUIAddr) service.Out <- &msg{RedirectTo: preferredUIAddr} } } }