From 5d5644f8781485e871f2c22932f79dabf605ca03 Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Mon, 6 Jul 2020 15:55:17 +0300 Subject: [PATCH] pass request context from request rpc endpoints (#1799) http middleware can add additional metadata to context, for example tracing wrappers, pass down it to underlining services Signed-off-by: Vasiliy Tolstov --- rpc.go | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/rpc.go b/rpc.go index 7e8790c..fb32637 100644 --- a/rpc.go +++ b/rpc.go @@ -5,7 +5,6 @@ import ( "encoding/json" "io" "net/http" - "net/textproto" "strconv" "strings" @@ -104,30 +103,11 @@ func (h *rpcHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { // create context cx := ctx.FromRequest(r) - // get context from http handler wrappers - md, ok := metadata.FromContext(r.Context()) - if !ok { - md = make(metadata.Metadata) - } - // fill contex with http headers - md["Host"] = r.Host - md["Method"] = r.Method - // get canonical headers - for k, _ := range r.Header { - // may be need to get all values for key like r.Header.Values() provide in go 1.14 - md[textproto.CanonicalMIMEHeaderKey(k)] = r.Header.Get(k) - } - - // merge context with overwrite - cx = metadata.MergeContext(cx, md, true) // set merged context to request *r = *r.Clone(cx) // if stream we currently only support json if isStream(r, service) { - // drop older context as it can have timeouts and create new - // md, _ := metadata.FromContext(cx) - //serveWebsocket(context.TODO(), w, r, service, c) serveWebsocket(cx, w, r, service, c) return }