소스 검색

ISSUE-109 fragment and query separators not escpade

tags/v1.0.0
Andrea Spacca 5 년 전
부모
커밋
848e033196
1개의 변경된 파일16개의 추가작업 그리고 1개의 파일을 삭제
  1. +16
    -1
      server/handlers.go

+ 16
- 1
server/handlers.go 파일 보기

@@ -411,7 +411,22 @@ func (s *Server) putHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/plain")

relativeURL, _ := url.Parse(path.Join(token, filename))
fmt.Fprint(w, getURL(r).ResolveReference(relativeURL).String())

fmt.Fprint(w, escapeFilename(r, relativeURL))
}

func escapeFilename(r *http.Request, u *url.URL) string {
if u.RawQuery != "" {
u.Path = fmt.Sprintf("%s?%s", u.Path, url.QueryEscape(u.RawQuery))
u.RawQuery = ""
}

if u.Fragment != "" {
u.Path = fmt.Sprintf("%s#%s", u.Path, u.Fragment)
u.Fragment = ""
}

return getURL(r).ResolveReference(u).String()
}

func getURL(r *http.Request) *url.URL {


불러오는 중...
취소
저장