diff options
author | Christian Segundo | 2023-06-15 23:27:24 +0200 |
---|---|---|
committer | Christian Segundo | 2023-06-15 23:27:24 +0200 |
commit | 831740fcacfe67b8124436460afa77af15493f93 (patch) | |
tree | b5303ca5833c4c551d636411988808cfb023b0f6 /src | |
parent | db5d7914d82d69021cf303e0ab02b46e0730bf48 (diff) | |
download | zmission-831740fcacfe67b8124436460afa77af15493f93.tar.gz |
one step closer
Diffstat (limited to 'src')
-rw-r--r-- | src/main.zig | 37 | ||||
-rw-r--r-- | src/request.zig | 4 |
2 files changed, 28 insertions, 13 deletions
diff --git a/src/main.zig b/src/main.zig index bdffa31..a52079a 100644 --- a/src/main.zig +++ b/src/main.zig @@ -76,16 +76,33 @@ export fn c_session_get(client: ?*anyopaque, buf: [*]u8) c_int { return 0; } -//test "c api" { -//const clientOptions = transmission.ClientOptions{ -//.host = "192.168.0.2", -//.port = 9091, -//.https = false, -//}; -//var foo = c_client_init(clientOptions); -//_ = c_session_get(foo, undefined); -//c_client_deinit(foo); -//} +export fn c_torrent_get(client: ?*anyopaque) c_int { + var real_client: *transmission.Client = @ptrCast(*transmission.Client, @alignCast( + @alignOf(transmission.Client), + client.?, + )); + + const body = transmission.torrent_get_raw(real_client, null) catch |err| { + std.debug.print("error: {any}\n", .{err}); + unreachable; + }; + defer allocator.free(body); + + std.debug.print("body: {s}\n", .{body}); + return 0; +} + +test "c api" { + const clientOptions = transmission.ClientOptions{ + .host = "192.168.0.2", + .port = 9091, + .https = false, + }; + var foo = c_client_init(clientOptions); + _ = c_session_get(foo, undefined); + _ = c_torrent_get(foo, undefined); + c_client_deinit(foo); +} test "basic add functionality" { try testing.expect(add(3, 7) == 10); diff --git a/src/request.zig b/src/request.zig index 2633428..478999b 100644 --- a/src/request.zig +++ b/src/request.zig @@ -57,9 +57,7 @@ pub const TorrentIDs = union(enum) { many: []const usize, recently_active, - const Self = @This(); - - pub fn jsonStringify(self: Self, options: std.json.StringifyOptions, out_stream: anytype) !void { + pub fn jsonStringify(self: TorrentIDs, options: std.json.StringifyOptions, out_stream: anytype) !void { switch (self) { .single => |v| try std.json.stringify(v, options, out_stream), .many => |v| try std.json.stringify(v, options, out_stream), |