func (gae *GAEHttpConnection) handleHttpRes(conn *SessionConnection, req *event.HTTPRequestEvent, ev *event.HTTPResponseEvent) (*http.Response, error) { originRange := req.RawReq.Header.Get("Range") contentRange := ev.GetHeader("Content-Range") if ev.Status == 206 && len(contentRange) > 0 && strings.EqualFold(req.Method, "GET") { _, end, length := util.ParseContentRangeHeaderValue(contentRange) if len(originRange) > 0 { _, oe := util.ParseRangeHeaderValue(originRange) if oe > 0 { length = oe + 1 } } if length > end+1 { gae.doRangeFetch(req.RawReq, ev.ToResponse()) return nil, nil } if len(originRange) == 0 { ev.Status = 200 ev.RemoveHeader("Content-Range") } } httpres := ev.ToResponse() err := httpres.Write(conn.LocalRawConn) return httpres, err }