aboutsummaryrefslogtreecommitdiff
path: root/pcap_importer.go
diff options
context:
space:
mode:
authorEmiliano Ciavatta2020-04-25 10:12:12 +0000
committerEmiliano Ciavatta2020-04-25 10:12:12 +0000
commit4f82402b345af658eee6485801426857e16f49f8 (patch)
tree37e93299511610edd09d3388900f98e311351508 /pcap_importer.go
parent111bef5ea1c3eb28329715cb0598a6d7363853e2 (diff)
Add connections_controller and services_controller
Diffstat (limited to 'pcap_importer.go')
-rw-r--r--pcap_importer.go23
1 files changed, 16 insertions, 7 deletions
diff --git a/pcap_importer.go b/pcap_importer.go
index 24ce2cf..2bdbd1a 100644
--- a/pcap_importer.go
+++ b/pcap_importer.go
@@ -92,6 +92,16 @@ func (pi *PcapImporter) ImportPcap(fileName string) (string, error) {
return hash, nil
}
+func (pi *PcapImporter) GetSessions() []ImportingSession {
+ pi.mSessions.Lock()
+ sessions := make([]ImportingSession, 0, len(pi.sessions))
+ for _, session := range pi.sessions {
+ sessions = append(sessions, session)
+ }
+ pi.mSessions.Unlock()
+ return sessions
+}
+
func (pi *PcapImporter) GetSession(sessionID string) (ImportingSession, bool) {
pi.mSessions.Lock()
defer pi.mSessions.Unlock()
@@ -99,15 +109,14 @@ func (pi *PcapImporter) GetSession(sessionID string) (ImportingSession, bool) {
return session, isPresent
}
-func (pi *PcapImporter) CancelSession(sessionID string) error {
+func (pi *PcapImporter) CancelSession(sessionID string) bool {
pi.mSessions.Lock()
- defer pi.mSessions.Unlock()
- if session, isPresent := pi.sessions[sessionID]; !isPresent {
- return errors.New("session " + sessionID + " not found")
- } else {
+ session, isPresent := pi.sessions[sessionID]
+ if isPresent {
session.cancelFunc()
- return nil
}
+ pi.mSessions.Unlock()
+ return isPresent
}
// Read the pcap and save the tcp stream flow to the database
@@ -211,7 +220,7 @@ func (pi *PcapImporter) progressUpdate(session ImportingSession, completed bool,
if _, _err := pi.storage.Insert(ImportingSessions).One(session); _err != nil {
log.WithError(_err).WithField("session", session).Error("failed to insert importing stats")
}
- session.completed <- session.ImportingError
+ close(session.completed)
}
}