1
0
mirror of https://github.com/kataras/iris.git synced 2026-01-04 18:57:03 +00:00
Former-commit-id: 8a8a25ab8fb33a342c8d05fc7eae7cafd5bb02b2
This commit is contained in:
Gerasimos (Makis) Maropoulos
2017-03-13 01:40:57 +02:00
parent 5667bfb9f0
commit d76d9b1ec6
10 changed files with 1017 additions and 71 deletions

View File

@@ -18,15 +18,14 @@ func acquireResponseRecorder(underline *responseWriter) *ResponseRecorder {
w := rrpool.Get().(*ResponseRecorder)
w.responseWriter = underline
w.headers = underline.Header()
w.ResetBody()
return w
}
func releaseResponseRecorder(w *ResponseRecorder) {
w.ResetBody()
if w.responseWriter != nil {
releaseResponseWriter(w.responseWriter)
}
rrpool.Put(w)
}
@@ -124,9 +123,18 @@ func (w *ResponseRecorder) ResetHeaders() {
w.headers = w.responseWriter.Header()
}
// ReseAllHeaders clears all headers, both temp and underline's response writer
func (w *ResponseRecorder) ReseAllHeaders() {
w.headers = http.Header{}
h := w.responseWriter.Header()
for k := range h {
h[k] = nil
}
}
// Reset resets the response body, headers and the status code header
func (w *ResponseRecorder) Reset() {
w.ResetHeaders()
w.ReseAllHeaders()
w.statusCode = StatusOK
w.ResetBody()
}
@@ -135,9 +143,12 @@ func (w *ResponseRecorder) Reset() {
// called automatically at the end of each request, see ReleaseCtx
func (w *ResponseRecorder) flushResponse() {
if w.headers != nil {
h := w.responseWriter.Header()
for k, values := range w.headers {
h[k] = nil
for i := range values {
w.responseWriter.Header().Add(k, values[i])
h.Add(k, values[i])
}
}
}