Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3dcb86b537 |
No files matched your search
@@ -466,6 +466,9 @@ var (
|
|||||||
errNotLAPIURL = errors.New(
|
errNotLAPIURL = errors.New(
|
||||||
"is not an http or https URL without a user or a fragment, " +
|
"is not an http or https URL without a user or a fragment, " +
|
||||||
"such as http://172.17.0.1:8080")
|
"such as http://172.17.0.1:8080")
|
||||||
|
errNotRouteWatchURL = errors.New(
|
||||||
|
"is not an http or https URL without a user or a fragment, " +
|
||||||
|
"such as https://routewatch.example")
|
||||||
errNeedsLAPIKey = errors.New("the engine answers no request without it")
|
errNeedsLAPIKey = errors.New("the engine answers no request without it")
|
||||||
errLAPIKeyUnused = errors.New("it is sent only to the engine at that URL")
|
errLAPIKeyUnused = errors.New("it is sent only to the engine at that URL")
|
||||||
errAnotherList = errors.New(
|
errAnotherList = errors.New(
|
||||||
@@ -531,7 +534,7 @@ func FromEnvironment(
|
|||||||
TagLists: env.tagLists("SWW_TAG_LISTS"),
|
TagLists: env.tagLists("SWW_TAG_LISTS"),
|
||||||
TagDeny: env.tags("SWW_TAG_DENY"),
|
TagDeny: env.tags("SWW_TAG_DENY"),
|
||||||
TagLimitPercent: env.tagPercents("SWW_TAG_LIMIT_PERCENT"),
|
TagLimitPercent: env.tagPercents("SWW_TAG_LIMIT_PERCENT"),
|
||||||
RouteWatchURL: env.listURL("SWW_ROUTEWATCH_URL"),
|
RouteWatchURL: env.routeWatchURL("SWW_ROUTEWATCH_URL"),
|
||||||
ASNBytesPercent: env.percents("SWW_ASN_BYTES_PERCENT", ParseASN),
|
ASNBytesPercent: env.percents("SWW_ASN_BYTES_PERCENT", ParseASN),
|
||||||
CountryBytesPercent: env.percents("SWW_COUNTRY_BYTES_PERCENT", parseCountry),
|
CountryBytesPercent: env.percents("SWW_COUNTRY_BYTES_PERCENT", parseCountry),
|
||||||
UnknownLimitPercent: env.percent("SWW_UNKNOWN_LIMIT_PERCENT", "100"),
|
UnknownLimitPercent: env.percent("SWW_UNKNOWN_LIMIT_PERCENT", "100"),
|
||||||
@@ -1027,6 +1030,22 @@ func (e *environment) crowdSecDecisionsURL(name string) string {
|
|||||||
return lapi.JoinPath("v1", "decisions").String()
|
return lapi.JoinPath("v1", "decisions").String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// routeWatchURL reads the setting that is the URL of a routewatch instance,
|
||||||
|
// "" while it is unset or empty.
|
||||||
|
func (e *environment) routeWatchURL(name string) string {
|
||||||
|
value := e.value(name, "")
|
||||||
|
if value == "" {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
instance, err := url.Parse(value)
|
||||||
|
if err != nil || !isHTTPURL(instance) {
|
||||||
|
e.check(name, fmt.Errorf("%q %w", value, errNotRouteWatchURL))
|
||||||
|
}
|
||||||
|
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
|
||||||
// lookupSource reads the setting that is where clients are looked up:
|
// lookupSource reads the setting that is where clients are looked up:
|
||||||
// geojs, file, or off.
|
// geojs, file, or off.
|
||||||
func (e *environment) lookupSource(name, defaultValue string) string {
|
func (e *environment) lookupSource(name, defaultValue string) string {
|
||||||
|
|||||||
@@ -1450,6 +1450,15 @@ func TestRouteWatchURLAndPrefixTags(t *testing.T) {
|
|||||||
t.Errorf("%v gave the error %v, want one naming %s", stopped.env, err, stopped.name)
|
t.Errorf("%v gave the error %v, want one naming %s", stopped.env, err, stopped.name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
badURL := environment{routeWatchURL: "ftp://routewatch.example"}
|
||||||
|
_, err := config.FromEnvironment(badURL.lookupEnv)
|
||||||
|
|
||||||
|
want := routeWatchURL + `: "ftp://routewatch.example" is not an http or https URL ` +
|
||||||
|
"without a user or a fragment, such as https://routewatch.example"
|
||||||
|
if err == nil || err.Error() != want {
|
||||||
|
t.Errorf("error %v, want %s", err, want)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestTagThatNoRequestCanGetIsToldApartFromOneItCan(t *testing.T) {
|
func TestTagThatNoRequestCanGetIsToldApartFromOneItCan(t *testing.T) {
|
||||||
|
|||||||
Reference in new issue
Block a user