diff options
-rw-r--r-- | log/logger.go | 4 | ||||
-rw-r--r-- | log/logger_test.go | 29 |
2 files changed, 22 insertions, 11 deletions
diff --git a/log/logger.go b/log/logger.go index 2fdd78e..7fa4001 100644 --- a/log/logger.go +++ b/log/logger.go @@ -129,7 +129,9 @@ func (l *Logger) Get(n int) ([]Entry, error) { entry = &entries[len(entries)-1] ids[le.ID] = entry } - entry.Answers = append(entry.Answers, le.Answer) + if le.Answer != "" { + entry.Answers = append(entry.Answers, le.Answer) + } } return entries, nil } diff --git a/log/logger_test.go b/log/logger_test.go index ae40223..e84ae06 100644 --- a/log/logger_test.go +++ b/log/logger_test.go @@ -35,23 +35,32 @@ func TestAnswerMerging(t *testing.T) { now := time.Date(2006, 1, 2, 15, 4, 5, 0, time.UTC) logger.now = func() time.Time { return now } logger.Record(net.IPv4(192, 0, 2, 100), true, 1, "example.com.", "192.0.2.1", "192.0.2.2") + logger.Record(net.IPv4(192, 0, 2, 100), true, 1, "2.example.com.") // Flush queue if err := logger.Close(); err != nil { t.Fatal(err) } - // Multi-answer log entry is merged - got, err := logger.Get(1) + // Multi-answer log entries are merged + got, err := logger.Get(2) if err != nil { t.Fatal(err) } - want := []Entry{{ - Time: now, - RemoteAddr: net.IPv4(192, 0, 2, 100), - Hijacked: true, - Qtype: 1, - Question: "example.com.", - Answers: []string{"192.0.2.2", "192.0.2.1"}, - }} + want := []Entry{ + { + Time: now, + RemoteAddr: net.IPv4(192, 0, 2, 100), + Hijacked: true, + Qtype: 1, + Question: "example.com.", + Answers: []string{"192.0.2.2", "192.0.2.1"}, + }, + { + Time: now, + RemoteAddr: net.IPv4(192, 0, 2, 100), + Hijacked: true, + Qtype: 1, + Question: "2.example.com.", + }} if !reflect.DeepEqual(want, got) { t.Errorf("Get(1) = %+v, want %+v", got, want) } |