fix(netlink): use AddrReplace instead of AddrAdd
This commit is contained in:
@@ -531,7 +531,7 @@ type netLinker interface {
|
|||||||
type Addresser interface {
|
type Addresser interface {
|
||||||
AddrList(link netlink.Link, family int) (
|
AddrList(link netlink.Link, family int) (
|
||||||
addresses []netlink.Addr, err error)
|
addresses []netlink.Addr, err error)
|
||||||
AddrAdd(link netlink.Link, addr *netlink.Addr) error
|
AddrReplace(link netlink.Link, addr *netlink.Addr) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type Router interface {
|
type Router interface {
|
||||||
|
|||||||
@@ -9,6 +9,6 @@ func (n *NetLink) AddrList(link Link, family int) (
|
|||||||
return netlink.AddrList(link, family)
|
return netlink.AddrList(link, family)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *NetLink) AddrAdd(link Link, addr *Addr) error {
|
func (n *NetLink) AddrReplace(link Link, addr *Addr) error {
|
||||||
return netlink.AddrAdd(link, addr)
|
return netlink.AddrReplace(link, addr)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,20 +34,6 @@ func (m *MockNetLinker) EXPECT() *MockNetLinkerMockRecorder {
|
|||||||
return m.recorder
|
return m.recorder
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddrAdd mocks base method.
|
|
||||||
func (m *MockNetLinker) AddrAdd(arg0 netlink.Link, arg1 *netlink.Addr) error {
|
|
||||||
m.ctrl.T.Helper()
|
|
||||||
ret := m.ctrl.Call(m, "AddrAdd", arg0, arg1)
|
|
||||||
ret0, _ := ret[0].(error)
|
|
||||||
return ret0
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddrAdd indicates an expected call of AddrAdd.
|
|
||||||
func (mr *MockNetLinkerMockRecorder) AddrAdd(arg0, arg1 interface{}) *gomock.Call {
|
|
||||||
mr.mock.ctrl.T.Helper()
|
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddrAdd", reflect.TypeOf((*MockNetLinker)(nil).AddrAdd), arg0, arg1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddrList mocks base method.
|
// AddrList mocks base method.
|
||||||
func (m *MockNetLinker) AddrList(arg0 netlink.Link, arg1 int) ([]netlink.Addr, error) {
|
func (m *MockNetLinker) AddrList(arg0 netlink.Link, arg1 int) ([]netlink.Addr, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
@@ -63,6 +49,20 @@ func (mr *MockNetLinkerMockRecorder) AddrList(arg0, arg1 interface{}) *gomock.Ca
|
|||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddrList", reflect.TypeOf((*MockNetLinker)(nil).AddrList), arg0, arg1)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddrList", reflect.TypeOf((*MockNetLinker)(nil).AddrList), arg0, arg1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AddrReplace mocks base method.
|
||||||
|
func (m *MockNetLinker) AddrReplace(arg0 netlink.Link, arg1 *netlink.Addr) error {
|
||||||
|
m.ctrl.T.Helper()
|
||||||
|
ret := m.ctrl.Call(m, "AddrReplace", arg0, arg1)
|
||||||
|
ret0, _ := ret[0].(error)
|
||||||
|
return ret0
|
||||||
|
}
|
||||||
|
|
||||||
|
// AddrReplace indicates an expected call of AddrReplace.
|
||||||
|
func (mr *MockNetLinkerMockRecorder) AddrReplace(arg0, arg1 interface{}) *gomock.Call {
|
||||||
|
mr.mock.ctrl.T.Helper()
|
||||||
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddrReplace", reflect.TypeOf((*MockNetLinker)(nil).AddrReplace), arg0, arg1)
|
||||||
|
}
|
||||||
|
|
||||||
// IsWireguardSupported mocks base method.
|
// IsWireguardSupported mocks base method.
|
||||||
func (m *MockNetLinker) IsWireguardSupported() (bool, error) {
|
func (m *MockNetLinker) IsWireguardSupported() (bool, error) {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ type NetLinker interface {
|
|||||||
type Addresser interface {
|
type Addresser interface {
|
||||||
AddrList(link netlink.Link, family int) (
|
AddrList(link netlink.Link, family int) (
|
||||||
addresses []netlink.Addr, err error)
|
addresses []netlink.Addr, err error)
|
||||||
AddrAdd(link netlink.Link, addr *netlink.Addr) error
|
AddrReplace(link netlink.Link, addr *netlink.Addr) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type Router interface {
|
type Router interface {
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ type Storage interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type NetLinker interface {
|
type NetLinker interface {
|
||||||
AddrAdd(link netlink.Link, addr *netlink.Addr) error
|
AddrReplace(link netlink.Link, addr *netlink.Addr) error
|
||||||
Router
|
Router
|
||||||
Ruler
|
Ruler
|
||||||
Linker
|
Linker
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ func (w *Wireguard) addAddresses(link netlink.Link,
|
|||||||
IPNet: routing.NetipPrefixToIPNet(&ipNet),
|
IPNet: routing.NetipPrefixToIPNet(&ipNet),
|
||||||
}
|
}
|
||||||
|
|
||||||
err = w.netlink.AddrAdd(link, address)
|
err = w.netlink.AddrReplace(link, address)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("%w: when adding address %s to link %s",
|
return fmt.Errorf("%w: when adding address %s to link %s",
|
||||||
err, address, link.Attrs().Name)
|
err, address, link.Attrs().Name)
|
||||||
|
|||||||
@@ -40,10 +40,10 @@ func Test_Wireguard_addAddresses(t *testing.T) {
|
|||||||
wgBuilder: func(ctrl *gomock.Controller, link netlink.Link) *Wireguard {
|
wgBuilder: func(ctrl *gomock.Controller, link netlink.Link) *Wireguard {
|
||||||
netLinker := NewMockNetLinker(ctrl)
|
netLinker := NewMockNetLinker(ctrl)
|
||||||
firstCall := netLinker.EXPECT().
|
firstCall := netLinker.EXPECT().
|
||||||
AddrAdd(link, &netlink.Addr{IPNet: routing.NetipPrefixToIPNet(&ipNetOne)}).
|
AddrReplace(link, &netlink.Addr{IPNet: routing.NetipPrefixToIPNet(&ipNetOne)}).
|
||||||
Return(nil)
|
Return(nil)
|
||||||
netLinker.EXPECT().
|
netLinker.EXPECT().
|
||||||
AddrAdd(link, &netlink.Addr{IPNet: routing.NetipPrefixToIPNet(&ipNetTwo)}).
|
AddrReplace(link, &netlink.Addr{IPNet: routing.NetipPrefixToIPNet(&ipNetTwo)}).
|
||||||
Return(nil).After(firstCall)
|
Return(nil).After(firstCall)
|
||||||
return &Wireguard{
|
return &Wireguard{
|
||||||
netlink: netLinker,
|
netlink: netLinker,
|
||||||
@@ -59,7 +59,7 @@ func Test_Wireguard_addAddresses(t *testing.T) {
|
|||||||
wgBuilder: func(ctrl *gomock.Controller, link netlink.Link) *Wireguard {
|
wgBuilder: func(ctrl *gomock.Controller, link netlink.Link) *Wireguard {
|
||||||
netLinker := NewMockNetLinker(ctrl)
|
netLinker := NewMockNetLinker(ctrl)
|
||||||
netLinker.EXPECT().
|
netLinker.EXPECT().
|
||||||
AddrAdd(link, &netlink.Addr{IPNet: routing.NetipPrefixToIPNet(&ipNetOne)}).
|
AddrReplace(link, &netlink.Addr{IPNet: routing.NetipPrefixToIPNet(&ipNetOne)}).
|
||||||
Return(errDummy)
|
Return(errDummy)
|
||||||
return &Wireguard{
|
return &Wireguard{
|
||||||
netlink: netLinker,
|
netlink: netLinker,
|
||||||
@@ -76,10 +76,10 @@ func Test_Wireguard_addAddresses(t *testing.T) {
|
|||||||
wgBuilder: func(ctrl *gomock.Controller, link netlink.Link) *Wireguard {
|
wgBuilder: func(ctrl *gomock.Controller, link netlink.Link) *Wireguard {
|
||||||
netLinker := NewMockNetLinker(ctrl)
|
netLinker := NewMockNetLinker(ctrl)
|
||||||
firstCall := netLinker.EXPECT().
|
firstCall := netLinker.EXPECT().
|
||||||
AddrAdd(link, &netlink.Addr{IPNet: routing.NetipPrefixToIPNet(&ipNetOne)}).
|
AddrReplace(link, &netlink.Addr{IPNet: routing.NetipPrefixToIPNet(&ipNetOne)}).
|
||||||
Return(nil)
|
Return(nil)
|
||||||
netLinker.EXPECT().
|
netLinker.EXPECT().
|
||||||
AddrAdd(link, &netlink.Addr{IPNet: routing.NetipPrefixToIPNet(&ipNetTwo)}).
|
AddrReplace(link, &netlink.Addr{IPNet: routing.NetipPrefixToIPNet(&ipNetTwo)}).
|
||||||
Return(errDummy).After(firstCall)
|
Return(errDummy).After(firstCall)
|
||||||
return &Wireguard{
|
return &Wireguard{
|
||||||
netlink: netLinker,
|
netlink: netLinker,
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import "github.com/qdm12/gluetun/internal/netlink"
|
|||||||
//go:generate mockgen -destination=netlinker_mock_test.go -package wireguard . NetLinker
|
//go:generate mockgen -destination=netlinker_mock_test.go -package wireguard . NetLinker
|
||||||
|
|
||||||
type NetLinker interface {
|
type NetLinker interface {
|
||||||
AddrAdd(link netlink.Link, addr *netlink.Addr) error
|
AddrReplace(link netlink.Link, addr *netlink.Addr) error
|
||||||
Router
|
Router
|
||||||
Ruler
|
Ruler
|
||||||
Linker
|
Linker
|
||||||
|
|||||||
@@ -34,18 +34,18 @@ func (m *MockNetLinker) EXPECT() *MockNetLinkerMockRecorder {
|
|||||||
return m.recorder
|
return m.recorder
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddrAdd mocks base method.
|
// AddrReplace mocks base method.
|
||||||
func (m *MockNetLinker) AddrAdd(arg0 netlink.Link, arg1 *netlink.Addr) error {
|
func (m *MockNetLinker) AddrReplace(arg0 netlink.Link, arg1 *netlink.Addr) error {
|
||||||
m.ctrl.T.Helper()
|
m.ctrl.T.Helper()
|
||||||
ret := m.ctrl.Call(m, "AddrAdd", arg0, arg1)
|
ret := m.ctrl.Call(m, "AddrReplace", arg0, arg1)
|
||||||
ret0, _ := ret[0].(error)
|
ret0, _ := ret[0].(error)
|
||||||
return ret0
|
return ret0
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddrAdd indicates an expected call of AddrAdd.
|
// AddrReplace indicates an expected call of AddrReplace.
|
||||||
func (mr *MockNetLinkerMockRecorder) AddrAdd(arg0, arg1 interface{}) *gomock.Call {
|
func (mr *MockNetLinkerMockRecorder) AddrReplace(arg0, arg1 interface{}) *gomock.Call {
|
||||||
mr.mock.ctrl.T.Helper()
|
mr.mock.ctrl.T.Helper()
|
||||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddrAdd", reflect.TypeOf((*MockNetLinker)(nil).AddrAdd), arg0, arg1)
|
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddrReplace", reflect.TypeOf((*MockNetLinker)(nil).AddrReplace), arg0, arg1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsWireguardSupported mocks base method.
|
// IsWireguardSupported mocks base method.
|
||||||
|
|||||||
Reference in New Issue
Block a user