| ... | @@ -2,43 +2,6 @@ | ... | @@ -2,43 +2,6 @@ |
| 2 | //! | 2 | //! |
| 3 | //! This server assumes clients are well behaved and standard compliant; it | 3 | //! This server assumes clients are well behaved and standard compliant; it |
| 4 | //! deadlocks if a client holds a connection open without sending a request. | 4 | //! deadlocks if a client holds a connection open without sending a request. |
| 5 | //! | | |
| 6 | //! Example usage: | | |
| 7 | //! | | |
| 8 | //! ```zig | | |
| 9 | //! var server = Server.init(.{ .reuse_address = true }); | | |
| 10 | //! defer server.deinit(); | | |
| 11 | //! | | |
| 12 | //! try server.listen(bind_addr); | | |
| 13 | //! | | |
| 14 | //! while (true) { | | |
| 15 | //! var res = try server.accept(.{ .allocator = gpa }); | | |
| 16 | //! defer res.deinit(); | | |
| 17 | //! | | |
| 18 | //! while (res.reset() != .closing) { | | |
| 19 | //! res.wait() catch |err| switch (err) { | | |
| 20 | //! error.HttpHeadersInvalid => break, | | |
| 21 | //! error.HttpHeadersOversize => { | | |
| 22 | //! res.status = .request_header_fields_too_large; | | |
| 23 | //! res.send() catch break; | | |
| 24 | //! break; | | |
| 25 | //! }, | | |
| 26 | //! else => { | | |
| 27 | //! res.status = .bad_request; | | |
| 28 | //! res.send() catch break; | | |
| 29 | //! break; | | |
| 30 | //! }, | | |
| 31 | //! } | | |
| 32 | //! | | |
| 33 | //! res.status = .ok; | | |
| 34 | //! res.transfer_encoding = .chunked; | | |
| 35 | //! | | |
| 36 | //! try res.send(); | | |
| 37 | //! try res.writeAll("Hello, World!\n"); | | |
| 38 | //! try res.finish(); | | |
| 39 | //! } | | |
| 40 | //! } | | |
| 41 | //! ``` | | |
| 42 | | 5 | |
| 43 | const builtin = @import("builtin"); | 6 | const builtin = @import("builtin"); |
| 44 | const std = @import("../std.zig"); | 7 | const std = @import("../std.zig"); |