| ... | ... | @@ -93,9 +93,12 @@ pub fn main() !void { |
| 93 | 93 | fn accept(context: *Context, connection: std.net.Server.Connection) void { |
| 94 | 94 | defer connection.stream.close(); |
| 95 | 95 | |
| 96 | | var read_buffer: [8000]u8 = undefined; |
| 97 | | var server = std.http.Server.init(connection, &read_buffer); |
| 98 | | while (server.state == .ready) { |
| 96 | var recv_buffer: [4000]u8 = undefined; |
| 97 | var send_buffer: [4000]u8 = undefined; |
| 98 | var conn_reader = connection.stream.reader(&recv_buffer); |
| 99 | var conn_writer = connection.stream.writer(&send_buffer); |
| 100 | var server = std.http.Server.init(conn_reader.interface(), &conn_writer.interface); |
| 101 | while (server.reader.state == .ready) { |
| 99 | 102 | var request = server.receiveHead() catch |err| switch (err) { |
| 100 | 103 | error.HttpConnectionClosing => return, |
| 101 | 104 | else => { |
| ... | ... | @@ -175,8 +178,7 @@ fn serveSourcesTar(request: *std.http.Server.Request, context: *Context) !void { |
| 175 | 178 | const gpa = context.gpa; |
| 176 | 179 | |
| 177 | 180 | var send_buffer: [0x4000]u8 = undefined; |
| 178 | | var response = request.respondStreaming(.{ |
| 179 | | .send_buffer = &send_buffer, |
| 181 | var response = try request.respondStreaming(&send_buffer, .{ |
| 180 | 182 | .respond_options = .{ |
| 181 | 183 | .extra_headers = &.{ |
| 182 | 184 | .{ .name = "content-type", .value = "application/x-tar" }, |
| ... | ... | @@ -191,11 +193,7 @@ fn serveSourcesTar(request: *std.http.Server.Request, context: *Context) !void { |
| 191 | 193 | var walker = try std_dir.walk(gpa); |
| 192 | 194 | defer walker.deinit(); |
| 193 | 195 | |
| 194 | | var adapter_buffer: [500]u8 = undefined; |
| 195 | | var response_writer = response.writer().adaptToNewApi(); |
| 196 | | response_writer.new_interface.buffer = &adapter_buffer; |
| 197 | | |
| 198 | | var archiver: std.tar.Writer = .{ .underlying_writer = &response_writer.new_interface }; |
| 196 | var archiver: std.tar.Writer = .{ .underlying_writer = &response.writer }; |
| 199 | 197 | archiver.prefix = "std"; |
| 200 | 198 | |
| 201 | 199 | while (try walker.next()) |entry| { |
| ... | ... | @@ -229,7 +227,6 @@ fn serveSourcesTar(request: *std.http.Server.Request, context: *Context) !void { |
| 229 | 227 | |
| 230 | 228 | // intentionally omitting the pointless trailer |
| 231 | 229 | //try archiver.finish(); |
| 232 | | try response_writer.new_interface.flush(); |
| 233 | 230 | try response.end(); |
| 234 | 231 | } |
| 235 | 232 | |