Add timestamp to scan results cache

This commit is contained in:
Chris Harris 2024-06-28 12:13:17 -04:00
parent 5f86f9a378
commit 6aeffc92f1
No known key found for this signature in database
GPG key ID: 9DAE9BAB4FBA0FEE
4 changed files with 17 additions and 12 deletions

View file

@ -15,6 +15,7 @@ func CreateProbeResultsIfNotExists(path string) (*sqlx.DB, error) {
port INTEGER NOT NULL,
protocol TEXT,
state INTEGER,
timestamp TIMESTAMP,
PRIMARY KEY (host, port)
);
`
@ -41,8 +42,8 @@ func InsertProbeResults(path string, states *[]magellan.ScannedResult) error {
// insert all probe states into db
tx := db.MustBegin()
for _, state := range *states {
sql := `INSERT OR REPLACE INTO magellan_scanned_ports (host, port, protocol, state)
VALUES (:host, :port, :protocol, :state);`
sql := `INSERT OR REPLACE INTO magellan_scanned_ports (host, port, protocol, state, timestamp)
VALUES (:host, :port, :protocol, :state, :timestamp);`
_, err := tx.NamedExec(sql, &state)
if err != nil {
fmt.Printf("failed toexecute transaction: %v\n", err)

View file

@ -12,20 +12,22 @@ import (
)
type ScannedResult struct {
Host string `json:"host"`
Port int `json:"port"`
Protocol string `json:"protocol"`
State bool `json:"state"`
Host string `json:"host"`
Port int `json:"port"`
Protocol string `json:"protocol"`
State bool `json:"state"`
Timestamp time.Time `json:"timestamp"`
}
func rawConnect(host string, ports []int, timeout int, keepOpenOnly bool) []ScannedResult {
results := []ScannedResult{}
for _, p := range ports {
result := ScannedResult{
Host: host,
Port: p,
Protocol: "tcp",
State: false,
Host: host,
Port: p,
Protocol: "tcp",
State: false,
Timestamp: time.Now(),
}
t := time.Second * time.Duration(timeout)
port := fmt.Sprint(p)