mirror of
https://github.com/zigzap/zap.git
synced 2025-10-21 07:34:08 +00:00
Update to Latest Zig
This commit is contained in:
parent
5b14759b4b
commit
2a63160c06
6 changed files with 81 additions and 62 deletions
20
build.zig
20
build.zig
|
@ -1,7 +1,7 @@
|
||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const build_facilio = @import("facil.io/build.zig").build_facilio;
|
const build_facilio = @import("facil.io/build.zig").build_facilio;
|
||||||
|
|
||||||
pub fn build(b: *std.build.Builder) !void {
|
pub fn build(b: *std.Build) !void {
|
||||||
const target = b.standardTargetOptions(.{});
|
const target = b.standardTargetOptions(.{});
|
||||||
// Standard release options allow the person running `zig build` to select
|
// Standard release options allow the person running `zig build` to select
|
||||||
// between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall.
|
// between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall.
|
||||||
|
@ -16,8 +16,8 @@ pub fn build(b: *std.build.Builder) !void {
|
||||||
};
|
};
|
||||||
|
|
||||||
// create a module to be used internally.
|
// create a module to be used internally.
|
||||||
var zap_module = b.createModule(.{
|
const zap_module = b.createModule(.{
|
||||||
.source_file = .{ .path = "src/zap.zig" },
|
.root_source_file = .{ .path = "src/zap.zig" },
|
||||||
});
|
});
|
||||||
|
|
||||||
// register the module so it can be referenced using the package manager.
|
// register the module so it can be referenced using the package manager.
|
||||||
|
@ -81,7 +81,7 @@ pub fn build(b: *std.build.Builder) !void {
|
||||||
});
|
});
|
||||||
|
|
||||||
example.linkLibrary(facilio);
|
example.linkLibrary(facilio);
|
||||||
example.addModule("zap", zap_module);
|
example.root_module.addImport("zap", zap_module);
|
||||||
|
|
||||||
// const example_run = example.run();
|
// const example_run = example.run();
|
||||||
const example_run = b.addRunArtifact(example);
|
const example_run = b.addRunArtifact(example);
|
||||||
|
@ -120,7 +120,7 @@ pub fn build(b: *std.build.Builder) !void {
|
||||||
.optimize = optimize,
|
.optimize = optimize,
|
||||||
});
|
});
|
||||||
auth_tests.linkLibrary(facilio);
|
auth_tests.linkLibrary(facilio);
|
||||||
auth_tests.addModule("zap", zap_module);
|
auth_tests.root_module.addImport("zap", zap_module);
|
||||||
|
|
||||||
const run_auth_tests = b.addRunArtifact(auth_tests);
|
const run_auth_tests = b.addRunArtifact(auth_tests);
|
||||||
const install_auth_tests = b.addInstallArtifact(auth_tests, .{});
|
const install_auth_tests = b.addInstallArtifact(auth_tests, .{});
|
||||||
|
@ -133,7 +133,7 @@ pub fn build(b: *std.build.Builder) !void {
|
||||||
.optimize = optimize,
|
.optimize = optimize,
|
||||||
});
|
});
|
||||||
mustache_tests.linkLibrary(facilio);
|
mustache_tests.linkLibrary(facilio);
|
||||||
mustache_tests.addModule("zap", zap_module);
|
mustache_tests.root_module.addImport("zap", zap_module);
|
||||||
|
|
||||||
const run_mustache_tests = b.addRunArtifact(mustache_tests);
|
const run_mustache_tests = b.addRunArtifact(mustache_tests);
|
||||||
const install_mustache_tests = b.addInstallArtifact(mustache_tests, .{});
|
const install_mustache_tests = b.addInstallArtifact(mustache_tests, .{});
|
||||||
|
@ -147,7 +147,7 @@ pub fn build(b: *std.build.Builder) !void {
|
||||||
});
|
});
|
||||||
|
|
||||||
httpparams_tests.linkLibrary(facilio);
|
httpparams_tests.linkLibrary(facilio);
|
||||||
httpparams_tests.addModule("zap", zap_module);
|
httpparams_tests.root_module.addImport("zap", zap_module);
|
||||||
const run_httpparams_tests = b.addRunArtifact(httpparams_tests);
|
const run_httpparams_tests = b.addRunArtifact(httpparams_tests);
|
||||||
// TODO: for some reason, tests aren't run more than once unless
|
// TODO: for some reason, tests aren't run more than once unless
|
||||||
// dependencies have changed.
|
// dependencies have changed.
|
||||||
|
@ -164,7 +164,7 @@ pub fn build(b: *std.build.Builder) !void {
|
||||||
});
|
});
|
||||||
|
|
||||||
sendfile_tests.linkLibrary(facilio);
|
sendfile_tests.linkLibrary(facilio);
|
||||||
sendfile_tests.addModule("zap", zap_module);
|
sendfile_tests.root_module.addImport("zap", zap_module);
|
||||||
const run_sendfile_tests = b.addRunArtifact(sendfile_tests);
|
const run_sendfile_tests = b.addRunArtifact(sendfile_tests);
|
||||||
const install_sendfile_tests = b.addInstallArtifact(sendfile_tests, .{});
|
const install_sendfile_tests = b.addInstallArtifact(sendfile_tests, .{});
|
||||||
|
|
||||||
|
@ -197,7 +197,7 @@ pub fn build(b: *std.build.Builder) !void {
|
||||||
//
|
//
|
||||||
// pkghash
|
// pkghash
|
||||||
//
|
//
|
||||||
var pkghash_exe = b.addExecutable(.{
|
const pkghash_exe = b.addExecutable(.{
|
||||||
.name = "pkghash",
|
.name = "pkghash",
|
||||||
.root_source_file = .{ .path = "./tools/pkghash.zig" },
|
.root_source_file = .{ .path = "./tools/pkghash.zig" },
|
||||||
.target = target,
|
.target = target,
|
||||||
|
@ -211,7 +211,7 @@ pub fn build(b: *std.build.Builder) !void {
|
||||||
//
|
//
|
||||||
// announceybot
|
// announceybot
|
||||||
//
|
//
|
||||||
var announceybot_exe = b.addExecutable(.{
|
const announceybot_exe = b.addExecutable(.{
|
||||||
.name = "announceybot",
|
.name = "announceybot",
|
||||||
.root_source_file = .{ .path = "./tools/announceybot.zig" },
|
.root_source_file = .{ .path = "./tools/announceybot.zig" },
|
||||||
.target = target,
|
.target = target,
|
||||||
|
|
|
@ -1 +1,12 @@
|
||||||
.{ .name = "zap", .version = "0.4.0" }
|
.{
|
||||||
|
.name = "zap",
|
||||||
|
.version = "0.4.0",
|
||||||
|
.paths = .{
|
||||||
|
"build.zig",
|
||||||
|
"build.zig.zon",
|
||||||
|
"doc",
|
||||||
|
"flake.nix",
|
||||||
|
"src",
|
||||||
|
"shell.nix",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
|
@ -2,11 +2,11 @@ const std = @import("std");
|
||||||
|
|
||||||
pub fn build_facilio(
|
pub fn build_facilio(
|
||||||
comptime subdir: []const u8,
|
comptime subdir: []const u8,
|
||||||
b: *std.build.Builder,
|
b: *std.Build,
|
||||||
target: std.zig.CrossTarget,
|
target: std.Build.ResolvedTarget,
|
||||||
optimize: std.builtin.OptimizeMode,
|
optimize: std.builtin.OptimizeMode,
|
||||||
use_openssl: bool,
|
use_openssl: bool,
|
||||||
) !*std.build.CompileStep {
|
) !*std.Build.Step.Compile {
|
||||||
const lib = b.addStaticLibrary(.{
|
const lib = b.addStaticLibrary(.{
|
||||||
.name = "facil.io",
|
.name = "facil.io",
|
||||||
.target = target,
|
.target = target,
|
||||||
|
@ -15,7 +15,7 @@ pub fn build_facilio(
|
||||||
|
|
||||||
// Generate flags
|
// Generate flags
|
||||||
var flags = std.ArrayList([]const u8).init(std.heap.page_allocator);
|
var flags = std.ArrayList([]const u8).init(std.heap.page_allocator);
|
||||||
if (lib.optimize != .Debug) try flags.append("-Os");
|
if (lib.root_module.optimize != .Debug) try flags.append("-Os");
|
||||||
try flags.append("-Wno-return-type-c-linkage");
|
try flags.append("-Wno-return-type-c-linkage");
|
||||||
try flags.append("-fno-sanitize=undefined");
|
try flags.append("-fno-sanitize=undefined");
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ pub fn build_facilio(
|
||||||
//
|
//
|
||||||
|
|
||||||
try flags.append("-DFIO_HTTP_EXACT_LOGGING");
|
try flags.append("-DFIO_HTTP_EXACT_LOGGING");
|
||||||
if (target.getAbi() == .musl)
|
if (target.result.abi == .musl)
|
||||||
try flags.append("-D_LARGEFILE64_SOURCE");
|
try flags.append("-D_LARGEFILE64_SOURCE");
|
||||||
if (use_openssl)
|
if (use_openssl)
|
||||||
try flags.append("-DHAVE_OPENSSL -DFIO_TLS_FOUND");
|
try flags.append("-DHAVE_OPENSSL -DFIO_TLS_FOUND");
|
||||||
|
@ -42,30 +42,38 @@ pub fn build_facilio(
|
||||||
lib.addIncludePath(.{ .path = subdir ++ "/lib/facil/tls" });
|
lib.addIncludePath(.{ .path = subdir ++ "/lib/facil/tls" });
|
||||||
|
|
||||||
// C source files
|
// C source files
|
||||||
lib.addCSourceFiles(&.{
|
lib.addCSourceFiles(
|
||||||
subdir ++ "/lib/facil/fio.c",
|
.{
|
||||||
subdir ++ "/lib/facil/fio_zig.c",
|
.files = &.{
|
||||||
subdir ++ "/lib/facil/http/http.c",
|
subdir ++ "/lib/facil/fio.c",
|
||||||
subdir ++ "/lib/facil/http/http1.c",
|
subdir ++ "/lib/facil/fio_zig.c",
|
||||||
subdir ++ "/lib/facil/http/websockets.c",
|
subdir ++ "/lib/facil/http/http.c",
|
||||||
subdir ++ "/lib/facil/http/http_internal.c",
|
subdir ++ "/lib/facil/http/http1.c",
|
||||||
subdir ++ "/lib/facil/fiobj/fiobj_numbers.c",
|
subdir ++ "/lib/facil/http/websockets.c",
|
||||||
subdir ++ "/lib/facil/fiobj/fio_siphash.c",
|
subdir ++ "/lib/facil/http/http_internal.c",
|
||||||
subdir ++ "/lib/facil/fiobj/fiobj_str.c",
|
subdir ++ "/lib/facil/fiobj/fiobj_numbers.c",
|
||||||
subdir ++ "/lib/facil/fiobj/fiobj_ary.c",
|
subdir ++ "/lib/facil/fiobj/fio_siphash.c",
|
||||||
subdir ++ "/lib/facil/fiobj/fiobj_data.c",
|
subdir ++ "/lib/facil/fiobj/fiobj_str.c",
|
||||||
subdir ++ "/lib/facil/fiobj/fiobj_hash.c",
|
subdir ++ "/lib/facil/fiobj/fiobj_ary.c",
|
||||||
subdir ++ "/lib/facil/fiobj/fiobj_json.c",
|
subdir ++ "/lib/facil/fiobj/fiobj_data.c",
|
||||||
subdir ++ "/lib/facil/fiobj/fiobject.c",
|
subdir ++ "/lib/facil/fiobj/fiobj_hash.c",
|
||||||
subdir ++ "/lib/facil/fiobj/fiobj_mustache.c",
|
subdir ++ "/lib/facil/fiobj/fiobj_json.c",
|
||||||
subdir ++ "/lib/facil/cli/fio_cli.c",
|
subdir ++ "/lib/facil/fiobj/fiobject.c",
|
||||||
}, flags.items);
|
subdir ++ "/lib/facil/fiobj/fiobj_mustache.c",
|
||||||
|
subdir ++ "/lib/facil/cli/fio_cli.c",
|
||||||
|
},
|
||||||
|
.flags = flags.items,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
if (use_openssl) {
|
if (use_openssl) {
|
||||||
lib.addCSourceFiles(&.{
|
lib.addCSourceFiles(.{
|
||||||
subdir ++ "/lib/facil/tls/fio_tls_openssl.c",
|
.files = &.{
|
||||||
subdir ++ "/lib/facil/tls/fio_tls_missing.c",
|
subdir ++ "/lib/facil/tls/fio_tls_openssl.c",
|
||||||
}, flags.items);
|
subdir ++ "/lib/facil/tls/fio_tls_missing.c",
|
||||||
|
},
|
||||||
|
.flags = flags.items,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// link against libc
|
// link against libc
|
||||||
|
|
28
src/fio.zig
28
src/fio.zig
|
@ -118,10 +118,10 @@ pub const struct_fio_str_info_s = extern struct {
|
||||||
pub const fio_str_info_s = struct_fio_str_info_s;
|
pub const fio_str_info_s = struct_fio_str_info_s;
|
||||||
pub extern fn http_send_body(h: [*c]http_s, data: ?*anyopaque, length: usize) c_int;
|
pub extern fn http_send_body(h: [*c]http_s, data: ?*anyopaque, length: usize) c_int;
|
||||||
pub fn fiobj_each1(arg_o: FIOBJ, arg_start_at: usize, arg_task: ?*const fn (FIOBJ, ?*anyopaque) callconv(.C) c_int, arg_arg: ?*anyopaque) callconv(.C) usize {
|
pub fn fiobj_each1(arg_o: FIOBJ, arg_start_at: usize, arg_task: ?*const fn (FIOBJ, ?*anyopaque) callconv(.C) c_int, arg_arg: ?*anyopaque) callconv(.C) usize {
|
||||||
var o = arg_o;
|
const o = arg_o;
|
||||||
var start_at = arg_start_at;
|
const start_at = arg_start_at;
|
||||||
var task = arg_task;
|
const task = arg_task;
|
||||||
var arg = arg_arg;
|
const arg = arg_arg;
|
||||||
if ((((o != 0) and ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 1))))) == @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 0)))))) and ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6))))) != @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6)))))) and (fiobj_type_vtable(o).*.each != null)) return fiobj_type_vtable(o).*.each.?(o, start_at, task, arg);
|
if ((((o != 0) and ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 1))))) == @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 0)))))) and ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6))))) != @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6)))))) and (fiobj_type_vtable(o).*.each != null)) return fiobj_type_vtable(o).*.each.?(o, start_at, task, arg);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -288,8 +288,8 @@ pub const fiobj_object_header_s = extern struct {
|
||||||
ref: u32,
|
ref: u32,
|
||||||
};
|
};
|
||||||
pub fn fiobj_type_is(arg_o: FIOBJ, arg_type: fiobj_type_enum) callconv(.C) usize {
|
pub fn fiobj_type_is(arg_o: FIOBJ, arg_type: fiobj_type_enum) callconv(.C) usize {
|
||||||
var o = arg_o;
|
const o = arg_o;
|
||||||
var @"type" = arg_type;
|
const @"type" = arg_type;
|
||||||
while (true) {
|
while (true) {
|
||||||
switch (@as(c_int, @bitCast(@as(c_uint, @"type")))) {
|
switch (@as(c_int, @bitCast(@as(c_uint, @"type")))) {
|
||||||
@as(c_int, 1) => return @as(usize, @bitCast(@as(c_long, @intFromBool(((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 1))))) != 0) or (@as(c_int, @bitCast(@as(c_uint, @as([*c]fiobj_type_enum, @ptrFromInt(o))[@as(c_uint, @intCast(@as(c_int, 0)))]))) == FIOBJ_T_NUMBER))))),
|
@as(c_int, 1) => return @as(usize, @bitCast(@as(c_long, @intFromBool(((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 1))))) != 0) or (@as(c_int, @bitCast(@as(c_uint, @as([*c]fiobj_type_enum, @ptrFromInt(o))[@as(c_uint, @intCast(@as(c_int, 0)))]))) == FIOBJ_T_NUMBER))))),
|
||||||
|
@ -311,7 +311,7 @@ pub fn fiobj_type_is(arg_o: FIOBJ, arg_type: fiobj_type_enum) callconv(.C) usize
|
||||||
return @as(usize, @bitCast(@as(c_long, @intFromBool((((o != 0) and ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 1))))) == @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 0)))))) and ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6))))) != @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6)))))) and (@as(c_int, @bitCast(@as(c_uint, @as([*c]fiobj_type_enum, @ptrCast(@alignCast(@as(?*anyopaque, @ptrFromInt(o & ~@as(usize, @bitCast(@as(c_long, @as(c_int, 7)))))))))[@as(c_uint, @intCast(@as(c_int, 0)))]))) == @as(c_int, @bitCast(@as(c_uint, @"type"))))))));
|
return @as(usize, @bitCast(@as(c_long, @intFromBool((((o != 0) and ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 1))))) == @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 0)))))) and ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6))))) != @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6)))))) and (@as(c_int, @bitCast(@as(c_uint, @as([*c]fiobj_type_enum, @ptrCast(@alignCast(@as(?*anyopaque, @ptrFromInt(o & ~@as(usize, @bitCast(@as(c_long, @as(c_int, 7)))))))))[@as(c_uint, @intCast(@as(c_int, 0)))]))) == @as(c_int, @bitCast(@as(c_uint, @"type"))))))));
|
||||||
}
|
}
|
||||||
pub fn fiobj_type(arg_o: FIOBJ) callconv(.C) fiobj_type_enum {
|
pub fn fiobj_type(arg_o: FIOBJ) callconv(.C) fiobj_type_enum {
|
||||||
var o = arg_o;
|
const o = arg_o;
|
||||||
if (!(o != 0)) return @as(u8, @bitCast(@as(i8, @truncate(FIOBJ_T_NULL))));
|
if (!(o != 0)) return @as(u8, @bitCast(@as(i8, @truncate(FIOBJ_T_NULL))));
|
||||||
if ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 1))))) != 0) return @as(u8, @bitCast(@as(i8, @truncate(FIOBJ_T_NUMBER))));
|
if ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 1))))) != 0) return @as(u8, @bitCast(@as(i8, @truncate(FIOBJ_T_NUMBER))));
|
||||||
if ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6))))) == @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6))))) return @as(u8, @bitCast(@as(u8, @truncate(o))));
|
if ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6))))) == @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6))))) return @as(u8, @bitCast(@as(u8, @truncate(o))));
|
||||||
|
@ -326,7 +326,7 @@ pub extern const FIOBJECT_VTABLE_ARRAY: fiobj_object_vtable_s;
|
||||||
pub extern const FIOBJECT_VTABLE_HASH: fiobj_object_vtable_s;
|
pub extern const FIOBJECT_VTABLE_HASH: fiobj_object_vtable_s;
|
||||||
pub extern const FIOBJECT_VTABLE_DATA: fiobj_object_vtable_s;
|
pub extern const FIOBJECT_VTABLE_DATA: fiobj_object_vtable_s;
|
||||||
pub fn fiobj_type_vtable(arg_o: FIOBJ) callconv(.C) [*c]const fiobj_object_vtable_s {
|
pub fn fiobj_type_vtable(arg_o: FIOBJ) callconv(.C) [*c]const fiobj_object_vtable_s {
|
||||||
var o = arg_o;
|
const o = arg_o;
|
||||||
while (true) {
|
while (true) {
|
||||||
switch (@as(c_int, @bitCast(@as(c_uint, fiobj_type(o))))) {
|
switch (@as(c_int, @bitCast(@as(c_uint, fiobj_type(o))))) {
|
||||||
@as(c_int, 1) => return &FIOBJECT_VTABLE_NUMBER,
|
@as(c_int, 1) => return &FIOBJECT_VTABLE_NUMBER,
|
||||||
|
@ -361,7 +361,7 @@ pub fn fiobj_obj2float(o: FIOBJ) callconv(.C) f64 {
|
||||||
pub extern fn fio_ltocstr(c_long) fio_str_info_s;
|
pub extern fn fio_ltocstr(c_long) fio_str_info_s;
|
||||||
pub fn fiobj_obj2cstr(o: FIOBJ) callconv(.C) fio_str_info_s {
|
pub fn fiobj_obj2cstr(o: FIOBJ) callconv(.C) fio_str_info_s {
|
||||||
if (!(o != 0)) {
|
if (!(o != 0)) {
|
||||||
var ret: fio_str_info_s = fio_str_info_s{
|
const ret: fio_str_info_s = fio_str_info_s{
|
||||||
.capa = @as(usize, @bitCast(@as(c_long, @as(c_int, 0)))),
|
.capa = @as(usize, @bitCast(@as(c_long, @as(c_int, 0)))),
|
||||||
.len = @as(usize, @bitCast(@as(c_long, @as(c_int, 4)))),
|
.len = @as(usize, @bitCast(@as(c_long, @as(c_int, 4)))),
|
||||||
.data = @as([*c]u8, @ptrFromInt(@intFromPtr("null"))),
|
.data = @as([*c]u8, @ptrFromInt(@intFromPtr("null"))),
|
||||||
|
@ -374,7 +374,7 @@ pub fn fiobj_obj2cstr(o: FIOBJ) callconv(.C) fio_str_info_s {
|
||||||
switch (@as(c_int, @bitCast(@as(c_uint, @as(u8, @bitCast(@as(u8, @truncate(o)))))))) {
|
switch (@as(c_int, @bitCast(@as(c_uint, @as(u8, @bitCast(@as(u8, @truncate(o)))))))) {
|
||||||
@as(c_int, 6) => {
|
@as(c_int, 6) => {
|
||||||
{
|
{
|
||||||
var ret: fio_str_info_s = fio_str_info_s{
|
const ret: fio_str_info_s = fio_str_info_s{
|
||||||
.capa = @as(usize, @bitCast(@as(c_long, @as(c_int, 0)))),
|
.capa = @as(usize, @bitCast(@as(c_long, @as(c_int, 0)))),
|
||||||
.len = @as(usize, @bitCast(@as(c_long, @as(c_int, 4)))),
|
.len = @as(usize, @bitCast(@as(c_long, @as(c_int, 4)))),
|
||||||
.data = @as([*c]u8, @ptrFromInt(@intFromPtr("null"))),
|
.data = @as([*c]u8, @ptrFromInt(@intFromPtr("null"))),
|
||||||
|
@ -384,7 +384,7 @@ pub fn fiobj_obj2cstr(o: FIOBJ) callconv(.C) fio_str_info_s {
|
||||||
},
|
},
|
||||||
@as(c_int, 38) => {
|
@as(c_int, 38) => {
|
||||||
{
|
{
|
||||||
var ret: fio_str_info_s = fio_str_info_s{
|
const ret: fio_str_info_s = fio_str_info_s{
|
||||||
.capa = @as(usize, @bitCast(@as(c_long, @as(c_int, 0)))),
|
.capa = @as(usize, @bitCast(@as(c_long, @as(c_int, 0)))),
|
||||||
.len = @as(usize, @bitCast(@as(c_long, @as(c_int, 5)))),
|
.len = @as(usize, @bitCast(@as(c_long, @as(c_int, 5)))),
|
||||||
.data = @as([*c]u8, @ptrFromInt(@intFromPtr("false"))),
|
.data = @as([*c]u8, @ptrFromInt(@intFromPtr("false"))),
|
||||||
|
@ -394,7 +394,7 @@ pub fn fiobj_obj2cstr(o: FIOBJ) callconv(.C) fio_str_info_s {
|
||||||
},
|
},
|
||||||
@as(c_int, 22) => {
|
@as(c_int, 22) => {
|
||||||
{
|
{
|
||||||
var ret: fio_str_info_s = fio_str_info_s{
|
const ret: fio_str_info_s = fio_str_info_s{
|
||||||
.capa = @as(usize, @bitCast(@as(c_long, @as(c_int, 0)))),
|
.capa = @as(usize, @bitCast(@as(c_long, @as(c_int, 0)))),
|
||||||
.len = @as(usize, @bitCast(@as(c_long, @as(c_int, 4)))),
|
.len = @as(usize, @bitCast(@as(c_long, @as(c_int, 4)))),
|
||||||
.data = @as([*c]u8, @ptrFromInt(@intFromPtr("true"))),
|
.data = @as([*c]u8, @ptrFromInt(@intFromPtr("true"))),
|
||||||
|
@ -556,8 +556,8 @@ pub extern fn http_date2rfc7231(target: [*c]u8, tmbuf: [*c]struct_tm) usize;
|
||||||
pub extern fn http_date2rfc2109(target: [*c]u8, tmbuf: [*c]struct_tm) usize;
|
pub extern fn http_date2rfc2109(target: [*c]u8, tmbuf: [*c]struct_tm) usize;
|
||||||
pub extern fn http_date2rfc2822(target: [*c]u8, tmbuf: [*c]struct_tm) usize;
|
pub extern fn http_date2rfc2822(target: [*c]u8, tmbuf: [*c]struct_tm) usize;
|
||||||
pub fn http_date2str(arg_target: [*c]u8, arg_tmbuf: [*c]struct_tm) callconv(.C) usize {
|
pub fn http_date2str(arg_target: [*c]u8, arg_tmbuf: [*c]struct_tm) callconv(.C) usize {
|
||||||
var target = arg_target;
|
const target = arg_target;
|
||||||
var tmbuf = arg_tmbuf;
|
const tmbuf = arg_tmbuf;
|
||||||
return http_date2rfc7231(target, tmbuf);
|
return http_date2rfc7231(target, tmbuf);
|
||||||
}
|
}
|
||||||
pub extern fn http_time2str(target: [*c]u8, t: time_t) usize;
|
pub extern fn http_time2str(target: [*c]u8, t: time_t) usize;
|
||||||
|
|
|
@ -122,7 +122,7 @@ pub fn Basic(comptime Lookup: type, comptime kind: BasicAuthStrategy) type {
|
||||||
);
|
);
|
||||||
return .AuthFailed;
|
return .AuthFailed;
|
||||||
}
|
}
|
||||||
var decoded = buffer[0..decoded_size];
|
const decoded = buffer[0..decoded_size];
|
||||||
decoder.decode(decoded, encoded) catch |err| {
|
decoder.decode(decoded, encoded) catch |err| {
|
||||||
zap.debug(
|
zap.debug(
|
||||||
"ERROR: UserPassAuth: unable to decode `{s}`: {any}\n",
|
"ERROR: UserPassAuth: unable to decode `{s}`: {any}\n",
|
||||||
|
@ -400,7 +400,7 @@ pub fn UserPassSession(comptime Lookup: type, comptime lockedPwLookups: bool) ty
|
||||||
lookup: *Lookup,
|
lookup: *Lookup,
|
||||||
args: UserPassSessionArgs,
|
args: UserPassSessionArgs,
|
||||||
) !Self {
|
) !Self {
|
||||||
var ret: Self = .{
|
const ret: Self = .{
|
||||||
.allocator = allocator,
|
.allocator = allocator,
|
||||||
.settings = .{
|
.settings = .{
|
||||||
.usernameParam = try allocator.dupe(u8, args.usernameParam),
|
.usernameParam = try allocator.dupe(u8, args.usernameParam),
|
||||||
|
|
|
@ -50,7 +50,7 @@ pub fn Handler(comptime ContextType: type) type {
|
||||||
|
|
||||||
/// This function will end the HTTP stage of the connection and attempt to "upgrade" to a WebSockets connection.
|
/// This function will end the HTTP stage of the connection and attempt to "upgrade" to a WebSockets connection.
|
||||||
pub fn upgrade(h: [*c]fio.http_s, settings: *WebSocketSettings) WebSocketError!void {
|
pub fn upgrade(h: [*c]fio.http_s, settings: *WebSocketSettings) WebSocketError!void {
|
||||||
var fio_settings: fio.websocket_settings_s = .{
|
const fio_settings: fio.websocket_settings_s = .{
|
||||||
.on_message = internal_on_message,
|
.on_message = internal_on_message,
|
||||||
.on_open = internal_on_open,
|
.on_open = internal_on_open,
|
||||||
.on_ready = internal_on_ready,
|
.on_ready = internal_on_ready,
|
||||||
|
@ -64,8 +64,8 @@ pub fn Handler(comptime ContextType: type) type {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn internal_on_message(handle: WsHandle, msg: fio.fio_str_info_s, is_text: u8) callconv(.C) void {
|
fn internal_on_message(handle: WsHandle, msg: fio.fio_str_info_s, is_text: u8) callconv(.C) void {
|
||||||
var user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
|
const user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
|
||||||
var message = msg.data[0..msg.len];
|
const message = msg.data[0..msg.len];
|
||||||
if (user_provided_settings) |settings| {
|
if (user_provided_settings) |settings| {
|
||||||
if (settings.on_message) |on_message| {
|
if (settings.on_message) |on_message| {
|
||||||
on_message(settings.context, handle, message, is_text == 1);
|
on_message(settings.context, handle, message, is_text == 1);
|
||||||
|
@ -74,7 +74,7 @@ pub fn Handler(comptime ContextType: type) type {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn internal_on_open(handle: WsHandle) callconv(.C) void {
|
fn internal_on_open(handle: WsHandle) callconv(.C) void {
|
||||||
var user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
|
const user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
|
||||||
if (user_provided_settings) |settings| {
|
if (user_provided_settings) |settings| {
|
||||||
if (settings.on_open) |on_open| {
|
if (settings.on_open) |on_open| {
|
||||||
on_open(settings.context, handle);
|
on_open(settings.context, handle);
|
||||||
|
@ -83,7 +83,7 @@ pub fn Handler(comptime ContextType: type) type {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn internal_on_ready(handle: WsHandle) callconv(.C) void {
|
fn internal_on_ready(handle: WsHandle) callconv(.C) void {
|
||||||
var user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
|
const user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
|
||||||
if (user_provided_settings) |settings| {
|
if (user_provided_settings) |settings| {
|
||||||
if (settings.on_ready) |on_ready| {
|
if (settings.on_ready) |on_ready| {
|
||||||
on_ready(settings.context, handle);
|
on_ready(settings.context, handle);
|
||||||
|
@ -92,7 +92,7 @@ pub fn Handler(comptime ContextType: type) type {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn internal_on_shutdown(handle: WsHandle) callconv(.C) void {
|
fn internal_on_shutdown(handle: WsHandle) callconv(.C) void {
|
||||||
var user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
|
const user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
|
||||||
if (user_provided_settings) |settings| {
|
if (user_provided_settings) |settings| {
|
||||||
if (settings.on_shutdown) |on_shutdown| {
|
if (settings.on_shutdown) |on_shutdown| {
|
||||||
on_shutdown(settings.context, handle);
|
on_shutdown(settings.context, handle);
|
||||||
|
@ -101,7 +101,7 @@ pub fn Handler(comptime ContextType: type) type {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn internal_on_close(uuid: isize, udata: ?*anyopaque) callconv(.C) void {
|
fn internal_on_close(uuid: isize, udata: ?*anyopaque) callconv(.C) void {
|
||||||
var user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(udata)));
|
const user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(udata)));
|
||||||
if (user_provided_settings) |settings| {
|
if (user_provided_settings) |settings| {
|
||||||
if (settings.on_close) |on_close| {
|
if (settings.on_close) |on_close| {
|
||||||
on_close(settings.context, uuid);
|
on_close(settings.context, uuid);
|
||||||
|
@ -192,7 +192,7 @@ pub fn Handler(comptime ContextType: type) type {
|
||||||
/// we need it to look up the ziggified callbacks.
|
/// we need it to look up the ziggified callbacks.
|
||||||
pub inline fn subscribe(handle: WsHandle, args: *SubscribeArgs) WebSocketError!usize {
|
pub inline fn subscribe(handle: WsHandle, args: *SubscribeArgs) WebSocketError!usize {
|
||||||
if (handle == null) return error.SubscribeError;
|
if (handle == null) return error.SubscribeError;
|
||||||
var fio_args: fio.websocket_subscribe_s_zigcompat = .{
|
const fio_args: fio.websocket_subscribe_s_zigcompat = .{
|
||||||
.ws = handle.?,
|
.ws = handle.?,
|
||||||
.channel = util.str2fio(args.channel),
|
.channel = util.str2fio(args.channel),
|
||||||
.on_message = if (args.on_message) |_| internal_subscription_on_message else null,
|
.on_message = if (args.on_message) |_| internal_subscription_on_message else null,
|
||||||
|
|
Loading…
Add table
Reference in a new issue