diff options
-rw-r--r-- | c_implementation/include/libakfs.h | 5 | ||||
-rw-r--r-- | c_implementation/src/ak_fs.c | 80 | ||||
-rw-r--r-- | c_implementation/src/ak_fs_defuse.c | 2 | ||||
-rw-r--r-- | c_implementation/src/ak_fs_map_v3.c | 12 | ||||
-rw-r--r-- | c_implementation/src/ak_fs_maps_v3.c | 27 |
5 files changed, 44 insertions, 82 deletions
diff --git a/c_implementation/include/libakfs.h b/c_implementation/include/libakfs.h index 30ba344..60cf2e1 100644 --- a/c_implementation/include/libakfs.h +++ b/c_implementation/include/libakfs.h @@ -203,7 +203,10 @@ void ak_fs_map_v3_print_filename(akfs_map_v3*); */ void ak_fs_maps_v3_print_filenames(akfs_map_v3**, size_t); +void ak_fs_maps_v3_print_as_json(akfs_map_v3**, size_t); void ak_fs_map_v3_print_as_json(akfs_map_v3*); +void ak_fs_maps_v3_print_bif(akfs_map_v3**, size_t); +void ak_fs_map_v3_print_bif(akfs_map_v3*); /** * Unused @@ -213,7 +216,7 @@ void ak_fs_map_v3_print(akfs_map_v3*); /** * Takes an array of sha512sums (maps) and puts it in an array of maps (v3) */ -int ak_fs_map_v3_resolve_maps(akfs_map_v3**, size_t); +int ak_fs_maps_v3_resolve(akfs_map_v3**, size_t); /** * Unused diff --git a/c_implementation/src/ak_fs.c b/c_implementation/src/ak_fs.c index c037fd8..6594f2d 100644 --- a/c_implementation/src/ak_fs.c +++ b/c_implementation/src/ak_fs.c @@ -72,10 +72,8 @@ char* ak_fs_return_hash_dir(const char* str) bool ak_fs_verify_input_is_hash(const char* str, size_t len) { size_t i = 0; - printf("%s: this %lu is %lu: %s\n", __func__, i, len, str); if (len != 128) { - ak_log_debug(__func__, "Hash string length not right"); return false; } while ( str[i] != '\0' ) @@ -89,7 +87,6 @@ bool ak_fs_verify_input_is_hash(const char* str, size_t len) ) ) { - ak_log_debug(__func__, "Char out of range"); return false; } else { @@ -98,10 +95,8 @@ bool ak_fs_verify_input_is_hash(const char* str, size_t len) } if ( i > 128 ) { - ak_log_debug(__func__, "String exceeds limit"); return false; } - ak_log_debug(__func__, "String okay"); return true; } @@ -189,12 +184,10 @@ int ak_fs_convert_map_v3_string_to_struct(const char *str, size_t ssize, akfs_ma { if ( str[i] == ' ' ) { - // spaces_found++; sa[++spaces_found] = i; } if ( str[i] == '\n' ) { - // newlines_found++; na[++newlines_found] = i; } } @@ -253,64 +246,19 @@ void ak_fs_maps_v3_get_from_fs(akfs_map_v3 **ma, size_t length) d = opendir(ak_fs_maps_v3_get_dir()); akfs_map_v3 *ptr = NULL; ptr = *ma; - ak_log_debug(__func__, "gonna if"); if (d) { - ak_log_debug(__func__, "in if"); const struct dirent *dir; while((dir = readdir(d)) != NULL ) { - ak_log_debug(__func__, "in while"); - // if ( ptr >= *ma+length ) break; - printf("iMH: %s\n", dir->d_name); if (!ak_fs_verify_input_is_hash(dir->d_name, 128)) continue; ak_fs_sha512sum_string_to_struct(dir->d_name, &(ptr->mh)); ++ptr; } - ak_log_debug(__func__, "out while"); } - ak_log_debug(__func__, "out if"); closedir(d); } -int ak_fs_map_v3_resolve_maps(akfs_map_v3 **ms, size_t ms_len) -{ - akfs_map_v3 *ptr = NULL; - // char s[129] = {0}; - printf("%s: %lu\n", __func__, ms_len); - for ( ptr = *ms; ptr < *ms+ms_len; ++ptr) - { - printf("MH: %s\n", ak_fs_sha512sum_struct_read_as_string(&(ptr->mh))); - if ( ak_fs_sha512sum_is_null(&(ptr->mh)) ) - { - ak_log_debug(__func__, "map hash is null"); - continue; - } - if( ak_fs_map_v3_open_from_file(ptr) != 2) - { - ak_log_debug(__func__, "not 2"); - ++(ptr); - continue; - } - else - { - ak_log_debug(__func__, "2"); - ++(ptr); - // return 1; - } - } - return 0; -} - -// void ak_fs_print_available_maps(sha512sum **ma, size_t ma_len) -// { -// sha512sum *ptr = NULL; -// for ( ptr = *ma; ptr < *ma+ma_len; ++ptr) -// { -// ak_log_debug(__func__, ak_fs_sha512sum_struct_read_as_string(ptr)); -// } -// } - void ak_fs_init_string(char *str, size_t len) { for (size_t i = 0; i < len; ++i) @@ -319,38 +267,14 @@ void ak_fs_init_string(char *str, size_t len) } } -// void ak_fs_print_map_avail(const sha512sum* m) -// { -// printf(" .MA: %s\n", ak_fs_sha512sum_struct_read_as_string(m)); -// } -// -// void ak_fs_print_map_all_avail(sha512sum** m, size_t s) -// { -// sha512sum *ptr = NULL; -// for (ptr = *m; ptr < *m+s; ++ptr) -// { -// ak_fs_print_map_avail(ptr); -// } -// } - int ak_fs_ls() { size_t len = ak_fs_maps_v3_found_in_fs(); - printf("Found: %lu\n", len); akfs_map_v3 map_store[len]; akfs_map_v3* maps_ptr = &map_store[0]; - void* mps_start = &map_store[0]; - (void)mps_start; ak_fs_maps_v3_init(&maps_ptr, len); - // ak_fs_maps_v3_print(&maps_ptr, len); ak_fs_maps_v3_get_from_fs(&maps_ptr, len); - ak_fs_maps_v3_print(&maps_ptr, len); - ak_fs_map_v3_resolve_maps(&maps_ptr, len); - - // TODO Decide what we should be printing - // Possibly, something like "maphex(6)_filename" so we can put multiple - // files with the same name into the list - ak_fs_maps_v3_print(&maps_ptr, len); - ak_fs_maps_v3_print_filenames(&maps_ptr, len); + ak_fs_maps_v3_resolve(&maps_ptr, len); + ak_fs_maps_v3_print_bif(&maps_ptr, len); return 0; } diff --git a/c_implementation/src/ak_fs_defuse.c b/c_implementation/src/ak_fs_defuse.c index 10617cc..76514f6 100644 --- a/c_implementation/src/ak_fs_defuse.c +++ b/c_implementation/src/ak_fs_defuse.c @@ -50,7 +50,7 @@ static int akfs_fuse_readdir(const char *path, void *buf, fuse_fill_dir_t filler void* mps_start = &map_store[0]; (void)mps_start; ak_fs_maps_v3_init(&mps_ptr, ms_len); - ak_fs_map_v3_resolve_maps(&mps_ptr, ms_len); + ak_fs_maps_v3_resolve(&mps_ptr, ms_len); akfs_map_v3 *ptr = NULL; for (ptr = mps_ptr; ptr < mps_ptr + ms_len; ++ptr) { diff --git a/c_implementation/src/ak_fs_map_v3.c b/c_implementation/src/ak_fs_map_v3.c index 92bef5d..994806c 100644 --- a/c_implementation/src/ak_fs_map_v3.c +++ b/c_implementation/src/ak_fs_map_v3.c @@ -120,7 +120,7 @@ void ak_fs_map_v3_print_filename(akfs_map_v3 *map) void ak_fs_map_v3_print(akfs_map_v3 *map) { - printf("map_v3 {\n"); + printf("map_v3 {"); printf("\n .mh: "); ak_fs_map_v3_print_map_hash(map); printf("\n .oh: "); @@ -150,9 +150,17 @@ void ak_fs_map_v3_print_as_json(akfs_map_v3 *map) printf("}\n"); } +void ak_fs_map_v3_print_bif(akfs_map_v3 *map) +{ + ak_fs_map_v3_print_map_hash(map); + printf(" "); + ak_fs_map_v3_print_root_hash(map); + printf(" "); + ak_fs_map_v3_print_filename(map); +} + int ak_fs_map_v3_open_from_file(akfs_map_v3 * map) { - ak_log_debug(__func__, "Started"); if (map==0x0) { ak_log_debug(__func__, "Zeropointer"); diff --git a/c_implementation/src/ak_fs_maps_v3.c b/c_implementation/src/ak_fs_maps_v3.c index a89dd79..10b7900 100644 --- a/c_implementation/src/ak_fs_maps_v3.c +++ b/c_implementation/src/ak_fs_maps_v3.c @@ -59,6 +59,16 @@ void ak_fs_maps_v3_print_as_json(akfs_map_v3 **map_store, size_t length) } } +void ak_fs_maps_v3_print_bif(akfs_map_v3 **map_store, size_t length) +{ + akfs_map_v3 *ptr = NULL; + for ( ptr = *map_store; ptr < *map_store + length; ++ptr) + { + ak_fs_map_v3_print_bif(ptr); + printf("\n"); + } +} + size_t ak_fs_maps_v3_found_in_fs() { DIR *d; @@ -75,3 +85,20 @@ size_t ak_fs_maps_v3_found_in_fs() closedir(d); return counter; } + +int ak_fs_maps_v3_resolve(akfs_map_v3 **ms, size_t ms_len) +{ + akfs_map_v3 *ptr = NULL; + for ( ptr = *ms; ptr < *ms+ms_len; ++ptr) + { + if ( ak_fs_sha512sum_is_null(&(ptr->mh)) ) + { + continue; + } + if( ak_fs_map_v3_open_from_file(ptr) != 2) + { + continue; + } + } + return 0; +} |