TUN-3467: Serialize cf-cloudflared-response-meta during package initialization using jsoniter

This commit is contained in:
cthuang
2020-10-16 11:13:48 +01:00
parent 9ac40dcf04
commit 6886e5f90a
148 changed files with 11896 additions and 2555 deletions

33
connection/header.go Normal file
View File

@@ -0,0 +1,33 @@
package connection
import (
"fmt"
"net/http"
"github.com/cloudflare/cloudflared/h2mux"
)
const (
responseMetaHeaderField = "cf-cloudflared-response-meta"
responseSourceCloudflared = "cloudflared"
responseSourceOrigin = "origin"
)
var (
canonicalResponseUserHeadersField = http.CanonicalHeaderKey(h2mux.ResponseUserHeadersField)
canonicalResponseMetaHeaderField = http.CanonicalHeaderKey(responseMetaHeaderField)
responseMetaHeaderCfd = mustInitRespMetaHeader(responseSourceCloudflared)
responseMetaHeaderOrigin = mustInitRespMetaHeader(responseSourceOrigin)
)
type responseMetaHeader struct {
Source string `json:"src"`
}
func mustInitRespMetaHeader(src string) string {
header, err := json.Marshal(responseMetaHeader{Source: src})
if err != nil {
panic(fmt.Sprintf("Failed to serialize response meta header = %s, err: %v", responseSourceCloudflared, err))
}
return string(header)
}