misc: small fix or general refactoring i did not bother commenting

This commit is contained in:
evilsocket 2018-02-11 02:01:20 +01:00
commit 8d6402323f

View file

@ -24,7 +24,7 @@ type SessionModule struct {
Name string `json:"name"` Name string `json:"name"`
Session *Session `json:"-"` Session *Session `json:"-"`
Started bool `json:"started"` Started bool `json:"started"`
StatusLock *sync.Mutex `json:"-"` StatusLock *sync.RWMutex `json:"-"`
handlers []ModuleHandler handlers []ModuleHandler
params map[string]*ModuleParam params map[string]*ModuleParam
@ -35,7 +35,7 @@ func NewSessionModule(name string, s *Session) SessionModule {
Name: name, Name: name,
Session: s, Session: s,
Started: false, Started: false,
StatusLock: &sync.Mutex{}, StatusLock: &sync.RWMutex{},
handlers: make([]ModuleHandler, 0), handlers: make([]ModuleHandler, 0),
params: make(map[string]*ModuleParam), params: make(map[string]*ModuleParam),
@ -117,22 +117,23 @@ func (m *SessionModule) AddParam(p *ModuleParam) *ModuleParam {
} }
func (m *SessionModule) Running() bool { func (m *SessionModule) Running() bool {
m.StatusLock.Lock() m.StatusLock.RLock()
defer m.StatusLock.Unlock() defer m.StatusLock.RUnlock()
return m.Started return m.Started
} }
func (m *SessionModule) SetRunning(running bool, cb func()) error { func (m *SessionModule) SetRunning(running bool, cb func()) error {
m.StatusLock.Lock() if running == m.Running() {
defer m.StatusLock.Unlock() if m.Started {
if running && m.Started == true {
return ErrAlreadyStarted return ErrAlreadyStarted
} else if running == false && m.Started == false { } else {
return ErrAlreadyStopped return ErrAlreadyStopped
} }
}
m.StatusLock.Lock()
m.Started = running m.Started = running
m.StatusLock.Unlock()
if *m.Session.Options.Debug == true { if *m.Session.Options.Debug == true {
if running { if running {