Merge branch 'master' into kd-live
This commit is contained in:
48
server.go
48
server.go
@ -536,3 +536,51 @@ func MakeRPCError() *RpcReturnError {
|
||||
h: nil,
|
||||
}
|
||||
}
|
||||
|
||||
type indirectBody struct {
|
||||
inner io.ReadCloser
|
||||
dump []byte
|
||||
closer func()
|
||||
}
|
||||
|
||||
func (ib *indirectBody) Read(p []byte) (n int, err error) {
|
||||
n, err = ib.inner.Read(p)
|
||||
if n > 0 {
|
||||
ib.dump = append(ib.dump, p...)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (ib *indirectBody) Close() error {
|
||||
if ib.closer != nil {
|
||||
ib.closer()
|
||||
ib.closer = nil
|
||||
}
|
||||
return ib.inner.Close()
|
||||
}
|
||||
|
||||
func MakeHttpRequestForLogging(r *http.Request) *http.Request {
|
||||
ib := &indirectBody{
|
||||
inner: r.Body,
|
||||
}
|
||||
|
||||
closer := func() {
|
||||
var uv url.Values
|
||||
|
||||
if r.Form != nil {
|
||||
uv = r.Form
|
||||
} else {
|
||||
uv = r.URL.Query()
|
||||
}
|
||||
|
||||
logger.Println("request :")
|
||||
logger.Println(" header :", r.Header)
|
||||
logger.Println(" values :", uv)
|
||||
logger.Println(" body :", string(ib.dump))
|
||||
}
|
||||
|
||||
ib.closer = closer
|
||||
|
||||
r.Body = ib
|
||||
return r
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user