add comment to indicate root cause of the tagResource issue
This commit is contained in:
parent
c011f1d7f9
commit
f2a3a967c7
|
@ -178,6 +178,33 @@ pub const AwsHttp = struct {
|
||||||
// defer req.deinit();
|
// defer req.deinit();
|
||||||
|
|
||||||
const method = std.meta.stringToEnum(std.http.Method, request_cp.method).?;
|
const method = std.meta.stringToEnum(std.http.Method, request_cp.method).?;
|
||||||
|
// std.Uri has a format function here that is used by start() (below)
|
||||||
|
// to escape the string we're about to send. But we don't want that...
|
||||||
|
// we need the control, because the signing above relies on the url above.
|
||||||
|
// We can't seem to have our cake and eat it too, because we need escaped
|
||||||
|
// ':' characters, but if we escape them, we'll get them double encoded.
|
||||||
|
// If we don't escape them, they won't get encoded at all. I believe the
|
||||||
|
// only answer may be to copy the Request.start function from the
|
||||||
|
// standard library and tweak the print statements such that they don't
|
||||||
|
// escape (but do still handle full uri (in proxy) vs path only (normal)
|
||||||
|
//
|
||||||
|
// Bug report filed here:
|
||||||
|
// https://github.com/ziglang/zig/issues/17015
|
||||||
|
//
|
||||||
|
// https://github.com/ziglang/zig/blob/0.11.0/lib/std/http/Client.zig#L538-L636
|
||||||
|
//
|
||||||
|
// Look at lines 551 and 553:
|
||||||
|
// https://github.com/ziglang/zig/blob/0.11.0/lib/std/http/Client.zig#L551
|
||||||
|
//
|
||||||
|
// This ends up executing the format function here:
|
||||||
|
// https://github.com/ziglang/zig/blob/0.11.0/lib/std/http/Client.zig#L551
|
||||||
|
//
|
||||||
|
// Which is basically the what we want, without the escaping on lines
|
||||||
|
// 249, 254, and 260:
|
||||||
|
// https://github.com/ziglang/zig/blob/0.11.0/lib/std/Uri.zig#L249
|
||||||
|
//
|
||||||
|
// const unescaped_url = try std.Uri.unescapeString(self.allocator, url);
|
||||||
|
// defer self.allocator.free(unescaped_url);
|
||||||
var req = try cl.request(method, try std.Uri.parse(url), headers, .{});
|
var req = try cl.request(method, try std.Uri.parse(url), headers, .{});
|
||||||
defer req.deinit();
|
defer req.deinit();
|
||||||
if (request_cp.body.len > 0)
|
if (request_cp.body.len > 0)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user