blob: 7d05d0e74c1556759a2ac0bc94a53ae076376258 [file] [log] [blame]
Lorenz Brun4c825322023-04-11 13:25:14 +02001From f367f115a327ca07a294022bc296b4a2fd4e8f8c Mon Sep 17 00:00:00 2001
2From: Lorenz Brun <lorenz@monogon.tech>
3Date: Thu, 6 Apr 2023 23:06:03 +0200
4Subject: [PATCH] Use RTM_SETLINK where appropriate
5
6---
7 link_linux.go | 12 ++++++------
8 1 file changed, 6 insertions(+), 6 deletions(-)
9
10diff --git a/link_linux.go b/link_linux.go
11index cc80fb6..db89880 100644
12--- a/link_linux.go
13+++ b/link_linux.go
14@@ -332,7 +332,7 @@ func BridgeSetMcastSnoop(link Link, on bool) error {
15 func (h *Handle) BridgeSetMcastSnoop(link Link, on bool) error {
16 bridge := link.(*Bridge)
17 bridge.MulticastSnooping = &on
18- return h.linkModify(bridge, unix.NLM_F_ACK)
19+ return h.linkModify(bridge, unix.RTM_SETLINK, unix.NLM_F_ACK)
20 }
21
22 func BridgeSetVlanFiltering(link Link, on bool) error {
23@@ -342,7 +342,7 @@ func BridgeSetVlanFiltering(link Link, on bool) error {
24 func (h *Handle) BridgeSetVlanFiltering(link Link, on bool) error {
25 bridge := link.(*Bridge)
26 bridge.VlanFiltering = &on
27- return h.linkModify(bridge, unix.NLM_F_ACK)
28+ return h.linkModify(bridge, unix.RTM_SETLINK, unix.NLM_F_ACK)
29 }
30
31 func SetPromiscOn(link Link) error {
32@@ -1197,7 +1197,7 @@ func LinkAdd(link Link) error {
33 // are taken from the parameters in the link object.
34 // Equivalent to: `ip link add $link`
35 func (h *Handle) LinkAdd(link Link) error {
36- return h.linkModify(link, unix.NLM_F_CREATE|unix.NLM_F_EXCL|unix.NLM_F_ACK)
37+ return h.linkModify(link, unix.RTM_NEWLINK, unix.NLM_F_CREATE|unix.NLM_F_EXCL|unix.NLM_F_ACK)
38 }
39
40 func LinkModify(link Link) error {
41@@ -1205,10 +1205,10 @@ func LinkModify(link Link) error {
42 }
43
44 func (h *Handle) LinkModify(link Link) error {
45- return h.linkModify(link, unix.NLM_F_REQUEST|unix.NLM_F_ACK)
46+ return h.linkModify(link, unix.RTM_SETLINK, unix.NLM_F_REQUEST|unix.NLM_F_ACK)
47 }
48
49-func (h *Handle) linkModify(link Link, flags int) error {
50+func (h *Handle) linkModify(link Link, proto, flags int) error {
51 // TODO: support extra data for macvlan
52 base := link.Attrs()
53
54@@ -1373,7 +1373,7 @@ func (h *Handle) linkModify(link Link, flags int) error {
55 return nil
56 }
57
58- req := h.newNetlinkRequest(unix.RTM_NEWLINK, flags)
59+ req := h.newNetlinkRequest(proto, flags)
60
61 msg := nl.NewIfInfomsg(unix.AF_UNSPEC)
62 // TODO: make it shorter
63--
642.39.2
65