mirror of
https://github.com/qdm12/gluetun.git
synced 2026-08-11 14:52:56 +02:00
more fixes
This commit is contained in:
@@ -1,2 +1,3 @@
|
|||||||
FROM ghcr.io/qdm12/godevcontainer:v0.21-alpine
|
FROM ghcr.io/qdm12/godevcontainer:v0.22-alpine
|
||||||
RUN apk add wireguard-tools htop openssl tcpdump iptables nftables
|
RUN apk add wireguard-tools htop openssl tcpdump iptables nftables
|
||||||
|
RUN apk add nodejs npm && npm install markdownlint-cli2 --global && apk del npm
|
||||||
@@ -83,7 +83,7 @@ func (f *Firewall) overrideWith(other Firewall) {
|
|||||||
|
|
||||||
func (f *Firewall) setDefaults(globalLogLevel string) {
|
func (f *Firewall) setDefaults(globalLogLevel string) {
|
||||||
f.Enabled = gosettings.DefaultPointer(f.Enabled, true)
|
f.Enabled = gosettings.DefaultPointer(f.Enabled, true)
|
||||||
f.Implementation = gosettings.DefaultComparable(f.Implementation, "iptables")
|
f.Implementation = gosettings.DefaultComparable(f.Implementation, "auto")
|
||||||
f.Iptables.setDefaults(globalLogLevel)
|
f.Iptables.setDefaults(globalLogLevel)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ func Test_Settings_String(t *testing.T) {
|
|||||||
| └── Block ads: no
|
| └── Block ads: no
|
||||||
├── Firewall settings:
|
├── Firewall settings:
|
||||||
| ├── Enabled: yes
|
| ├── Enabled: yes
|
||||||
| ├── Implementation: iptables
|
| ├── Implementation: auto
|
||||||
| └── Iptables settings:
|
| └── Iptables settings:
|
||||||
| └── Log level: INFO
|
| └── Log level: INFO
|
||||||
├── Log settings:
|
├── Log settings:
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ package iptables
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/qdm12/gluetun/internal/mod"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
@@ -15,8 +13,6 @@ type Config struct {
|
|||||||
// Fixed state
|
// Fixed state
|
||||||
ipTables string
|
ipTables string
|
||||||
ip6Tables string
|
ip6Tables string
|
||||||
nftables bool
|
|
||||||
xtMark bool
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(ctx context.Context, runner CmdRunner, logger Logger) (*Config, error) {
|
func New(ctx context.Context, runner CmdRunner, logger Logger) (*Config, error) {
|
||||||
@@ -30,21 +26,10 @@ func New(ctx context.Context, runner CmdRunner, logger Logger) (*Config, error)
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
modules := map[string]bool{
|
|
||||||
"xt_mark": false,
|
|
||||||
"nf_tables": false,
|
|
||||||
}
|
|
||||||
for module := range modules {
|
|
||||||
err := mod.Probe(module)
|
|
||||||
modules[module] = err == nil
|
|
||||||
}
|
|
||||||
|
|
||||||
return &Config{
|
return &Config{
|
||||||
runner: runner,
|
runner: runner,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
ipTables: iptables,
|
ipTables: iptables,
|
||||||
ip6Tables: ip6tables,
|
ip6Tables: ip6tables,
|
||||||
nftables: modules["nf_tables"],
|
|
||||||
xtMark: modules["xt_mark"],
|
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/netip"
|
"net/netip"
|
||||||
|
"os"
|
||||||
)
|
)
|
||||||
|
|
||||||
type tcpFlags struct {
|
type tcpFlags struct {
|
||||||
@@ -71,7 +72,8 @@ func (c *Config) TempDropOutputTCPRST(ctx context.Context,
|
|||||||
src, dst netip.AddrPort, excludeMark int) (
|
src, dst netip.AddrPort, excludeMark int) (
|
||||||
revert func(ctx context.Context) error, err error,
|
revert func(ctx context.Context) error, err error,
|
||||||
) {
|
) {
|
||||||
if !c.nftables && !c.xtMark {
|
_, err = os.Stat("/usr/lib/xtables/libxt_mark.so")
|
||||||
|
if err != nil && errors.Is(err, os.ErrNotExist) {
|
||||||
return nil, fmt.Errorf("%w", ErrMarkMatchModuleMissing)
|
return nil, fmt.Errorf("%w", ErrMarkMatchModuleMissing)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user