From c7412022c3c607c809f774db2459f9259ba95038 Mon Sep 17 00:00:00 2001 From: Christian Segundo Date: Sat, 17 Jun 2023 02:54:34 +0200 Subject: one step closer --- src/main.zig | 61 +++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 38 insertions(+), 23 deletions(-) (limited to 'src/main.zig') diff --git a/src/main.zig b/src/main.zig index a52079a..b01188b 100644 --- a/src/main.zig +++ b/src/main.zig @@ -14,32 +14,43 @@ export fn add(a: i32, b: i32) i32 { var client = transmission.Client.init(allocator, clientOptions); defer client.deinit(); - { - const body = transmission.session_get_raw(&client, null) catch |err| { - std.debug.print("error: {any}\n", .{err}); - unreachable; - }; - defer allocator.free(body); - std.debug.print("body: {s}\n", .{body}); - } + //{ + //const body = transmission.session_get_raw(&client, null) catch |err| { + //std.debug.print("error: {any}\n", .{err}); + //unreachable; + //}; + //defer allocator.free(body); + //std.debug.print("body: {s}\n", .{body}); + //} { - const body = transmission.torrent_get_raw(&client, null) catch |err| { + const body = transmission.torrent_get_(&client, null) catch |err| { std.debug.print("error: {any}\n", .{err}); unreachable; }; - defer allocator.free(body); - std.debug.print("body: {s}\n", .{body}); + //defer allocator.free(body); + for (body.arguments.torrent_get.torrents.?) |t| { + std.debug.print("name: {any}\n", .{t}); + } } - { - const body = transmission.session_set_raw(&client, .{ .peer_port = 51413 }) catch |err| { - std.debug.print("error: {any}\n", .{err}); - unreachable; - }; - defer allocator.free(body); - std.debug.print("body: {s}\n", .{body}); - } + //{ + //const body = transmission.torrent_get_(&client, null) catch |err| { + //std.debug.print("error: {any}\n", .{err}); + //unreachable; + //}; + ////defer allocator.free(body); + //std.debug.print("body: {any}\n", .{body}); + //} + + //{ + //const body = transmission.session_set_raw(&client, .{ .peer_port = 51413 }) catch |err| { + //std.debug.print("error: {any}\n", .{err}); + //unreachable; + //}; + //defer allocator.free(body); + //std.debug.print("body: {s}\n", .{body}); + //} return a + b; } @@ -76,7 +87,7 @@ export fn c_session_get(client: ?*anyopaque, buf: [*]u8) c_int { return 0; } -export fn c_torrent_get(client: ?*anyopaque) c_int { +export fn c_torrent_get(client: ?*anyopaque) [*:0]u8 { var real_client: *transmission.Client = @ptrCast(*transmission.Client, @alignCast( @alignOf(transmission.Client), client.?, @@ -88,8 +99,12 @@ export fn c_torrent_get(client: ?*anyopaque) c_int { }; defer allocator.free(body); - std.debug.print("body: {s}\n", .{body}); - return 0; + // TODO: use the same pointer of body but gotta go fast :( + var foo = std.ArrayList(u8).init(allocator); + foo.insertSlice(0, body) catch unreachable; + + //std.debug.print("body: {s}\n", .{body}); + return foo.toOwnedSliceSentinel(0) catch unreachable; } test "c api" { @@ -100,7 +115,7 @@ test "c api" { }; var foo = c_client_init(clientOptions); _ = c_session_get(foo, undefined); - _ = c_torrent_get(foo, undefined); + _ = c_torrent_get(foo); c_client_deinit(foo); } -- cgit v1.2.3