From 68839cffdf24cc8cf53475966414340a95de8309 Mon Sep 17 00:00:00 2001
From: ale <ale@incal.net>
Date: Mon, 27 Mar 2023 09:54:11 +0100
Subject: [PATCH] Fix typo and update migrations for additional AS info

---
 datastore/migrations.go             | 15 +++++++++++++-
 datastore/sessions/sessions_test.go | 32 +++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+), 1 deletion(-)

diff --git a/datastore/migrations.go b/datastore/migrations.go
index 85ea48a..aff787e 100644
--- a/datastore/migrations.go
+++ b/datastore/migrations.go
@@ -44,7 +44,7 @@ INSERT INTO sequence (seq) VALUES (0);
 `, `
 CREATE TABLE active_sessions (
   peer_public_key SMALLTEXT,
-  begin_timestamp DATETIME
+  begin_timestamp DATETIME,
   end_timestamp DATETIME,
   last_handshake DATETIME,
   active BOOL,
@@ -67,5 +67,18 @@ CREATE TABLE tokens (
   secret TEXT NOT NULL,
   roles TEXT
 )
+`),
+	sqlite.Statement(`
+ALTER TABLE active_sessions ADD COLUMN src_as_num SMALLTEXT
+`, `
+ALTER TABLE active_sessions ADD COLUMN src_as_org SMALLTEXT
+`, `
+ALTER TABLE active_sessions DROP COLUMN src_as
+`, `
+ALTER TABLE sessions ADD COLUMN src_as_num SMALLTEXT
+`, `
+ALTER TABLE sessions ADD COLUMN src_as_org SMALLTEXT
+`, `
+ALTER TABLE sessions DROP COLUMN src_as
 `),
 }
diff --git a/datastore/sessions/sessions_test.go b/datastore/sessions/sessions_test.go
index 02524b5..fab4c77 100644
--- a/datastore/sessions/sessions_test.go
+++ b/datastore/sessions/sessions_test.go
@@ -72,3 +72,35 @@ func TestSessionFinder(t *testing.T) {
 		t.Fatalf("there are %d active sessions, expected 0", n)
 	}
 }
+
+func TestSessionDumper(t *testing.T) {
+	dir, err := os.MkdirTemp("", "")
+	if err != nil {
+		t.Fatal(err)
+	}
+	db, err := sqlite.OpenDB(dir+"/sf.sql", datastore.Migrations)
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer db.Close()
+
+	sf, _ := NewSessionFinder(db)
+
+	t0 := time.Now()
+	processStats(t, sf, []testData{
+		{
+			PeerStats: gateway.PeerStats{
+				PublicKey:         "pk1",
+				LastHandshakeTime: t0,
+			},
+			t: t0,
+		},
+	})
+
+	err = WithTx(db, func(tx Tx) error {
+		return tx.DumpActiveSessions(sf.ActiveSessions())
+	})
+	if err != nil {
+		t.Fatalf("DumpActiveSessions: %v", err)
+	}
+}
-- 
GitLab