╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ────╮ │src/serve.zig│ ╰─────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │124 fn run(conn: @This()) void { │ │125 defer conn.stream.close(conn.io); │ │ 99 - handleHttpConnection(repo_kind, any_repo_opts, conn.io, conn.allocator, conn.repo_root, conn.stream, conn.err) catch |request_err| { │ │126 + handleHttpConnection(repo_kind, any_repo_opts, conn.io, conn.allocator, conn.repo_root_path, conn.stream, conn.err) catch |request_err| {│ │127 logError(conn.err, "connection failed: {s}\n", .{@errorName(request_err)}); │ │128 }; │ │129 } │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────╮ │132 ctx.tasks.async(ctx.io, Connection.run, .{Connection{│ │133 .io = ctx.io, │ │134 .allocator = ctx.allocator, │ │108 - .repo_root = ctx.repo_root, │ │135 + .repo_root_path = ctx.repo_root_path, │ │136 .stream = stream, │ │137 .err = ctx.err, │ │138 }}); │ ╰──────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────╮ │143 tasks.async(io, Listener.run, .{Listener{│ │144 .io = io, │ │145 .allocator = allocator, │ │119 - .repo_root = repo_root, │ │146 + .repo_root_path = repo_root_path, │ │147 .net_server = net_server, │ │148 .tasks = tasks, │ │149 .err = err, │ ╰──────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────╮ │155 comptime any_repo_opts: rp.AnyRepoOpts(repo_kind),│ │156 io: std.Io, │ │157 allocator: std.mem.Allocator, │ │131 - repo_root: []const u8, │ │158 + repo_root_path: []const u8, │ │159 stream: std.Io.net.Stream, │ │160 err: *std.Io.Writer, │ │161 ) !void { │ ╰───────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │172 else => |e| return e, │ │173 }; │ │174 │ │148 - handleHttpGitRequest(repo_kind, any_repo_opts, io, allocator, repo_root, &http_server, &request) catch |request_err| { │ │175 + handleHttpGitRequest(repo_kind, any_repo_opts, io, allocator, repo_root_path, &http_server, &request) catch |request_err| {│ │176 try err.print("request failed: {s}\n", .{@errorName(request_err)}); │ │177 try err.flush(); │ │178 if (http_server.reader.state == .received_head) { │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────╮ │190 comptime any_repo_opts: rp.AnyRepoOpts(repo_kind),│ │191 io: std.Io, │ │192 allocator: std.mem.Allocator, │ │166 - repo_root: []const u8, │ │193 + repo_root_path: []const u8, │ │194 http_server: *std.http.Server, │ │195 request: *std.http.Server.Request, │ │196 ) !void { │ ╰───────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │213 const repo_rel = try decodeAndValidateRepoPath(allocator, repo_rel_encoded); │ │214 defer allocator.free(repo_rel); │ │215 │ │189 - const repo_path = try std.fs.path.resolve(allocator, &.{ repo_root, repo_rel }); │ │216 + const repo_path = try std.fs.path.resolve(allocator, &.{ repo_root_path, repo_rel });│ │217 defer allocator.free(repo_path); │ │218 │ │192 - if (!isSubPath(repo_root, repo_path)) { │ │219 + if (!isSubPath(repo_root_path, repo_path)) { │ │220 if (http_server.reader.state == .received_head) { │ │221 http_server.reader.state = .ready; │ │222 } │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────╮ │288 comptime any_repo_opts: rp.AnyRepoOpts(repo_kind),│ │289 io: std.Io, │ │290 allocator: std.mem.Allocator, │ │264 - repo_root: []const u8, │ │291 + repo_root_path: []const u8, │ │292 net_server: *std.Io.net.Server, │ │293 tasks: *std.Io.Group, │ │294 err: *std.Io.Writer, │ ╰───────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────╮ │296 const Listener = struct { │ │297 io: std.Io, │ │298 allocator: std.mem.Allocator, │ │272 - repo_root: []const u8, │ │299 + repo_root_path: []const u8, │ │300 net_server: *std.Io.net.Server,│ │301 tasks: *std.Io.Group, │ │302 err: *std.Io.Writer, │ ╰────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────╮ │311 const Connection = struct { │ │312 io: std.Io, │ │313 allocator: std.mem.Allocator,│ │287 - repo_root: []const u8, │ │314 + repo_root_path: []const u8, │ │315 stream: std.Io.net.Stream, │ │316 err: *std.Io.Writer, │ │317 │ ╰──────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯