diff options
Diffstat (limited to 'sql/logger.go')
-rw-r--r-- | sql/logger.go | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/sql/logger.go b/sql/logger.go index 4902011..0c2fd6a 100644 --- a/sql/logger.go +++ b/sql/logger.go @@ -16,17 +16,17 @@ const ( LogHijacked ) -// Logger is a logs DNS requests to a SQL database. +// Logger is a logger that logs DNS requests to a SQL database. type Logger struct { mode int - queue chan Entry + queue chan LogEntry client *Client wg sync.WaitGroup now func() time.Time } -// Entry represents a DNS request log entry. -type Entry struct { +// LogEntry represents a log entry for a DNS request. +type LogEntry struct { Time time.Time RemoteAddr net.IP Hijacked bool @@ -39,7 +39,7 @@ type Entry struct { func NewLogger(client *Client, mode int, ttl time.Duration) *Logger { l := &Logger{ client: client, - queue: make(chan Entry, 1024), + queue: make(chan LogEntry, 1024), now: time.Now, mode: mode, } @@ -64,7 +64,7 @@ func (l *Logger) Record(remoteAddr net.IP, hijacked bool, qtype uint16, question return } l.wg.Add(1) - l.queue <- Entry{ + l.queue <- LogEntry{ Time: l.now(), RemoteAddr: remoteAddr, Hijacked: hijacked, @@ -74,43 +74,43 @@ func (l *Logger) Record(remoteAddr net.IP, hijacked bool, qtype uint16, question } } -// Get returns the n most recent persisted log entries. -func (l *Logger) Get(n int) ([]Entry, error) { - logEntries, err := l.client.ReadLog(n) +// Read returns the n most recent log entries. +func (l *Logger) Read(n int) ([]LogEntry, error) { + entries, err := l.client.readLog(n) if err != nil { return nil, err } - ids := make(map[int64]*Entry) - entries := make([]Entry, 0, len(logEntries)) - for _, le := range logEntries { + ids := make(map[int64]*LogEntry) + logEntries := make([]LogEntry, 0, len(entries)) + for _, le := range entries { entry, ok := ids[le.ID] if !ok { - newEntry := Entry{ + newEntry := LogEntry{ Time: time.Unix(le.Time, 0).UTC(), RemoteAddr: le.RemoteAddr, Hijacked: le.Hijacked, Qtype: le.Qtype, Question: le.Question, } - entries = append(entries, newEntry) - entry = &entries[len(entries)-1] + logEntries = append(logEntries, newEntry) + entry = &logEntries[len(logEntries)-1] ids[le.ID] = entry } if le.Answer != "" { entry.Answers = append(entry.Answers, le.Answer) } } - return entries, nil + return logEntries, nil } func (l *Logger) readQueue(ttl time.Duration) { for e := range l.queue { - if err := l.client.WriteLog(e.Time, e.RemoteAddr, e.Hijacked, e.Qtype, e.Question, e.Answers...); err != nil { + if err := l.client.writeLog(e.Time, e.RemoteAddr, e.Hijacked, e.Qtype, e.Question, e.Answers...); err != nil { log.Printf("write failed: %+v: %s", e, err) } if ttl > 0 { t := l.now().Add(-ttl) - if err := l.client.DeleteLogBefore(t); err != nil { + if err := l.client.deleteLogBefore(t); err != nil { log.Printf("deleting log entries before %v failed: %s", t, err) } } |