diff options
author | kaotisk <kaotisk@arching-kaos.org> | 2025-04-29 06:16:56 +0300 |
---|---|---|
committer | kaotisk <kaotisk@arching-kaos.org> | 2025-04-29 06:16:56 +0300 |
commit | ba63ed7e423982d5bab2ab9ae8f7fda06c8ae7e2 (patch) | |
tree | 19e156128a452e3bd50599bf4b1dd240a8f2b54d | |
parent | 4610d008632410166e8ff5f1fd38f96ab352c14d (diff) | |
download | arching-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.c | 3 | ||||
-rw-r--r-- | c_implementation/src/ak_fs_main.c | 9 | ||||
-rw-r--r-- | c_implementation/src/ak_fs_mt.c | 15 |
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)); |