aboutsummaryrefslogtreecommitdiffstats
path: root/http
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-12-26 16:23:37 +0100
committerMartin Polden <mpolden@mpolden.no>2019-12-26 16:23:37 +0100
commitccfcccfef65dc7be6bd591ded811e05e86ef8ae8 (patch)
tree2b0f5e203eab28738ecf03b2325168d5c371a8fd /http
parentb4e42b3f6429178d50a1ee2acefbd6a2aa2fbacf (diff)
Merge multi-answer log entries
Diffstat (limited to 'http')
-rw-r--r--http/http.go14
-rw-r--r--http/http_test.go6
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