From aa53436e56604275195d7842855b6939d805f5ad Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Wed, 24 Aug 2022 19:41:26 +0000 Subject: [PATCH] chore(lint): upgrade golangci-lint to v1.49.0 - Add linter `interfacebloat` and fix code issues - Add linter `reassign` - Remove deprecated linter `nosnakecase` --- .golangci.yml | 20 ++------------------ Dockerfile | 2 +- cmd/gluetun/main.go | 18 +++++++++++++++++- internal/routing/routing.go | 18 +++++++++++++++++- internal/vpn/interfaces.go | 12 ++++++++++++ internal/wireguard/netlinker.go | 17 +++++++++++++++-- 6 files changed, 64 insertions(+), 23 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 6a731a81..04704554 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -29,23 +29,6 @@ issues: - text: "returns interface \\(github\\.com\\/vishvananda\\/netlink\\.Link\\)" linters: - ireturn - - text: "_main contains underscore\\. You should use mixedCap or MixedCap\\." - path: "cmd\\/gluetun\\/main\\.go" - linters: - - nosnakecase - - text: "O_[A-Z]+ contains underscore\\. You should use mixedCap or MixedCap\\." - linters: - - nosnakecase - - text: "Stat_t contains underscore\\. You should use mixedCap or MixedCap\\." - linters: - - nosnakecase - - text: "S_IFCHR contains underscore\\. You should use mixedCap or MixedCap\\." - linters: - - nosnakecase - - text: "FAMILY_(ALL|V4|V6) contains underscore\\. You should use mixedCap or MixedCap\\." - path: "internal\\/(netlink|routing|wireguard)\\/.+\\.go" - linters: - - nosnakecase linters: enable: @@ -83,6 +66,7 @@ linters: - gosec - grouper - importas + - interfacebloat - ireturn - lll - maintidx @@ -94,11 +78,11 @@ linters: - nilnil - noctx - nolintlint - - nosnakecase - nosprintfhostport - prealloc - predeclared - promlinter + - reassign - revive - rowserrcheck - sqlclosecheck diff --git a/Dockerfile b/Dockerfile index cfb01dd4..8f1ae7b0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ ARG ALPINE_VERSION=3.16 ARG GO_ALPINE_VERSION=3.16 ARG GO_VERSION=1.17 ARG XCPUTRANSLATE_VERSION=v0.6.0 -ARG GOLANGCI_LINT_VERSION=v1.48.0 +ARG GOLANGCI_LINT_VERSION=v1.49.0 ARG MOCKGEN_VERSION=v1.6.0 ARG BUILDPLATFORM=linux/amd64 diff --git a/cmd/gluetun/main.go b/cmd/gluetun/main.go index 498e9a1c..8546f43a 100644 --- a/cmd/gluetun/main.go +++ b/cmd/gluetun/main.go @@ -489,18 +489,34 @@ func printVersions(ctx context.Context, logger infoer, } type netLinker interface { + Addresser + Router + Ruler + Linker + IsWireguardSupported() (ok bool, err error) +} + +type Addresser interface { AddrList(link netlink.Link, family int) ( addresses []netlink.Addr, err error) AddrAdd(link netlink.Link, addr *netlink.Addr) error - IsWireguardSupported() (ok bool, err error) +} + +type Router interface { RouteList(link netlink.Link, family int) ( routes []netlink.Route, err error) RouteAdd(route *netlink.Route) error RouteDel(route *netlink.Route) error RouteReplace(route *netlink.Route) error +} + +type Ruler interface { RuleList(family int) (rules []netlink.Rule, err error) RuleAdd(rule *netlink.Rule) error RuleDel(rule *netlink.Rule) error +} + +type Linker interface { LinkList() (links []netlink.Link, err error) LinkByName(name string) (link netlink.Link, err error) LinkByIndex(index int) (link netlink.Link, err error) diff --git a/internal/routing/routing.go b/internal/routing/routing.go index d0bc269b..bd590976 100644 --- a/internal/routing/routing.go +++ b/internal/routing/routing.go @@ -8,18 +8,34 @@ import ( ) type NetLinker interface { + Addresser + Router + Ruler + Linker + IsWireguardSupported() (ok bool, err error) +} + +type Addresser interface { AddrList(link netlink.Link, family int) ( addresses []netlink.Addr, err error) AddrAdd(link netlink.Link, addr *netlink.Addr) error - IsWireguardSupported() (ok bool, err error) +} + +type Router interface { RouteList(link netlink.Link, family int) ( routes []netlink.Route, err error) RouteAdd(route *netlink.Route) error RouteDel(route *netlink.Route) error RouteReplace(route *netlink.Route) error +} + +type Ruler interface { RuleList(family int) (rules []netlink.Rule, err error) RuleAdd(rule *netlink.Rule) error RuleDel(rule *netlink.Rule) error +} + +type Linker interface { LinkList() (links []netlink.Link, err error) LinkByName(name string) (link netlink.Link, err error) LinkByIndex(index int) (link netlink.Link, err error) diff --git a/internal/vpn/interfaces.go b/internal/vpn/interfaces.go index 978315b7..54df30bf 100644 --- a/internal/vpn/interfaces.go +++ b/internal/vpn/interfaces.go @@ -43,12 +43,24 @@ type Storage interface { type NetLinker interface { AddrAdd(link netlink.Link, addr *netlink.Addr) error + Router + Ruler + Linker IsWireguardSupported() (ok bool, err error) +} + +type Router interface { RouteList(link netlink.Link, family int) ( routes []netlink.Route, err error) RouteAdd(route *netlink.Route) error +} + +type Ruler interface { RuleAdd(rule *netlink.Rule) error RuleDel(rule *netlink.Rule) error +} + +type Linker interface { LinkList() (links []netlink.Link, err error) LinkByName(name string) (link netlink.Link, err error) LinkAdd(link netlink.Link) (err error) diff --git a/internal/wireguard/netlinker.go b/internal/wireguard/netlinker.go index de84bd2b..07817c68 100644 --- a/internal/wireguard/netlinker.go +++ b/internal/wireguard/netlinker.go @@ -6,15 +6,28 @@ import "github.com/qdm12/gluetun/internal/netlink" type NetLinker interface { AddrAdd(link netlink.Link, addr *netlink.Addr) error - RouteList(link netlink.Link, family int) (routes []netlink.Route, err error) + Router + Ruler + Linker + IsWireguardSupported() (ok bool, err error) +} + +type Router interface { + RouteList(link netlink.Link, family int) ( + routes []netlink.Route, err error) RouteAdd(route *netlink.Route) error +} + +type Ruler interface { RuleAdd(rule *netlink.Rule) error RuleDel(rule *netlink.Rule) error +} + +type Linker interface { LinkAdd(link netlink.Link) (err error) LinkList() (links []netlink.Link, err error) LinkByName(name string) (link netlink.Link, err error) LinkSetUp(link netlink.Link) error LinkSetDown(link netlink.Link) error LinkDel(link netlink.Link) error - IsWireguardSupported() (ok bool, err error) }