34 lines
935 B
Go
34 lines
935 B
Go
|
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)
|
||
|
}
|