From 34a498e1321581f2406534237c0a63df4a189407 Mon Sep 17 00:00:00 2001 From: Daniel Swarbrick Date: Sat, 22 Oct 2022 11:05:47 +0200 Subject: [PATCH] Use native endianness when encoding InetDiagMsg (#2508) Note however that the InetDiagMsg struct contains a InetDiagSockID member, which itself contains some members which are explicitly specified as big-endian in Linux kernel source: struct inet_diag_sockid { __be16 idiag_sport; __be16 idiag_dport; __be32 idiag_src[4]; __be32 idiag_dst[4]; __u32 idiag_if; __u32 idiag_cookie[2]; }; node_exporter currently does not use these members for anything, so this is acceptable (for now). Signed-off-by: Daniel Swarbrick --- collector/tcpstat_linux_test.go | 3 ++- go.mod | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/collector/tcpstat_linux_test.go b/collector/tcpstat_linux_test.go index 37dc1eee..693f04fe 100644 --- a/collector/tcpstat_linux_test.go +++ b/collector/tcpstat_linux_test.go @@ -19,13 +19,14 @@ import ( "syscall" "testing" + "github.com/josharian/native" "github.com/mdlayher/netlink" ) func Test_parseTCPStats(t *testing.T) { encode := func(m InetDiagMsg) []byte { var buf bytes.Buffer - err := binary.Write(&buf, binary.LittleEndian, m) + err := binary.Write(&buf, native.Endian, m) if err != nil { panic(err) } diff --git a/go.mod b/go.mod index 4775af88..c638a5f1 100644 --- a/go.mod +++ b/go.mod @@ -12,6 +12,7 @@ require ( github.com/hashicorp/go-envparse v0.0.0-20200406174449-d9cfd743a15e github.com/hodgesds/perf-utils v0.5.1 github.com/illumos/go-kstat v0.0.0-20210513183136-173c9b0a9973 + github.com/josharian/native v1.0.0 github.com/jsimonetti/rtnetlink v1.2.2 github.com/lufia/iostat v1.2.1 github.com/mattn/go-xmlrpc v0.0.3 @@ -39,7 +40,6 @@ require ( github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/google/go-cmp v0.5.9 // indirect - github.com/josharian/native v1.0.0 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect github.com/mdlayher/genetlink v1.2.0 // indirect