aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkaotisk <kaotisk@arching-kaos.org>2025-04-29 06:16:56 +0300
committerkaotisk <kaotisk@arching-kaos.org>2025-04-29 06:16:56 +0300
commitba63ed7e423982d5bab2ab9ae8f7fda06c8ae7e2 (patch)
tree19e156128a452e3bd50599bf4b1dd240a8f2b54d
parent4610d008632410166e8ff5f1fd38f96ab352c14d (diff)
downloadarching-kaos-tools-ba63ed7e423982d5bab2ab9ae8f7fda06c8ae7e2.tar.gz
arching-kaos-tools-ba63ed7e423982d5bab2ab9ae8f7fda06c8ae7e2.tar.bz2
arching-kaos-tools-ba63ed7e423982d5bab2ab9ae8f7fda06c8ae7e2.zip
Moving in to provide an interface for it
-rw-r--r--c_implementation/src/ak_fs.c3
-rw-r--r--c_implementation/src/ak_fs_main.c9
-rw-r--r--c_implementation/src/ak_fs_mt.c15
3 files changed, 21 insertions, 6 deletions
diff --git a/c_implementation/src/ak_fs.c b/c_implementation/src/ak_fs.c
index 5643276..1a9e821 100644
--- a/c_implementation/src/ak_fs.c
+++ b/c_implementation/src/ak_fs.c
@@ -319,11 +319,14 @@ int ak_fs_cat_file_from_root_hash(sha512sum* rh)
{
ak_log_error(__func__, "File is smaller than expected. Wrong format?");
fclose(fd);
+ free(fullpath);
return 2;
}
if ( buffer[128] != '\n' || buffer[257] != '\n' )
{
ak_log_error(__func__, "Unknown format");
+ fclose(fd);
+ free(fullpath);
return 2;
}
char h_str[129] = {0};
diff --git a/c_implementation/src/ak_fs_main.c b/c_implementation/src/ak_fs_main.c
index f1660cf..6b523c7 100644
--- a/c_implementation/src/ak_fs_main.c
+++ b/c_implementation/src/ak_fs_main.c
@@ -14,14 +14,16 @@ int ak_fs_main(int argc, char** argv)
{
int option;
int logind = 0;
+ akfs_map_v3 map;
static struct option long_options[] = {
{"help", no_argument, 0, 'h'},
{"list", no_argument, 0, 'l'},
+ {"cfm", required_argument, 0, 'C'},
{0,0,0,0}
};
while(1)
{
- option = getopt_long(argc, argv, "hl", long_options, &logind);
+ option = getopt_long(argc, argv, "hlC:", long_options, &logind);
if ( option == -1 ) return ak_fs_usage();
switch(option)
{
@@ -29,6 +31,11 @@ int ak_fs_main(int argc, char** argv)
return ak_fs_usage();
case 'l':
return ak_fs_ls();
+ case 'C':
+ ak_fs_map_v3_init(&map);
+ ak_fs_sha512sum_string_to_struct(optarg, &map.mh);
+ ak_fs_map_v3_open_from_file(&map);
+ return ak_fs_cfm(&map);
default:
printf("double lol\n");
return 4;
diff --git a/c_implementation/src/ak_fs_mt.c b/c_implementation/src/ak_fs_mt.c
index d083eae..2c3414b 100644
--- a/c_implementation/src/ak_fs_mt.c
+++ b/c_implementation/src/ak_fs_mt.c
@@ -3,17 +3,17 @@
#include <libaklog.h>
#include <stdbool.h>
-bool ak_fs_mt_branch_is_null(mt_branch* node)
+bool ak_fs_mt_branch_is_null(mt_branch* n)
{
- if ( node == NULL )
+ if ( n == NULL )
{
ak_log_warning(__func__, "A NULL mt_branch* node was given");
return false;
}
if (
- ak_fs_sha512sum_is_null(&node->root) &&
- ak_fs_sha512sum_is_null(&node->head) &&
- ak_fs_sha512sum_is_null(&node->tail)
+ ak_fs_sha512sum_is_null(&n->root) &&
+ ak_fs_sha512sum_is_null(&n->head) &&
+ ak_fs_sha512sum_is_null(&n->tail)
)
{
return true;
@@ -41,6 +41,11 @@ bool ak_fs_mt_branch_compare(mt_branch *a, mt_branch *b)
void ak_fs_mt_branch_print(mt_branch *n)
{
+ if ( n == NULL )
+ {
+ ak_log_warning(__func__, "NULL mt_branch* was given");
+ return;
+ }
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));