authorgravatar for johnnymarler@gmail.comJonathan Marler <johnnymarler@gmail.com> 2023-03-06 18:29:27-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-05-03 20:52:18-07:00
log5def162391da5050761beb3e6efb24b99716fc99
tree45df1f1ccf7fb365bbeee97a17e2c3256feeca06
parentf05cd008d89f36da0aaea315dd480edeb7870a45

fix bug and simplify std.crypto.tls.Client.limitVecs


1 files changed, 6 insertions(+), 9 deletions(-)

lib/std/crypto/tls/Client.zig+6-9
......@@ -1330,18 +1330,15 @@ const VecPut = struct {
13301330
13311331/// Limit iovecs to a specific byte size.
13321332fn limitVecs(iovecs: []std.os.iovec, len: usize) []std.os.iovec {
1333 var vec_i: usize = 0;
13341333 var bytes_left: usize = len;
1335 while (true) {
1336 if (bytes_left >= iovecs[vec_i].iov_len) {
1337 bytes_left -= iovecs[vec_i].iov_len;
1338 vec_i += 1;
1339 if (vec_i == iovecs.len or bytes_left == 0) return iovecs[0..vec_i];
1340 continue;
1334 for (iovecs, 0..) |*iovec, vec_i| {
1335 if (bytes_left <= iovec.iov_len) {
1336 iovec.iov_len = bytes_left;
1337 return iovecs[0 .. vec_i + 1];
13411338 }
1342 iovecs[vec_i].iov_len = bytes_left;
1343 return iovecs[0..vec_i];
1339 bytes_left -= iovec.iov_len;
13441340 }
1341 return iovecs;
13451342}
13461343
13471344/// The priority order here is chosen based on what crypto algorithms Zig has