api/plugins/http_proxy/protocol_options.go
Peter Kurfer 108444e094 Add health API and basic CLI support
- remove plugin API due to incompatibility issues
- add Docker build to GitHub Actions
- add custom container friendly config file
2020-06-15 12:32:18 +02:00

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
}