Skip to content

Commit

Permalink
Fix: routing-mark should effect on root
Browse files Browse the repository at this point in the history
  • Loading branch information
Dreamacro committed Feb 17, 2022
1 parent b1a639f commit a0221bf
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 10 deletions.
2 changes: 2 additions & 0 deletions component/dialer/dialer.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ func DialContext(ctx context.Context, network, address string, options ...Option
func ListenPacket(ctx context.Context, network, address string, options ...Option) (net.PacketConn, error) {
cfg := &option{
interfaceName: DefaultInterface.Load(),
routingMark: int(DefaultRoutingMark.Load()),
}

for _, o := range DefaultOptions {
Expand Down Expand Up @@ -69,6 +70,7 @@ func ListenPacket(ctx context.Context, network, address string, options ...Optio
func dialContext(ctx context.Context, network string, destination net.IP, port string, options []Option) (net.Conn, error) {
opt := &option{
interfaceName: DefaultInterface.Load(),
routingMark: int(DefaultRoutingMark.Load()),
}

for _, o := range DefaultOptions {
Expand Down
5 changes: 3 additions & 2 deletions component/dialer/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@ package dialer
import "go.uber.org/atomic"

var (
DefaultOptions []Option
DefaultInterface = atomic.NewString("")
DefaultOptions []Option
DefaultInterface = atomic.NewString("")
DefaultRoutingMark = atomic.NewInt32(0)
)

type option struct {
Expand Down
19 changes: 11 additions & 8 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,11 @@ import (
type General struct {
Inbound
Controller
Mode T.TunnelMode `json:"mode"`
LogLevel log.LogLevel `json:"log-level"`
IPv6 bool `json:"ipv6"`
Interface string `json:"-"`
Mode T.TunnelMode `json:"mode"`
LogLevel log.LogLevel `json:"log-level"`
IPv6 bool `json:"ipv6"`
Interface string `json:"-"`
RoutingMark int `json:"-"`
}

// Inbound
Expand Down Expand Up @@ -137,6 +138,7 @@ type RawConfig struct {
ExternalUI string `yaml:"external-ui"`
Secret string `yaml:"secret"`
Interface string `yaml:"interface-name"`
RoutingMark int `yaml:"routing-mark"`

ProxyProvider map[string]map[string]interface{} `yaml:"proxy-providers"`
Hosts map[string]string `yaml:"hosts"`
Expand Down Expand Up @@ -265,10 +267,11 @@ func parseGeneral(cfg *RawConfig) (*General, error) {
ExternalUI: cfg.ExternalUI,
Secret: cfg.Secret,
},
Mode: cfg.Mode,
LogLevel: cfg.LogLevel,
IPv6: cfg.IPv6,
Interface: cfg.Interface,
Mode: cfg.Mode,
LogLevel: cfg.LogLevel,
IPv6: cfg.IPv6,
Interface: cfg.Interface,
RoutingMark: cfg.RoutingMark,
}, nil
}

Expand Down
1 change: 1 addition & 0 deletions hub/executor/executor.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ func updateGeneral(general *config.General, force bool) {
resolver.DisableIPv6 = !general.IPv6

dialer.DefaultInterface.Store(general.Interface)
dialer.DefaultRoutingMark.Store(int32(general.RoutingMark))

iface.FlushCache()

Expand Down

0 comments on commit a0221bf

Please sign in to comment.