tailcfg: pointerify RegisterRequest.Auth, omitemptify RegisterResponseAuth

We were storing server-side lots of:

    "Auth":{"Provider":"","LoginName":"","Oauth2Token":null,"AuthKey":""},

That was about 7% of our total storage of pending RegisterRequest
bodies.

Updates tailscale/corp#19327

Change-Id: Ib73842759a2b303ff5fe4c052a76baea0d68ae7d
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2024-04-20 10:04:04 -07:00
committed by Brad Fitzpatrick
parent 375617c5c8
commit 05bfa022f2
5 changed files with 20 additions and 12 deletions

View File

@@ -1069,10 +1069,13 @@ func (st SignatureType) String() string {
// in response to a RegisterRequest.
type RegisterResponseAuth struct {
_ structs.Incomparable
// One of Provider/LoginName, Oauth2Token, or AuthKey is set.
Provider, LoginName string
Oauth2Token *Oauth2Token
AuthKey string
Provider string `json:",omitempty"`
LoginName string `json:",omitempty"`
Oauth2Token *Oauth2Token `json:",omitempty"`
AuthKey string `json:",omitempty"`
}
// RegisterRequest is sent by a client to register the key for a node.
@@ -1093,7 +1096,7 @@ type RegisterRequest struct {
NodeKey key.NodePublic
OldNodeKey key.NodePublic
NLKey key.NLPublic
Auth RegisterResponseAuth
Auth *RegisterResponseAuth `json:",omitempty"`
// Expiry optionally specifies the requested key expiry.
// The server policy may override.
// As a special case, if Expiry is in the past and NodeKey is

View File

@@ -335,7 +335,7 @@ func (src *RegisterRequest) Clone() *RegisterRequest {
}
dst := new(RegisterRequest)
*dst = *src
dst.Auth = *src.Auth.Clone()
dst.Auth = src.Auth.Clone()
dst.Hostinfo = src.Hostinfo.Clone()
dst.NodeKeySignature = append(src.NodeKeySignature[:0:0], src.NodeKeySignature...)
if dst.Timestamp != nil {
@@ -353,7 +353,7 @@ var _RegisterRequestCloneNeedsRegeneration = RegisterRequest(struct {
NodeKey key.NodePublic
OldNodeKey key.NodePublic
NLKey key.NLPublic
Auth RegisterResponseAuth
Auth *RegisterResponseAuth
Expiry time.Time
Followup string
Hostinfo *Hostinfo

View File

@@ -803,7 +803,7 @@ var _RegisterRequestViewNeedsRegeneration = RegisterRequest(struct {
NodeKey key.NodePublic
OldNodeKey key.NodePublic
NLKey key.NLPublic
Auth RegisterResponseAuth
Auth *RegisterResponseAuth
Expiry time.Time
Followup string
Hostinfo *Hostinfo