╭ changed ─────────╮ │src/serve_http.zig│ ╰──────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │108 const content_type = try allocator.dupe(u8, findHeader(request, "content-type") orelse ""); │ │109 defer allocator.free(content_type); │ │110 const has_remote_user = findHeader(request, "authorization") != null; │ │111 - const protocol_version = protocolVersionFromHeader(findHeader(request, "git-protocol")); │ │111 + const protocol_version = xit.net_server_common.parseProtocolVersion(findHeader(request, "git-protocol"));│ │112 │ │113 // pushing over HTTP is not supported; pushes go over SSH │ │114 if (isReceivePack(handler, suffix, uri.query)) { │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │267 │ │268 fn normalizeMethod(method: std.http.Method) std.http.Method { │ │269 return if (method == .HEAD) .GET else method; │ │270 -} │ │271 - │ │272 -fn protocolVersionFromHeader(header: ?[]const u8) xit.net_server_common.ProtocolVersion {│ │273 - const git_protocol = header orelse return .v0; │ │274 - var version: xit.net_server_common.ProtocolVersion = .v0; │ │275 - var iter = std.mem.splitScalar(u8, git_protocol, ':'); │ │276 - while (iter.next()) |entry| { │ │277 - const value = std.mem.trimStart(u8, entry, " "); │ │278 - if (std.mem.startsWith(u8, value, "version=")) { │ │279 - const v = value["version=".len..]; │ │280 - if (std.mem.eql(u8, v, "2")) { │ │281 - version = .v2; │ │282 - } else if (std.mem.eql(u8, v, "1") and version != .v2) { │ │283 - version = .v1; │ │284 - } │ │285 - } │ │286 - } │ │287 - return version; │ │270 } │ │271 │ │272 fn findHeader(request: *std.http.Server.Request, name: []const u8) ?[]const u8 { │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯