|
|
@ -18,6 +18,7 @@ import (
|
|
|
|
"net/netip"
|
|
|
|
"net/netip"
|
|
|
|
"os"
|
|
|
|
"os"
|
|
|
|
"regexp"
|
|
|
|
"regexp"
|
|
|
|
|
|
|
|
"runtime"
|
|
|
|
"strconv"
|
|
|
|
"strconv"
|
|
|
|
"sync"
|
|
|
|
"sync"
|
|
|
|
"sync/atomic"
|
|
|
|
"sync/atomic"
|
|
|
@ -491,6 +492,19 @@ func (l *Logger) upload(ctx context.Context, body []byte, origlen int) (retryAft
|
|
|
|
req.Header.Add("Content-Encoding", "zstd")
|
|
|
|
req.Header.Add("Content-Encoding", "zstd")
|
|
|
|
req.Header.Add("Orig-Content-Length", strconv.Itoa(origlen))
|
|
|
|
req.Header.Add("Orig-Content-Length", strconv.Itoa(origlen))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if runtime.GOOS == "js" {
|
|
|
|
|
|
|
|
// We once advertised we'd accept optional client certs (for internal use)
|
|
|
|
|
|
|
|
// on log.tailscale.io but then Tailscale SSH js/wasm clients prompted
|
|
|
|
|
|
|
|
// users (on some browsers?) to pick a client cert. We'll fix the server's
|
|
|
|
|
|
|
|
// TLS ServerHello, but we can also fix it client side for good measure.
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// Corp details: https://github.com/tailscale/corp/issues/18177#issuecomment-2026598715
|
|
|
|
|
|
|
|
// and https://github.com/tailscale/corp/pull/18775#issuecomment-2027505036
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// See https://github.com/golang/go/wiki/WebAssembly#configuring-fetch-options-while-using-nethttp
|
|
|
|
|
|
|
|
// and https://developer.mozilla.org/en-US/docs/Web/API/fetch#credentials
|
|
|
|
|
|
|
|
req.Header.Set("js.fetch:credentials", "omit")
|
|
|
|
|
|
|
|
}
|
|
|
|
req.Header["User-Agent"] = nil // not worth writing one; save some bytes
|
|
|
|
req.Header["User-Agent"] = nil // not worth writing one; save some bytes
|
|
|
|
|
|
|
|
|
|
|
|
compressedNote := "not-compressed"
|
|
|
|
compressedNote := "not-compressed"
|
|
|
|