mirror of
https://github.com/qdm12/gluetun.git
synced 2026-05-10 04:30:20 +02:00
Flush using AF_UNSPEC and netfilter package
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
|||||||
|
|
||||||
"github.com/mdlayher/netlink"
|
"github.com/mdlayher/netlink"
|
||||||
"github.com/ti-mo/netfilter"
|
"github.com/ti-mo/netfilter"
|
||||||
|
"golang.org/x/sys/unix"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (n *NetLink) FlushConntrack() error {
|
func (n *NetLink) FlushConntrack() error {
|
||||||
@@ -14,17 +15,14 @@ func (n *NetLink) FlushConntrack() error {
|
|||||||
}
|
}
|
||||||
defer conn.Close()
|
defer conn.Close()
|
||||||
|
|
||||||
families := [...]netfilter.ProtoFamily{netfilter.ProtoIPv4, netfilter.ProtoIPv6}
|
const ipCtnlMsgCtDelete = netfilter.MessageType(2)
|
||||||
for _, family := range families {
|
header := netfilter.Header{
|
||||||
const IPCtnlMsgCtDelete = 2
|
|
||||||
request, err := netfilter.MarshalNetlink(
|
|
||||||
netfilter.Header{
|
|
||||||
SubsystemID: netfilter.NFSubsysCTNetlink,
|
SubsystemID: netfilter.NFSubsysCTNetlink,
|
||||||
MessageType: netfilter.MessageType(IPCtnlMsgCtDelete),
|
MessageType: ipCtnlMsgCtDelete,
|
||||||
Family: family,
|
Family: unix.AF_UNSPEC,
|
||||||
Flags: netlink.Request | netlink.Acknowledge,
|
Flags: netlink.Request | netlink.Acknowledge,
|
||||||
},
|
}
|
||||||
nil)
|
request, err := netfilter.MarshalNetlink(header, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("encoding netlink request: %w", err)
|
return fmt.Errorf("encoding netlink request: %w", err)
|
||||||
}
|
}
|
||||||
@@ -33,6 +31,5 @@ func (n *NetLink) FlushConntrack() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("querying netlink request: %w", err)
|
return fmt.Errorf("querying netlink request: %w", err)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user