Skip to content

Commit 05c580e

Browse files
committed
Merge pull request #27 from joeshaw/extend-request-id
if X-Request-Id is set in request, append it to new ID
2 parents 2f96e5a + 4300190 commit 05c580e

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

http.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,12 @@ func NewHostRouter(httpServer *http.Server) *HostRouter {
4646
}
4747

4848
func (r *HostRouter) ServeHTTP(w http.ResponseWriter, req *http.Request) {
49-
reqId := genId()
49+
reqId := req.Header.Get("X-Request-Id")
50+
if reqId == "" {
51+
reqId = genId()
52+
} else {
53+
reqId = genId() + "." + reqId
54+
}
5055
req.Header.Set("X-Request-Id", reqId)
5156
w.Header().Add("X-Request-Id", reqId)
5257

server_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ func checkHTTP(url, host, expected string, status int, c Tester) {
229229
}
230230

231231
req.Host = host
232+
req.Header.Set("X-Request-Id", "foo")
232233

233234
// Load our test certs as our RootCAs, so we can verify that we connect
234235
// with the correct Cert in an HTTPSRouter
@@ -266,6 +267,9 @@ func checkHTTP(url, host, expected string, status int, c Tester) {
266267
c.Fatal(err)
267268
}
268269

270+
reqID := resp.Header.Get("X-Request-Id")
271+
c.Assert(reqID[len(reqID)-4:], Equals, ".foo")
272+
269273
c.Assert(resp.StatusCode, Equals, status)
270274

271275
if resp.StatusCode == http.StatusOK {

0 commit comments

Comments
 (0)