You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
549 B
Go

7 years ago
package main
import (
"fmt"
"strings"
)
type forwardRules map[string]string
func (fr forwardRules) Get(uri string) string {
if fw, ok := fr[uri]; ok {
return fw
}
return ""
}
func (fr forwardRules) GetN(uri string, port int) string {
fw := fr.Get(uri)
if fw != "" {
return fw
}
if fw = fr.Get(fmt.Sprintf("*:%d", port)); fw != "" {
fw = strings.Replace(fw, "*", uri, 1)
return fw
}
return ""
}
type conf struct {
Timeout int
Listen []int
Default string
ForwardRules forwardRules `yaml:"forward_rules"`
}