summaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
authorChristian Segundo2023-06-15 23:27:24 +0200
committerChristian Segundo2023-06-15 23:27:24 +0200
commit831740fcacfe67b8124436460afa77af15493f93 (patch)
treeb5303ca5833c4c551d636411988808cfb023b0f6 /src/main.zig
parentdb5d7914d82d69021cf303e0ab02b46e0730bf48 (diff)
downloadzmission-831740fcacfe67b8124436460afa77af15493f93.tar.gz
one step closer
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig37
1 files changed, 27 insertions, 10 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);