wgengine/magicsock: fix panic in http debug server

Fixes an panic in `(*magicsock.Conn).ServeHTTPDebug` when the
`recentPongs` ring buffer for an endpoint wraps around.

Signed-off-by: Colin Adler <colin1adler@gmail.com>
pull/5566/head
Colin Adler 2 years ago committed by Brad Fitzpatrick
parent 9240f5c1e2
commit 9c8bbc7888

@ -172,6 +172,11 @@ func printEndpointHTML(w io.Writer, ep *endpoint) {
break
}
pos := (int(s.recentPong) - i) % len(s.recentPongs)
// If s.recentPongs wraps around pos will be negative, so start
// again from the end of the slice.
if pos < 0 {
pos += len(s.recentPongs)
}
pr := s.recentPongs[pos]
fmt.Fprintf(w, "<li>pong %v ago: in %v, from %v src %v</li>\n",
fmtMono(pr.pongAt), pr.latency.Round(time.Millisecond/10),

Loading…
Cancel
Save