Skip to content

Commit d156e1a

Browse files
committed
Re-add support for firewall-bin-path, firewall-save-bin-path
1 parent 03a7172 commit d156e1a

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

proxy-init/cmd/root.go

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package cmd
22

33
import (
4-
"errors"
54
"fmt"
65
"net"
76
"os/exec"
@@ -45,12 +44,10 @@ type RootOptions struct {
4544
TimeoutCloseWaitSecs int
4645
LogFormat string
4746
LogLevel string
47+
FirewallBinPath string
48+
FirewallSaveBinPath string
4849
IPTablesMode string
4950
IPv6 bool
50-
51-
// No longer supported
52-
FirewallBinPath string
53-
FirewallSaveBinPath string
5451
}
5552

5653
func newRootOptions() *RootOptions {
@@ -68,7 +65,9 @@ func newRootOptions() *RootOptions {
6865
TimeoutCloseWaitSecs: 0,
6966
LogFormat: "plain",
7067
LogLevel: "info",
71-
IPTablesMode: IPTablesModeLegacy,
68+
FirewallBinPath: "",
69+
FirewallSaveBinPath: "",
70+
IPTablesMode: "",
7271
IPv6: true,
7372
}
7473
}
@@ -145,29 +144,30 @@ func NewRootCmd() *cobra.Command {
145144
cmd.PersistentFlags().IntVar(&options.TimeoutCloseWaitSecs, "timeout-close-wait-secs", options.TimeoutCloseWaitSecs, "Sets nf_conntrack_tcp_timeout_close_wait")
146145
cmd.PersistentFlags().StringVar(&options.LogFormat, "log-format", options.LogFormat, "Configure log format ('plain' or 'json')")
147146
cmd.PersistentFlags().StringVar(&options.LogLevel, "log-level", options.LogLevel, "Configure log level")
148-
cmd.PersistentFlags().StringVar(&options.IPTablesMode, "iptables-mode", options.IPTablesMode, "Variant of iptables command to use (\"legacy\" or \"nft\")")
147+
cmd.PersistentFlags().StringVar(&options.IPTablesMode, "iptables-mode", options.IPTablesMode, "Variant of iptables command to use (\"legacy\" or \"nft\"); overrides --firewall-bin-path and --firewall-save-bin-path")
149148
cmd.PersistentFlags().BoolVar(&options.IPv6, "ipv6", options.IPv6, "Set rules both via iptables and ip6tables to support dual-stack networking")
149+
150+
// these two flags are kept for backwards-compatibility, but --iptables-mode is preferred
150151
cmd.PersistentFlags().StringVar(&options.FirewallBinPath, "firewall-bin-path", options.FirewallBinPath, "Path to iptables binary")
151152
cmd.PersistentFlags().StringVar(&options.FirewallSaveBinPath, "firewall-save-bin-path", options.FirewallSaveBinPath, "Path to iptables-save binary")
152-
153-
if err := cmd.PersistentFlags().MarkHidden("firewall-bin-path"); err != nil {
154-
log.Fatal(err)
155-
}
156-
if err := cmd.PersistentFlags().MarkHidden("firewall-save-bin-path"); err != nil {
157-
log.Fatal(err)
158-
}
159-
160153
return cmd
161154
}
162155

163156
// BuildFirewallConfiguration returns an iptables FirewallConfiguration suitable to use to configure iptables.
164157
func BuildFirewallConfiguration(options *RootOptions) (*iptables.FirewallConfiguration, error) {
165-
if options.FirewallBinPath != "" || options.FirewallSaveBinPath != "" {
166-
return nil, errors.New("--firewal-bin-path and firewall-save-bin-path are no longer supported; please use --iptables-mode instead")
158+
if options.IPTablesMode != "" && options.IPTablesMode != IPTablesModeLegacy && options.IPTablesMode != IPTablesModeNFT {
159+
return nil, fmt.Errorf("--iptables-mode valid values are only \"%s\" and \"%s\"", IPTablesModeLegacy, IPTablesModeNFT)
167160
}
168161

169-
if options.IPTablesMode != IPTablesModeLegacy && options.IPTablesMode != IPTablesModeNFT {
170-
return nil, errors.New("--iptables-mode valid values are only \"legacy\" and \"nft\"")
162+
if options.IPTablesMode == "" {
163+
switch options.FirewallBinPath {
164+
case "", cmdLegacy:
165+
options.IPTablesMode = IPTablesModeLegacy
166+
case cmdNFT:
167+
options.IPTablesMode = IPTablesModeNFT
168+
default:
169+
return nil, fmt.Errorf("--firewall-bin-path valid values are only \"%s\" and \"%s\"", cmdLegacy, cmdNFT)
170+
}
171171
}
172172

173173
if !util.IsValidPort(options.IncomingProxyPort) {

0 commit comments

Comments
 (0)