MCPcopy Create free account
hub / github.com/zalando/skipper / NewRoundTripper

Function NewRoundTripper

proxy/fastcgi/fastcgi.go:23–53  ·  view source on GitHub ↗
(log logging.Logger, addr, filename string)

Source from the content-addressed store, hash-verified

21}
22
23func NewRoundTripper(log logging.Logger, addr, filename string) (*RoundTripper, error) {
24 connFactory := gofast.SimpleConnFactory("tcp", addr)
25
26 client, err := gofast.SimpleClientFactory(connFactory)()
27 if err != nil {
28 return nil, fmt.Errorf("gofast: failed creating client: %w", err)
29 }
30
31 chain := gofast.Chain(
32 gofast.BasicParamsMap,
33 gofast.MapHeader,
34 gofast.MapEndpoint(filename),
35 func(handler gofast.SessionHandler) gofast.SessionHandler {
36 return func(client gofast.Client, req *gofast.Request) (*gofast.ResponsePipe, error) {
37 req.Params["HTTP_HOST"] = req.Params["SERVER_NAME"]
38 req.Params["SERVER_SOFTWARE"] = "Skipper"
39
40 // Gofast sets this param to `fastcgi` which is not what the backend will expect.
41 delete(req.Params, "REQUEST_SCHEME")
42
43 return handler(client, req)
44 }
45 },
46 )
47
48 return &RoundTripper{
49 log: log,
50 client: client,
51 handler: chain(gofast.BasicSession),
52 }, nil
53}
54
55func (rt *RoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
56 defer func() {

Callers 2

getRoundTripperMethod · 0.92
TestFastCgiFunction · 0.85

Calls 1

ErrorfMethod · 0.65

Tested by 1

TestFastCgiFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…