Skip to content

Commit 9c1feb6

Browse files
Fixed error messages, add clearing before auto config
1 parent 82371c1 commit 9c1feb6

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

gohpts.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1147,6 +1147,18 @@ func (p *proxyapp) handler() http.HandlerFunc {
11471147
}
11481148

11491149
func (p *proxyapp) applyRedirectRules() string {
1150+
cmd0 := exec.Command("bash", "-c", `
1151+
set -ex
1152+
iptables -t nat -D PREROUTING -p tcp -j GOHPTS 2>/dev/null || true
1153+
iptables -t nat -D OUTPUT -p tcp -j GOHPTS 2>/dev/null || true
1154+
iptables -t nat -F GOHPTS 2>/dev/null || true
1155+
iptables -t nat -X GOHPTS 2>/dev/null || true
1156+
`)
1157+
cmd0.Stdout = os.Stdout
1158+
cmd0.Stderr = os.Stderr
1159+
if err := cmd0.Run(); err != nil {
1160+
p.logger.Fatal().Err(err).Msg("Failed while configuring iptables. Are you root?")
1161+
}
11501162
_, tproxyPort, _ := net.SplitHostPort(p.tproxyAddr)
11511163
cmd1 := exec.Command("bash", "-c", fmt.Sprintf(`
11521164
set -ex
@@ -1216,11 +1228,11 @@ func (p *proxyapp) applyRedirectRules() string {
12161228
func (p *proxyapp) clearRedirectRules(output string) error {
12171229
cmd := exec.Command("bash", "-c", fmt.Sprintf(`
12181230
set -ex
1219-
sysctl -w net.ipv4.ip_forward=%s || true
12201231
iptables -t nat -D PREROUTING -p tcp -j GOHPTS 2>/dev/null || true
12211232
iptables -t nat -D OUTPUT -p tcp -j GOHPTS 2>/dev/null || true
12221233
iptables -t nat -F GOHPTS 2>/dev/null || true
12231234
iptables -t nat -X GOHPTS 2>/dev/null || true
1235+
sysctl -w net.ipv4.ip_forward=%s
12241236
`, output))
12251237
cmd.Stdout = os.Stdout
12261238
cmd.Stderr = os.Stderr
@@ -1527,12 +1539,12 @@ func New(conf *Config) *proxyapp {
15271539
if tproxyonly {
15281540
p.tproxyAddr, err = getFullAddress(conf.TProxyOnly)
15291541
if err != nil {
1530-
p.logger.Fatal().Msg("")
1542+
p.logger.Fatal().Err(err).Msg("")
15311543
}
15321544
} else {
15331545
p.tproxyAddr, err = getFullAddress(conf.TProxy)
15341546
if err != nil {
1535-
p.logger.Fatal().Msg("")
1547+
p.logger.Fatal().Err(err).Msg("")
15361548
}
15371549
}
15381550
p.auto = conf.Auto
@@ -1556,7 +1568,7 @@ func New(conf *Config) *proxyapp {
15561568
}
15571569
addrHTTP, err = getFullAddress(sconf.Server.Address)
15581570
if err != nil {
1559-
p.logger.Fatal().Msg("")
1571+
p.logger.Fatal().Err(err).Msg("")
15601572
}
15611573
p.httpServerAddr = addrHTTP
15621574
certFile = expandPath(sconf.Server.CertFile)
@@ -1574,7 +1586,7 @@ func New(conf *Config) *proxyapp {
15741586
for idx, pr := range p.proxylist {
15751587
addr, err := getFullAddress(pr.Address)
15761588
if err != nil {
1577-
p.logger.Fatal().Msg("")
1589+
p.logger.Fatal().Err(err).Msg("")
15781590
}
15791591
if _, ok := seen[addr]; !ok {
15801592
seen[addr] = struct{}{}
@@ -1593,7 +1605,7 @@ func New(conf *Config) *proxyapp {
15931605
if !tproxyonly {
15941606
addrHTTP, err = getFullAddress(conf.AddrHTTP)
15951607
if err != nil {
1596-
p.logger.Fatal().Msg("")
1608+
p.logger.Fatal().Err(err).Msg("")
15971609
}
15981610
p.httpServerAddr = addrHTTP
15991611
certFile = expandPath(conf.CertFile)
@@ -1603,7 +1615,7 @@ func New(conf *Config) *proxyapp {
16031615
}
16041616
addrSOCKS, err = getFullAddress(conf.AddrSOCKS)
16051617
if err != nil {
1606-
p.logger.Fatal().Msg("")
1618+
p.logger.Fatal().Err(err).Msg("")
16071619
}
16081620
auth := proxy.Auth{
16091621
User: conf.User,

0 commit comments

Comments
 (0)