Merge pull request 'clean up: locks, set key in order to support delete' (#20) from deleteClean into trunk
Reviewed-on: #20
This commit is contained in:
commit
8ca01d15c3
|
@ -189,10 +189,13 @@ func (s *server) GetStatistics() Statistics {
|
||||||
|
|
||||||
func (s *server) Delete(password string) error {
|
func (s *server) Delete(password string) error {
|
||||||
s.lock.Lock()
|
s.lock.Lock()
|
||||||
defer s.lock.Unlock()
|
|
||||||
if s.config.Encrypted && !s.config.CheckPassword(password) {
|
if s.config.Encrypted && !s.config.CheckPassword(password) {
|
||||||
|
s.lock.Unlock()
|
||||||
|
log.Errorf("encryped and checkpassword failed")
|
||||||
return errors.New("Cannot delete server, passwords do not match")
|
return errors.New("Cannot delete server, passwords do not match")
|
||||||
}
|
}
|
||||||
|
s.lock.Unlock()
|
||||||
|
s.Destroy()
|
||||||
os.RemoveAll(s.config.ConfigDir)
|
os.RemoveAll(s.config.ConfigDir)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,11 +149,12 @@ func LoadConfig(configDir, filename string, encrypted bool, password string) (*C
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
key := v1.CreateKey(password, salt)
|
config.key = v1.CreateKey(password, salt)
|
||||||
config.encFileStore = v1.NewFileStore(configDir, ServerConfigFile, key)
|
config.encFileStore = v1.NewFileStore(configDir, ServerConfigFile, config.key)
|
||||||
raw, err = config.encFileStore.Read()
|
raw, err = config.encFileStore.Read()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("read enc bytes failed: %s\n", err)
|
// Not an error to log as load config is called blindly across all dirs with a password to see what it applies to
|
||||||
|
log.Debugf("read enc bytes failed: %s\n", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -106,9 +106,10 @@ func (s *servers) DeleteServer(onion string, password string) error {
|
||||||
defer s.lock.Unlock()
|
defer s.lock.Unlock()
|
||||||
server := s.servers[onion]
|
server := s.servers[onion]
|
||||||
if server != nil {
|
if server != nil {
|
||||||
server.Destroy()
|
|
||||||
err := server.Delete(password)
|
err := server.Delete(password)
|
||||||
delete(s.servers, onion)
|
if err == nil {
|
||||||
|
delete(s.servers, onion)
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return errors.New("server not found")
|
return errors.New("server not found")
|
||||||
|
@ -127,7 +128,9 @@ func (s *servers) LaunchServer(onion string) {
|
||||||
func (s *servers) StopServer(onion string) {
|
func (s *servers) StopServer(onion string) {
|
||||||
s.lock.Lock()
|
s.lock.Lock()
|
||||||
defer s.lock.Unlock()
|
defer s.lock.Unlock()
|
||||||
s.servers[onion].Stop()
|
if server, exists := s.servers[onion]; exists {
|
||||||
|
server.Stop()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stop stops all the servers
|
// Stop stops all the servers
|
||||||
|
|
Loading…
Reference in New Issue