summaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
authorChristian Segundo2023-06-17 02:54:34 +0200
committerChristian Segundo2023-06-17 02:54:34 +0200
commitc7412022c3c607c809f774db2459f9259ba95038 (patch)
tree72b7c416c02f5aa189388bcf7851050ce75f3325 /src/main.zig
parent831740fcacfe67b8124436460afa77af15493f93 (diff)
downloadzmission-c7412022c3c607c809f774db2459f9259ba95038.tar.gz
one step closer
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig61
1 files changed, 38 insertions, 23 deletions
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);
}