Skip to content

Commit f5b4972

Browse files
Added proxies from yaml config to auto redirect configuration
1 parent 1d3469f commit f5b4972

File tree

1 file changed

+28
-14
lines changed

1 file changed

+28
-14
lines changed

gohpts.go

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1181,19 +1181,33 @@ func (p *proxyapp) applyRedirectRules() string {
11811181
if err := cmd1.Run(); err != nil {
11821182
p.logger.Fatal().Err(err).Msg("Failed while configuring iptables. Are you root?")
11831183
}
1184+
if len(p.proxylist) > 0 {
1185+
for _, pr := range p.proxylist {
1186+
_, port, _ := net.SplitHostPort(pr.Address)
1187+
cmd2 := exec.Command("bash", "-c", fmt.Sprintf(`
1188+
set -ex
1189+
iptables -t nat -A GOHPTS -p tcp --dport %s -j RETURN
1190+
`, port))
1191+
cmd2.Stdout = os.Stdout
1192+
cmd2.Stderr = os.Stderr
1193+
if err := cmd2.Run(); err != nil {
1194+
p.logger.Fatal().Err(err).Msg("Failed while configuring iptables. Are you root?")
1195+
}
1196+
}
1197+
}
11841198
if p.httpServerAddr != "" {
11851199
_, httpPort, _ := net.SplitHostPort(p.httpServerAddr)
1186-
cmd2 := exec.Command("bash", "-c", fmt.Sprintf(`
1200+
cmd3 := exec.Command("bash", "-c", fmt.Sprintf(`
11871201
set -ex
11881202
iptables -t nat -A GOHPTS -p tcp --dport %s -j RETURN
11891203
`, httpPort))
1190-
cmd2.Stdout = os.Stdout
1191-
cmd2.Stderr = os.Stderr
1192-
if err := cmd2.Run(); err != nil {
1204+
cmd3.Stdout = os.Stdout
1205+
cmd3.Stderr = os.Stderr
1206+
if err := cmd3.Run(); err != nil {
11931207
p.logger.Fatal().Err(err).Msg("Failed while configuring iptables. Are you root?")
11941208
}
11951209
}
1196-
cmd3 := exec.Command("bash", "-c", fmt.Sprintf(`
1210+
cmd4 := exec.Command("bash", "-c", fmt.Sprintf(`
11971211
set -ex
11981212
if command -v docker >/dev/null 2>&1
11991213
then
@@ -1210,25 +1224,25 @@ func (p *proxyapp) applyRedirectRules() string {
12101224
iptables -t nat -C OUTPUT -p tcp -j GOHPTS 2>/dev/null || \
12111225
iptables -t nat -A OUTPUT -p tcp -j GOHPTS
12121226
`, tproxyPort))
1213-
cmd3.Stdout = os.Stdout
1214-
cmd3.Stderr = os.Stderr
1215-
if err := cmd3.Run(); err != nil {
1227+
cmd4.Stdout = os.Stdout
1228+
cmd4.Stderr = os.Stderr
1229+
if err := cmd4.Run(); err != nil {
12161230
p.logger.Fatal().Err(err).Msg("Failed while configuring iptables. Are you root?")
12171231
}
1218-
cmd4 := exec.Command("bash", "-c", `
1232+
cmd5 := exec.Command("bash", "-c", `
12191233
cat /proc/sys/net/ipv4/ip_forward
12201234
`)
1221-
output, err := cmd4.CombinedOutput()
1235+
output, err := cmd5.CombinedOutput()
12221236
if err != nil {
12231237
p.logger.Fatal().Err(err).Msg("Failed while configuring iptables. Are you root?")
12241238
}
1225-
cmd5 := exec.Command("bash", "-c", `
1239+
cmd6 := exec.Command("bash", "-c", `
12261240
set -ex
12271241
sysctl -w net.ipv4.ip_forward=1
12281242
`)
1229-
cmd5.Stdout = os.Stdout
1230-
cmd5.Stderr = os.Stderr
1231-
_ = cmd5.Run()
1243+
cmd6.Stdout = os.Stdout
1244+
cmd6.Stderr = os.Stderr
1245+
_ = cmd6.Run()
12321246
return string(output)
12331247
}
12341248

0 commit comments

Comments
 (0)