╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ──╮ │src/web.zig│ ╰───────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ │222 var cookie_buf: [256]u8 = undefined; │ │223 var session_cookie: ?[]const u8 = null; │ │224 switch (host) { │ │225 - .remote => |remote| { │ │225 + .server => |server| { │ │226 user_id = blk: { │ │227 const token = getCookieValue(request, cookie_name) orelse break :blk null;│ │228 - if (!remote.session_store.lookup(token, &user_id_buf)) break :blk null; │ │228 + if (!server.session_store.lookup(token, &user_id_buf)) break :blk null; │ │229 break :blk user_id_buf[0..evt.event_id_size]; │ │230 }; │ │231 // whoever seeded the store may have left a session to claim │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │232 if (user_id == null) { │ │233 var token: [SessionStore.token_hex_len]u8 = undefined; │ │234 - if (remote.session_store.autoLogin(&token) and remote.session_store.lookup(&token, &user_id_buf)) {│ │234 + if (server.session_store.autoLogin(&token) and server.session_store.lookup(&token, &user_id_buf)) {│ │235 session_cookie = try std.fmt.bufPrint(&cookie_buf, session_cookie_fmt, .{token}); │ │236 user_id = user_id_buf[0..evt.event_id_size]; │ │237 } │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────╮ │238 } │ │239 if (getCookieValue(request, form_flash_cookie)) |token| { │ │240 form_cookie_seen = true; │ │241 - form_feedback = remote.session_store.takeFlash(form_arena.allocator(), token);│ │241 + form_feedback = server.session_store.takeFlash(form_arena.allocator(), token);│ │242 } │ │243 }, │ │244 .local => { │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │262 } │ │263 │ │264 const git_http_port: ?u16, const git_ssh_port: ?u16, const git_ssh_prefix: []const u8 = switch (host) {│ │265 - .remote => |remote| .{ remote.git_http_port, remote.git_ssh_port, remote.git_ssh_prefix }, │ │265 + .server => |server| .{ server.git_http_port, server.git_ssh_port, server.git_ssh_prefix }, │ │266 .local => .{ null, null, "" }, │ │267 }; │ │268 const html = renderIndexHtml(io, allocator, host, .{ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────╮ │270 .form_feedback = form_feedback, │ │271 .sync_failure = sync_failure, │ │272 .current_page = current_page, │ │273 - .is_local = host == .local, │ │273 + .host_kind = std.meta.activeTag(host),│ │274 .git_http_port = git_http_port, │ │275 .git_ssh_port = git_ssh_port, │ │276 .git_ssh_prefix = git_ssh_prefix, │ ╰───────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │383 │ │384 fn respondThreadFormFailure(request: *std.http.Server.Request, allocator: std.mem.Allocator, host: Host, location: []const u8, feedback: ui.Session.FormFeedback) !void {│ │385 return switch (host) { │ │386 - .remote => |remote| respondFormFailure(request, allocator, remote.session_store, location, feedback), │ │386 + .server => |server| respondFormFailure(request, allocator, server.session_store, location, feedback), │ │387 .local => { │ │388 const tag = std.meta.activeTag(feedback); │ │389 const required_title = switch (feedback) { │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ │508 request: *std.http.Server.Request, │ │509 host: Host, │ │510 ) !?RequestAuthor { │ │511 - const remote = switch (host) { │ │512 - .remote => |remote| remote, │ │511 + const server = switch (host) { │ │512 + .server => |server| server, │ │513 .local => |src| return .{ .author = try ui.localAuthor(src, io, allocator, arena) },│ │514 }; │ │515 const token = getCookieValue(request, cookie_name) orelse return null; │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │516 var user_id: [evt.event_id_size]u8 = undefined; │ │517 - if (!remote.session_store.lookup(token, &user_id)) return null; │ │517 + if (!server.session_store.lookup(token, &user_id)) return null; │ │518 │ │519 - var repo = try rp.Repo(.xit, evt.admin_repo_opts).open(io, allocator, .{ .path = remote.admin_repo_path }); │ │519 + var repo = try rp.Repo(.xit, evt.admin_repo_opts).open(io, allocator, .{ .path = server.admin_repo_path }); │ │520 defer repo.deinit(io, allocator); │ │521 const moment = try evt.currentMoment(evt.admin_repo_opts, &repo); │ │522 const user = (try evt.User.readById(evt.AdminDB, evt.admin_repo_opts.hash, moment, arena, &user_id)) orelse return null;│ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────╮ │622 const event_id_hex = std.fmt.bytesToHex(id_bytes, .lower); │ │623 │ │624 if (kind == .patch) { │ │625 - const remote = switch (host) { │ │626 - .remote => |remote| remote, │ │625 + const server = switch (host) { │ │626 + .server => |server| server, │ │627 .local => return respondRemoveNotFound(request), │ │628 }; │ │629 const user_id = request_author.user_id orelse return respondLoginRequired(request);│ ╰────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │635 return respondThreadFormFailure(request, allocator, host, form_location, invalidTargetBranchFeedback(title, tags, description, target_branch));│ │636 } │ │637 const repo_id = evt.parseEventId(std.fs.path.basename(request_repo.source.path)) catch return respondRemoveNotFound(request); │ │638 - var admin_repo = try rp.Repo(.xit, evt.admin_repo_opts).open(io, allocator, .{ .path = remote.admin_repo_path }); │ │638 + var admin_repo = try rp.Repo(.xit, evt.admin_repo_opts).open(io, allocator, .{ .path = server.admin_repo_path }); │ │639 defer admin_repo.deinit(io, allocator); │ │640 - const repos_dir = try std.fs.path.join(allocator, &.{ std.fs.path.dirname(remote.admin_repo_path) orelse ".", "repos" }); │ │640 + const repos_dir = try std.fs.path.join(allocator, &.{ std.fs.path.dirname(server.admin_repo_path) orelse ".", "repos" }); │ │641 defer allocator.free(repos_dir); │ │642 const fork_path = try fork.create(.{}, io, allocator, repos_dir, &admin_repo, .{ │ │643 .id = event_id_hex, │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯