fix double subscribe of sessWatch, minor fixes

pull/179/head
Simon Let 4 years ago
parent 0788ca9005
commit 0fcad6310c
No known key found for this signature in database
GPG Key ID: D650C65DD46D431D
  1. 6
      cmd/daemon/record.go
  2. 2
      cmd/daemon/run-server.go
  3. 2
      cmd/daemon/session-init.go
  4. 8
      pkg/sesswatch/sesswatch.go

@ -30,14 +30,14 @@ func (h *recordHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
log.Println("Payload: ", jsn)
return
}
for _, sub := range h.subscribers {
sub <- record
}
part := "2"
if record.PartOne {
part = "1"
}
log.Println("/record - ", record.CmdLine, " - part", part)
for _, sub := range h.subscribers {
sub <- record
}
}()
// fmt.Println("cmd:", r.CmdLine)

@ -38,7 +38,7 @@ func runServer(config cfg.Config, reshHistoryPath, bashHistoryPath, zshHistoryPa
sesswatchRecords := make(chan records.Record)
recordSubscribers = append(recordSubscribers, sesswatchRecords)
sesswatchSessionsToWatch := make(chan records.Record)
sessionInitSubscribers = append(sessionInitSubscribers, sesswatchRecords, sesswatchSessionsToWatch)
sessionInitSubscribers = append(sessionInitSubscribers, sesswatchSessionsToWatch)
sesswatch.Go(sesswatchSessionsToWatch, sesswatchRecords, sessionDropSubscribers, config.SesswatchPeriodSeconds)
// handlers

@ -30,9 +30,9 @@ func (h *sessionInitHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
log.Println("Payload: ", jsn)
return
}
log.Println("/session_init - id:", record.SessionID, " - pid:", record.SessionPID)
for _, sub := range h.subscribers {
sub <- record
}
log.Println("/session_init - id:", record.SessionID, " - pid:", record.SessionPID)
}()
}

@ -34,7 +34,7 @@ func (s *sesswatch) waiter(sessionsToWatch chan records.Record, sessionsToWatchR
s.mutex.Lock()
defer s.mutex.Unlock()
if s.watchedSessions[id] == false {
log.Println("sesswatch: start watching NEW session ~ pid:", id, "~", pid)
log.Println("sesswatch: start watching NEW session - id:", id, "; pid:", pid)
s.watchedSessions[id] = true
go s.watcher(id, pid)
}
@ -45,7 +45,7 @@ func (s *sesswatch) waiter(sessionsToWatch chan records.Record, sessionsToWatchR
s.mutex.Lock()
defer s.mutex.Unlock()
if s.watchedSessions[id] == false {
log.Println("sesswatch WARN: start watching NEW session (based on /record) ~ pid:", id, "~", pid)
log.Println("sesswatch WARN: start watching NEW session (based on /record) - id:", id, "; pid:", pid)
s.watchedSessions[id] = true
go s.watcher(id, pid)
}
@ -59,9 +59,9 @@ func (s *sesswatch) watcher(sessionID string, sessionPID int) {
time.Sleep(time.Duration(s.sleepSeconds) * time.Second)
proc, err := ps.FindProcess(sessionPID)
if err != nil {
log.Println("sesswatch ERROR: error while finding process:", sessionPID)
log.Println("sesswatch ERROR: error while finding process - pid:", sessionPID)
} else if proc == nil {
log.Println("sesswatch: Dropping session ~ pid:", sessionID, "~", sessionPID)
log.Println("sesswatch: Dropping session - id:", sessionID, "; pid:", sessionPID)
func() {
s.mutex.Lock()
defer s.mutex.Unlock()

Loading…
Cancel
Save