aboutsummaryrefslogtreecommitdiff
path: root/c_implementation/src/ak_fs_mt.c
diff options
context:
space:
mode:
authorkaotisk <kaotisk@arching-kaos.org>2025-04-29 04:16:08 +0300
committerkaotisk <kaotisk@arching-kaos.org>2025-04-29 19:31:17 +0300
commite799b98d24275ba5f7dd5e32e52d1a0dc84490b9 (patch)
tree84b698367bd0583b5a578447e790d197640855c9 /c_implementation/src/ak_fs_mt.c
parent2fcf2c30c99cdbf46520a45326c7da02e17a210d (diff)
downloadarching-kaos-tools-e799b98d24275ba5f7dd5e32e52d1a0dc84490b9.tar.gz
arching-kaos-tools-e799b98d24275ba5f7dd5e32e52d1a0dc84490b9.tar.bz2
arching-kaos-tools-e799b98d24275ba5f7dd5e32e52d1a0dc84490b9.zip
Outputs a file from akfs successfully as base64
Diffstat (limited to 'c_implementation/src/ak_fs_mt.c')
-rw-r--r--c_implementation/src/ak_fs_mt.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/c_implementation/src/ak_fs_mt.c b/c_implementation/src/ak_fs_mt.c
index 7bdd6f4..e194980 100644
--- a/c_implementation/src/ak_fs_mt.c
+++ b/c_implementation/src/ak_fs_mt.c
@@ -1,5 +1,6 @@
#include <stdio.h>
#include <libakfs.h>
+#include <libaklog.h>
#include <stdlib.h>
bool ak_fs_mt_branch_is_null(mt_branch* node)
@@ -28,12 +29,19 @@ bool ak_fs_mt_branch_compare(mt_branch *a, mt_branch *b)
return false;
}
+void ak_fs_mt_branch_print(mt_branch *n)
+{
+ printf("r: %s\n", ak_fs_sha512sum_struct_read_as_string(&n->root));
+ printf("h: %s\n", ak_fs_sha512sum_struct_read_as_string(&n->head));
+ printf("t: %s\n", ak_fs_sha512sum_struct_read_as_string(&n->tail));
+}
+
int ak_fs_mt_branch_resolve(mt_branch *node)
{
const char* leafs_dir = getenv("AK_LEAFSDIR");
FILE *fd;
char *fullpath;
- asprintf(&fullpath, "%s/%s", leafs_dir, ak_fs_sha512sum_struct_read_as_string(&node->head));
+ if ( asprintf(&fullpath, "%s/%s", leafs_dir, ak_fs_sha512sum_struct_read_as_string(&node->head)) == -1 ) return -1;
fd = fopen(fullpath, "r");
if ( fd == NULL )
{
@@ -43,9 +51,14 @@ int ak_fs_mt_branch_resolve(mt_branch *node)
char buffer[258];
fread(&buffer, sizeof(buffer), 1, fd);
fclose(fd);
+ free(fullpath);
char h1[129] = {0};
char h2[129] = {0};
- if ( buffer[128] == '\n' && buffer[257] == '\n' ) printf("\\n found on the expected spot!\n");
+ if ( buffer[128] != '\n' && buffer[257] != '\n' )
+ {
+ ak_log_error(__func__, "Unknown format");
+ return 2;
+ }
mt_branch h0;
ak_fs_sha512sum_init(&h0.root);
ak_fs_sha512sum_init(&h0.head);
@@ -63,6 +76,7 @@ int ak_fs_mt_branch_resolve(mt_branch *node)
h2[128] = '\0';
ak_fs_sha512sum_string_to_struct(h1, &h0.head);
ak_fs_sha512sum_string_to_struct(h2, &h0.tail);
+ ak_fs_mt_branch_print(&h0);
ak_fs_mt_branch_resolve(&h0);
return 0;
}