ssb.js is now entirely in C. Usual disclaimers about it not being amazingly well tested.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4111 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2023-01-08 20:01:35 +00:00
parent 53e4f4341c
commit 69253432b8
9 changed files with 359 additions and 460 deletions

View File

@ -1102,6 +1102,34 @@ const char** tf_ssb_db_following_deep(tf_ssb_t* ssb, const char** ids, int count
return (const char**)result;
}
typedef struct _identities_t
{
const char** ids;
int count;
} identities_t;
static void _add_identity(const char* identity, void* user_data)
{
identities_t* identities = user_data;
char full_id[k_id_base64_len];
snprintf(full_id, sizeof(full_id), "@%s", identity);
identities->ids = tf_resize_vec(identities->ids, sizeof(const char*) * (identities->count + 1));
identities->ids[identities->count++] = tf_strdup(full_id);
}
const char** tf_ssb_db_get_all_visible_identities(tf_ssb_t* ssb, int depth)
{
identities_t identities = { 0 };
tf_ssb_db_identity_visit_all(ssb, _add_identity, &identities);
const char** following = tf_ssb_db_following_deep(ssb, identities.ids, identities.count, depth);
for (int i = 0; i < identities.count; i++)
{
tf_free((void*)identities.ids[i]);
}
tf_free(identities.ids);
return following;
}
static void _test_private(sqlite3* db, const uint8_t* private_key)
{
sqlite3_stmt* statement = NULL;