summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Langesten <daniel.langest@gmail.com>2015-03-03 14:38:29 +0100
committerDaniel Langesten <daniel.langest@gmail.com>2015-03-03 14:38:29 +0100
commit2abb472e5e356448a5d9c9b51518b50c8c440ff8 (patch)
tree584c10b1eecf02d40ac6492e6d240e9579885a33
parentab0a4ced7c0e8db3b50807299e8cc8cd1e128385 (diff)
fixed errors
-rw-r--r--cleaner.go17
1 files changed, 10 insertions, 7 deletions
diff --git a/cleaner.go b/cleaner.go
index 47caa82..b001c0a 100644
--- a/cleaner.go
+++ b/cleaner.go
@@ -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