@@ -89,28 +89,6 @@ func getHmacSha256(key, input []byte) ([]byte, error) {
89
89
return hash .Sum (nil ), nil
90
90
}
91
91
92
- func cloneRequest (r * http.Request ) * http.Request {
93
- r2 := new (http.Request )
94
- * r2 = * r
95
- if r .Header != nil {
96
- r2 .Header = make (http.Header , len (r .Header ))
97
-
98
- // Find total number of values.
99
- headerCount := 0
100
- for _ , headerValues := range r .Header {
101
- headerCount += len (headerValues )
102
- }
103
- copiedHeaders := make ([]string , headerCount ) // shared backing array for headers' values
104
-
105
- for headerKey , headerValues := range r .Header {
106
- headerCount = copy (copiedHeaders , headerValues )
107
- r2 .Header [headerKey ] = copiedHeaders [:headerCount :headerCount ]
108
- copiedHeaders = copiedHeaders [headerCount :]
109
- }
110
- }
111
- return r2
112
- }
113
-
114
92
func canonicalPath (req * http.Request ) string {
115
93
result := req .URL .EscapedPath ()
116
94
if result == "" {
@@ -192,7 +170,7 @@ func canonicalRequest(req *http.Request, canonicalHeaderColumns, canonicalHeader
192
170
// SignRequest adds the appropriate headers to an http.Request
193
171
// or returns an error if something prevented this.
194
172
func (rs * awsRequestSigner ) SignRequest (req * http.Request ) error {
195
- signedRequest := cloneRequest (req )
173
+ signedRequest := req . Clone (req . Context () )
196
174
timestamp := now ()
197
175
198
176
signedRequest .Header .Add ("host" , requestHost (req ))
0 commit comments