From 8bb95469d92bac60811f3f76c59511e52d0ffadc Mon Sep 17 00:00:00 2001 From: Eugene Burkov Date: Wed, 6 Apr 2022 19:36:13 +0300 Subject: [PATCH] Pull request: 4465 fix ifaces resp Merge in DNS/adguard-home from 4465-bad-ifaces-resp to master Closes #4465. Squashed commit of the following: commit cc44252b2f12ba4b15df315253417aba2a3f98a6 Author: Eugene Burkov Date: Wed Apr 6 19:21:40 2022 +0300 aghnet: fix get_addresses --- internal/aghnet/net.go | 4 ++-- internal/aghnet/net_test.go | 12 +++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/internal/aghnet/net.go b/internal/aghnet/net.go index cd2edc72..268380bd 100644 --- a/internal/aghnet/net.go +++ b/internal/aghnet/net.go @@ -87,8 +87,8 @@ type NetInterface struct { MTU int `json:"mtu"` } -// MarshalText implements the json.Marshaler interface for NetInterface. -func (iface NetInterface) MarshalText() ([]byte, error) { +// MarshalJSON implements the json.Marshaler interface for NetInterface. +func (iface NetInterface) MarshalJSON() ([]byte, error) { type netInterface NetInterface return json.Marshal(&struct { HardwareAddr string `json:"hardware_address"` diff --git a/internal/aghnet/net_test.go b/internal/aghnet/net_test.go index 77eab3be..40d395ba 100644 --- a/internal/aghnet/net_test.go +++ b/internal/aghnet/net_test.go @@ -1,6 +1,8 @@ package aghnet import ( + "bytes" + "encoding/json" "fmt" "io/fs" "net" @@ -311,14 +313,14 @@ func TestIsAddrInUse(t *testing.T) { }) } -func TestNetInterface_MarshalText(t *testing.T) { +func TestNetInterface_MarshalJSON(t *testing.T) { const want = `{` + `"hardware_address":"aa:bb:cc:dd:ee:ff",` + `"flags":"up|multicast",` + `"ip_addresses":["1.2.3.4","aaaa::1"],` + `"name":"iface0",` + `"mtu":1500` + - `}` + `}` + "\n" ip4, ip6 := net.IP{1, 2, 3, 4}, net.IP{0xAA, 0xAA, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1} mask4, mask6 := net.CIDRMask(24, netutil.IPv4BitLen), net.CIDRMask(8, netutil.IPv6BitLen) @@ -338,5 +340,9 @@ func TestNetInterface_MarshalText(t *testing.T) { MTU: 1500, } - testutil.AssertMarshalText(t, want, iface) + b := &bytes.Buffer{} + err := json.NewEncoder(b).Encode(iface) + require.NoError(t, err) + + assert.Equal(t, want, b.String()) }