aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--c_implementation/include/libakfs.h5
-rw-r--r--c_implementation/src/ak_fs.c80
-rw-r--r--c_implementation/src/ak_fs_defuse.c2
-rw-r--r--c_implementation/src/ak_fs_map_v3.c12
-rw-r--r--c_implementation/src/ak_fs_maps_v3.c27
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;
+}