mirror of
https://github.com/tailscale/tailscale.git
synced 2025-04-19 13:11:41 +00:00
net/portmapper: fix invalid UPnP metric name
Fixes #9551 Signed-off-by: Andrew Dunham <andrew@du.nham.ca> Change-Id: I06f3a15a668be621675be6cbc7e5bdcc006e8570
This commit is contained in:
parent
3e298e9380
commit
d31460f793
@ -1040,7 +1040,16 @@ func getUPnPErrorsMetric(code int) *clientmetric.Metric {
|
|||||||
return mm
|
return mm
|
||||||
}
|
}
|
||||||
|
|
||||||
mm = clientmetric.NewCounter(fmt.Sprintf("portmap_upnp_errors_with_code_%d", code))
|
// Metric names cannot contain a hyphen, so we handle negative numbers
|
||||||
|
// by prefixing the name with a "minus_".
|
||||||
|
var codeStr string
|
||||||
|
if code < 0 {
|
||||||
|
codeStr = fmt.Sprintf("portmap_upnp_errors_with_code_minus_%d", -code)
|
||||||
|
} else {
|
||||||
|
codeStr = fmt.Sprintf("portmap_upnp_errors_with_code_%d", code)
|
||||||
|
}
|
||||||
|
|
||||||
|
mm = clientmetric.NewCounter(codeStr)
|
||||||
mak.Set(&metricUPnPErrorsByCode, code, mm)
|
mak.Set(&metricUPnPErrorsByCode, code, mm)
|
||||||
return mm
|
return mm
|
||||||
}
|
}
|
||||||
|
@ -124,3 +124,14 @@ func TestPCPIntegration(t *testing.T) {
|
|||||||
t.Errorf("got nil mapping after successful createOrGetMapping")
|
t.Errorf("got nil mapping after successful createOrGetMapping")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Test to ensure that metric names generated by this function do not contain
|
||||||
|
// invalid characters.
|
||||||
|
//
|
||||||
|
// See https://github.com/tailscale/tailscale/issues/9551
|
||||||
|
func TestGetUPnPErrorsMetric(t *testing.T) {
|
||||||
|
// This will panic if the metric name is invalid.
|
||||||
|
getUPnPErrorsMetric(100)
|
||||||
|
getUPnPErrorsMetric(0)
|
||||||
|
getUPnPErrorsMetric(-100)
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user