diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-12-26 16:23:37 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2019-12-26 16:23:37 +0100 |
commit | ccfcccfef65dc7be6bd591ded811e05e86ef8ae8 (patch) | |
tree | 2b0f5e203eab28738ecf03b2325168d5c371a8fd /http | |
parent | b4e42b3f6429178d50a1ee2acefbd6a2aa2fbacf (diff) |
Merge multi-answer log entries
Diffstat (limited to 'http')
-rw-r--r-- | http/http.go | 14 | ||||
-rw-r--r-- | http/http_test.go | 6 |
2 files changed, 11 insertions, 9 deletions
diff --git a/http/http.go b/http/http.go index 2b0c5cc..dac035c 100644 --- a/http/http.go +++ b/http/http.go @@ -19,11 +19,11 @@ type Server struct { } type logEntry struct { - Time string `json:"time"` - RemoteAddr net.IP `json:"remote_addr"` - Qtype string `json:"type"` - Question string `json:"question"` - Answer string `json:"answer"` + Time string `json:"time"` + RemoteAddr net.IP `json:"remote_addr"` + Qtype string `json:"type"` + Question string `json:"question"` + Answers []string `json:"answers"` } type httpError struct { @@ -101,13 +101,15 @@ func (s *Server) logHandler(w http.ResponseWriter, r *http.Request) (interface{} dnsType = "A" case dns.TypeAAAA: dnsType = "AAAA" + case dns.TypeMX: + dnsType = "MX" } e := logEntry{ Time: entry.Time.UTC().Format(time.RFC3339), RemoteAddr: entry.RemoteAddr, Qtype: dnsType, Question: entry.Question, - Answer: entry.Answer, + Answers: entry.Answers, } entries = append(entries, e) } diff --git a/http/http_test.go b/http/http_test.go index 61ea70a..94708f8 100644 --- a/http/http_test.go +++ b/http/http_test.go @@ -39,11 +39,11 @@ func httpGet(url string) (string, int, error) { func TestRequests(t *testing.T) { server, logger := testServer() defer server.Close() - logger.Record(net.IPv4(127, 0, 0, 42), 1, "example.com.", "192.0.2.100") + logger.Record(net.IPv4(127, 0, 0, 42), 1, "example.com.", "192.0.2.100", "192.0.2.101") logger.Record(net.IPv4(127, 0, 0, 254), 28, "example.com.", "2001:db8::1") - var logResponse = "[{\"time\":\"2006-01-02T15:04:05Z\",\"remote_addr\":\"127.0.0.254\",\"type\":\"AAAA\",\"question\":\"example.com.\",\"answer\":\"2001:db8::1\"}," + - "{\"time\":\"2006-01-02T15:04:05Z\",\"remote_addr\":\"127.0.0.42\",\"type\":\"A\",\"question\":\"example.com.\",\"answer\":\"192.0.2.100\"}]" + var logResponse = "[{\"time\":\"2006-01-02T15:04:05Z\",\"remote_addr\":\"127.0.0.254\",\"type\":\"AAAA\",\"question\":\"example.com.\",\"answers\":[\"2001:db8::1\"]}," + + "{\"time\":\"2006-01-02T15:04:05Z\",\"remote_addr\":\"127.0.0.42\",\"type\":\"A\",\"question\":\"example.com.\",\"answers\":[\"192.0.2.101\",\"192.0.2.100\"]}]" var tests = []struct { method string |