╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ───────╮ │src/test/ssh.zig│ ╰────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │115 // time out inside the length field and just before the tag is complete │ │116 for ([_]bool{ false, true }) |near_tag| { │ │117 encoded_writer = .fixed(&encoded); │ │118 - try sender.writePacket(io, &encoded_writer, &.{ proto.SSH_MSG_CHANNEL_DATA, 0, 0, 0, 0, 0, 0, 0, 1, 'x' }); │ │118 + try sender.writePacket(io, &encoded_writer, &.{&.{ proto.SSH_MSG_CHANNEL_DATA, 0, 0, 0, 0, 0, 0, 0, 1, 'x' }});│ │119 const split = if (near_tag) encoded_writer.buffered().len - 1 else 2; │ │120 try terminal.writeBytes("\x1b"); │ │121 try pipe.putAll(io, encoded_writer.buffered()[0..split]); │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │132 } │ │133 │ │134 encoded_writer = .fixed(&encoded); │ │135 - try sender.writePacket(io, &encoded_writer, &.{ proto.SSH_MSG_CHANNEL_DATA, 0, 0, 0, 0, 0, 0, 0, 1, '[' }); │ │136 - try sender.writePacket(io, &encoded_writer, &.{ proto.SSH_MSG_CHANNEL_DATA, 0, 0, 0, 0, 0, 0, 0, 1, 'A' }); │ │135 + try sender.writePacket(io, &encoded_writer, &.{&.{ proto.SSH_MSG_CHANNEL_DATA, 0, 0, 0, 0, 0, 0, 0, 1, '[' }});│ │136 + try sender.writePacket(io, &encoded_writer, &.{&.{ proto.SSH_MSG_CHANNEL_DATA, 0, 0, 0, 0, 0, 0, 0, 1, 'A' }});│ │137 try pipe.putAll(io, encoded_writer.buffered()); │ │138 try terminal.writeBytes("\x1b"); │ │139 for (0..2) |_| { │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────╮ │146 │ │147 // a complete buffered packet needs neither a clock nor concurrent tasks │ │148 encoded_writer = .fixed(&encoded); │ │149 - try sender.writePacket(io, &encoded_writer, &.{ proto.SSH_MSG_CHANNEL_EOF, 0, 0, 0, 0 }); │ │149 + try sender.writePacket(io, &encoded_writer, &.{&.{ proto.SSH_MSG_CHANNEL_EOF, 0, 0, 0, 0 }});│ │150 ctx.reader = .fixed(encoded_writer.buffered()); │ │151 ctx.conn.reader = &ctx.reader; │ │152 ctx.conn.io = .failing; │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────╮ │255 var sender = proto.Cipher.init(&key_material, 0); │ │256 var encoded_buf: [128]u8 = undefined; │ │257 var encoded_writer = std.Io.Writer.fixed(&encoded_buf); │ │258 - try sender.writePacket(io, &encoded_writer, &.{proto.SSH_MSG_IGNORE}); │ │258 + try sender.writePacket(io, &encoded_writer, &.{&.{proto.SSH_MSG_IGNORE}});│ │259 │ │260 var idle = proto.IdleState{}; │ │261 const receiver = proto.Cipher.init(&key_material, 0); │ ╰───────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────╮ │427 defer req.deinit(allocator); │ │428 try req.append(allocator, proto.SSH_MSG_SERVICE_REQUEST); │ │429 try proto.writeStringField(&req, allocator, "ssh-userauth");│ │430 - try cs_cipher.writePacket(io, cw, req.items); │ │430 + try cs_cipher.writePacket(io, cw, &.{req.items}); │ │431 } │ │432 { │ │433 const accept = try sc_cipher.readPacket(allocator, cr); │ ╰─────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────╮ │456 try req.append(allocator, 0); // has_signature = false │ │457 try proto.writeStringField(&req, allocator, "ssh-ed25519"); │ │458 try proto.writeStringField(&req, allocator, user_pubkey_blob.items);│ │459 - try cs_cipher.writePacket(io, cw, req.items); │ │459 + try cs_cipher.writePacket(io, cw, &.{req.items}); │ │460 } │ │461 { │ │462 const pk_ok = try sc_cipher.readPacket(allocator, cr); │ ╰─────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────╮ │492 try proto.writeStringField(&req, allocator, "ssh-ed25519"); │ │493 try proto.writeStringField(&req, allocator, user_pubkey_blob.items);│ │494 try proto.writeStringField(&req, allocator, sig_wire.items); │ │495 - try cs_cipher.writePacket(io, cw, req.items); │ │495 + try cs_cipher.writePacket(io, cw, &.{req.items}); │ │496 } │ │497 { │ │498 const success = try sc_cipher.readPacket(allocator, cr); │ ╰─────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────╮ │518 try proto.writeU32(&req, allocator, client_channel_id); │ │519 try proto.writeU32(&req, allocator, 1 << 20); // initial window│ │520 try proto.writeU32(&req, allocator, 32768); // max packet │ │521 - try cs_cipher.writePacket(io, cw, req.items); │ │521 + try cs_cipher.writePacket(io, cw, &.{req.items}); │ │522 } │ │523 var server_channel_id: u32 = undefined; │ │524 { │ ╰────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────╮ │545 try proto.writeStringField(&req, allocator, "exec"); │ │546 try req.append(allocator, 1); // want_reply │ │547 try proto.writeStringField(&req, allocator, exec_command);│ │548 - try cs_cipher.writePacket(io, cw, req.items); │ │548 + try cs_cipher.writePacket(io, cw, &.{req.items}); │ │549 } │ │550 { │ │551 const success = try sc_cipher.readPacket(allocator, cr); │ ╰───────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────╮ │591 defer pkt.deinit(allocator); │ │592 try pkt.append(allocator, proto.SSH_MSG_CHANNEL_CLOSE); │ │593 try proto.writeU32(&pkt, allocator, server_channel_id); │ │594 - try cs_cipher.writePacket(io, cw, pkt.items); │ │594 + try cs_cipher.writePacket(io, cw, &.{pkt.items}); │ │595 } │ │596 │ │597 // simulate the client's TCP FIN so the server's teardown drain reads EOF│ ╰──────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯