Skip to content
Snippets Groups Projects
Commit 4d785c8d authored by Eric Stoekl's avatar Eric Stoekl Committed by Alex Ellis
Browse files

Remove Content-Type forwarding from Request


Signed-off-by: default avatarEric Stoekl <ems5311@gmail.com>
parent d279b7b3
No related branches found
No related tags found
No related merge requests found
......@@ -160,10 +160,6 @@ func invokeService(w http.ResponseWriter, r *http.Request, metrics metrics.Metri
clientHeader := w.Header()
copyHeaders(&clientHeader, &response.Header)
defaultHeader := "text/plain"
w.Header().Set("Content-Type", GetContentType(response.Header, r.Header, defaultHeader))
writeHead(service, metrics, response.StatusCode, w)
if response.Body != nil {
......@@ -171,23 +167,6 @@ func invokeService(w http.ResponseWriter, r *http.Request, metrics metrics.Metri
}
}
// GetContentType resolves the correct Content-Tyoe for a proxied function
func GetContentType(request http.Header, proxyResponse http.Header, defaultValue string) string {
responseHeader := proxyResponse.Get("Content-Type")
requestHeader := request.Get("Content-Type")
var headerContentType string
if len(responseHeader) > 0 {
headerContentType = responseHeader
} else if len(requestHeader) > 0 {
headerContentType = requestHeader
} else {
headerContentType = defaultValue
}
return headerContentType
}
func copyHeaders(destination *http.Header, source *http.Header) {
for k, v := range *source {
vClone := make([]string, len(v))
......
package tests
import (
"net/http"
"testing"
"github.com/openfaas/faas/gateway/handlers"
)
func Test_GetContentType_UsesResponseValue(t *testing.T) {
request := http.Header{}
request.Add("Content-Type", "text/plain")
response := http.Header{}
response.Add("Content-Type", "text/html")
contentType := handlers.GetContentType(request, response, "default")
if contentType != response.Get("Content-Type") {
t.Errorf("Got: %s, want: %s", contentType, response.Get("Content-Type"))
}
}
func Test_GetContentType_UsesRequest_WhenResponseEmpty(t *testing.T) {
request := http.Header{}
request.Add("Content-Type", "text/plain")
response := http.Header{}
response.Add("Content-Type", "")
contentType := handlers.GetContentType(request, response, "default")
if contentType != request.Get("Content-Type") {
t.Errorf("Got: %s, want: %s", contentType, request.Get("Content-Type"))
}
}
func Test_GetContentType_UsesDefaultWhenRequestResponseEmpty(t *testing.T) {
request := http.Header{}
request.Add("Content-Type", "")
response := http.Header{}
response.Add("Content-Type", "")
contentType := handlers.GetContentType(request, response, "default")
if contentType != "default" {
t.Errorf("Got: %s, want: %s", contentType, "default")
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment