╭─────────────╮ │scroll to top│ ╰─────────────╯ ╭ ssh_helper.zig ───────────────────────────────────────────────╮ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰───────────────────────────────────────────────────────────────╯
╭────╮ ╭ clone ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╮ │http│ ssh │ │ ╰────╯ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╯
126 const len = try std.posix.read(src, &buffer); 127 if (len == 0) break; 128 try writeAllFd(dst, buffer[0..len]); 129 } 130 } 131 132 fn writeAllFd(fd: std.posix.fd_t, bytes: []const u8) !void { 133 var written: usize = 0; 134 while (written < bytes.len) { 135 const rc = std.posix.system.write(fd, bytes[written..].ptr, bytes.len - written); 136 switch (std.posix.errno(rc)) { 137 .SUCCESS => written += @intCast(rc), 138 .INTR => continue, 139 .PIPE => return error.BrokenPipe, 140 else => return error.WriteFailed, 141 } 142 } 143 } 144