From 6700d98ad6e0fa3a05f1fc0395cb1a0c7a9ed39e Mon Sep 17 00:00:00 2001 From: Robby Zambito Date: Sun, 3 Mar 2024 17:23:54 -0500 Subject: [PATCH] Fully branch cat and ls --- guestfs-inspect.c | 8 +++++++- guestfs-inspectd.c | 26 +++++++++++++++----------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/guestfs-inspect.c b/guestfs-inspect.c index bacb6a2..7ca0c55 100644 --- a/guestfs-inspect.c +++ b/guestfs-inspect.c @@ -44,14 +44,18 @@ int main(int argc, char **argv) { zmsg_send(&msg, daemon); zmsg_t *rep = zmsg_recv(daemon); + char *res = NULL; // process reply switch (command->command) { case GUESTFS_COMMAND_LS: - char *res = zmsg_popstr(rep); + res = zmsg_popstr(rep); printf("Res:\n%s\n", res); free(res); break; case GUESTFS_COMMAND_CAT: + res = zmsg_popstr(rep); + printf("Res:\n%s\n", res); + free(res); break; } @@ -73,6 +77,8 @@ void print_help(char *name) { enum guestfs_inspect_command_const parse_command(char *input) { if (STREQ(input, "ls")) { return GUESTFS_COMMAND_LS; + } else if (STREQ(input, "cat")) { + return GUESTFS_COMMAND_CAT; } exit(EXIT_FAILURE); diff --git a/guestfs-inspectd.c b/guestfs-inspectd.c index e94b899..af795f3 100644 --- a/guestfs-inspectd.c +++ b/guestfs-inspectd.c @@ -108,24 +108,28 @@ static void *worker_task(zsock_t *pipe, char *disk_path) { printf("Size: %zu\tContent size: %zu\n", zmsg_size(msg), zmsg_content_size(msg)); struct guestfs_inpsect_command *command = zmsg_to_command(msg); - printf("Name: %s\n", command->name); - printf("paths: %zu\n", command->args.ls.paths_length); - printf("path: %s\n", command->args.ls.paths[0]); - - free(command); - - // Sending reply - /* zmsg_send(&msg, pipe); */ - zmsg_t *reply = zmsg_new(); if (!reply) { printf("wuddahec\n"); exit(EXIT_FAILURE); } - zmsg_pushstr(reply, "From worker!"); - zmsg_send(&reply, pipe); + switch (command->command) { + case GUESTFS_COMMAND_LS: + zmsg_pushstr(reply, "From worker!"); + break; + case GUESTFS_COMMAND_CAT: + char *res; + size_t s; + cat_file(g, command->args.cat.paths[0], &res, &s); + zmsg_addmem(reply, res, s); + break; + } + // Sending reply + zmsg_send(&reply, pipe); + + command_destroy(&command); zmsg_destroy(&msg); zmsg_destroy(&reply); }