From dc37d131be64b2f7ada0cb5221d2b1dce4037b58 Mon Sep 17 00:00:00 2001 From: Alex Ellis Date: Wed, 13 Dec 2017 14:14:55 +0000 Subject: [PATCH] Don't override X-Call-Id if it already exists in header Signed-off-by: Alex Ellis --- gateway/handlers/callid_middleware.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gateway/handlers/callid_middleware.go b/gateway/handlers/callid_middleware.go index 123148c6..666575cb 100644 --- a/gateway/handlers/callid_middleware.go +++ b/gateway/handlers/callid_middleware.go @@ -12,9 +12,11 @@ import ( func MakeCallIDMiddleware(next http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { start := time.Now() - callID := uuid.Generate().String() - r.Header.Add("X-Call-Id", callID) - w.Header().Add("X-Call-Id", callID) + if len(r.Header.Get("X-Call-Id")) == 0 { + callID := uuid.Generate().String() + r.Header.Add("X-Call-Id", callID) + w.Header().Add("X-Call-Id", callID) + } r.Header.Add("X-Start-Time", fmt.Sprintf("%d", start.UTC().UnixNano())) w.Header().Add("X-Start-Time", fmt.Sprintf("%d", start.UTC().UnixNano()))