Peter Kurfer
108444e094
- remove plugin API due to incompatibility issues - add Docker build to GitHub Actions - add custom container friendly config file
42 lines
933 B
Go
42 lines
933 B
Go
package http_proxy
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
const (
|
|
targetSchemeConfigKey = "target.scheme"
|
|
targetIpAddressConfigKey = "target.ipAddress"
|
|
targetPortConfigKey = "target.port"
|
|
)
|
|
|
|
type redirectionTarget struct {
|
|
scheme string
|
|
ipAddress string
|
|
port uint16
|
|
}
|
|
|
|
func (rt redirectionTarget) host() string {
|
|
return fmt.Sprintf("%s:%d", rt.ipAddress, rt.port)
|
|
}
|
|
|
|
type httpProxyOptions struct {
|
|
redirectionTarget redirectionTarget
|
|
}
|
|
|
|
func loadFromConfig(config *viper.Viper) (options httpProxyOptions) {
|
|
|
|
config.SetDefault(targetSchemeConfigKey, "http")
|
|
config.SetDefault(targetIpAddressConfigKey, "127.0.0.1")
|
|
config.SetDefault(targetPortConfigKey, "80")
|
|
|
|
options = httpProxyOptions{
|
|
redirectionTarget{
|
|
scheme: config.GetString(targetSchemeConfigKey),
|
|
ipAddress: config.GetString(targetIpAddressConfigKey),
|
|
port: uint16(config.GetInt(targetPortConfigKey)),
|
|
},
|
|
}
|
|
return
|
|
}
|