diff options
author | Daniel Langesten <daniel.langest@gmail.com> | 2015-03-03 14:38:29 +0100 |
---|---|---|
committer | Daniel Langesten <daniel.langest@gmail.com> | 2015-03-03 14:38:29 +0100 |
commit | 2abb472e5e356448a5d9c9b51518b50c8c440ff8 (patch) | |
tree | 584c10b1eecf02d40ac6492e6d240e9579885a33 | |
parent | ab0a4ced7c0e8db3b50807299e8cc8cd1e128385 (diff) |
fixed errors
-rw-r--r-- | cleaner.go | 17 |
1 files changed, 10 insertions, 7 deletions
@@ -13,7 +13,7 @@ const ( DATABASE_PASS = "pass" DATABASE_CONNECTION = "" //e.g. "tcp(localhost:55555) DATABASE_NAME = "netflow" - MAXIMUM_ENTRIES = 10 + MAXIMUM_ENTRIES = 1 TIMESPAN = "day" ) @@ -110,7 +110,7 @@ func getTimespan(t time.Time) (span time.Time, err error) { func clean(rDat []RawData) (cDat []CleanData, err error) { // collect all ips so we can query for their ip blocks - var ips map[string]*asnipPair + ips := make(map[string]*asnipPair) for _, rd := range rDat { ips[rd.ipSrc] = nil ips[rd.ipDst] = nil @@ -125,8 +125,8 @@ func clean(rDat []RawData) (cDat []CleanData, err error) { if err != nil { return } - for _, p := range pairs { - ips[p.ipAdr] = &p + for ix, p := range pairs { + ips[p.ipAdr] = &pairs[ix] } for _, rd := range rDat { @@ -163,9 +163,12 @@ func fetchRawData(db *sql.DB, numRows int) (rDat []RawData, err error) { return } + loc, err := time.LoadLocation("Local") for rows.Next() { var r RawData - err = rows.Scan(&r.ipSrc, &r.ipDst, &r.time, &r.port, &r.packetSize) + var tim []byte + err = rows.Scan(&r.ipSrc, &r.ipDst, &tim, &r.port, &r.packetSize) + r.time, err = time.ParseInLocation("2006-02-01 15:04:05", string(tim), loc) if err != nil { log.Println("Failed to scan result of query") return @@ -175,7 +178,7 @@ func fetchRawData(db *sql.DB, numRows int) (rDat []RawData, err error) { return } func purgeRawData(tx *sql.Tx, rDat []RawData) (err error) { - prepStmt, err := tx.Prepare("DELETE FROM raw_data WHERE ip_src = ? AND ip_dst = ? AND time = ? AND port = ? AND packet_size = ?") + prepStmt, err := tx.Prepare("DELETE FROM raw_data WHERE ip_src = ? AND ip_dst = ? AND time = ? AND port = ? AND packet_size = ? LIMIT 1") if err != nil { return } @@ -190,7 +193,7 @@ func purgeRawData(tx *sql.Tx, rDat []RawData) (err error) { } func insertCleanData(tx *sql.Tx, ipbSrc, ipbDst, volume string, time time.Time, port, occurences int) error { - prepStmt, err := tx.Prepare("INSERT INTO clean_data (ipb_src, ipb_dst, time, port, volume, occurenaces) VALUES ( ? , ? , ? , ? , ? , ? , ?) ON DUPLICATE KEY UPDATE occurences = occurences + ?") + prepStmt, err := tx.Prepare("INSERT INTO clean_data (ipb_src, ipb_dst, time, port, volume, occurences) VALUES ( ? , ? , ? , ? , ? , ?) ON DUPLICATE KEY UPDATE occurences = occurences + ?") if err != nil { log.Println("Failed to prepare statement") return err |