Update simplestore to use a standard port number.
[bluesky.git] / bluesky / inode.c
index 7ace60d..cabaa34 100644 (file)
@@ -95,6 +95,7 @@ BlueSkyFS *bluesky_new_fs(gchar *name)
 
     fs->log_state = g_new0(BlueSkyCloudLogState, 1);
     fs->log_state->data = g_string_new("");
+    fs->log_state->latest_cleaner_seq_seen = -1;
 
     bluesky_cloudlog_threads_init(fs);
     fs->inode_fetch_thread_pool = g_thread_pool_new(inode_fetch_task, NULL,
@@ -104,9 +105,13 @@ BlueSkyFS *bluesky_new_fs(gchar *name)
     return fs;
 }
 
-BlueSkyFS *bluesky_init_fs(gchar *name, BlueSkyStore *store)
+BlueSkyFS *bluesky_init_fs(gchar *name, BlueSkyStore *store,
+                           const gchar *master_key)
 {
     BlueSkyFS *fs = bluesky_new_fs(name);
+    fs->master_key = g_strdup(master_key);
+    fs->keys = g_new(BlueSkyCryptKeys, 1);
+    bluesky_crypt_derive_keys(fs->keys, master_key);
     fs->store = store;
     fs->log = bluesky_log_new("journal");
     fs->log->fs = fs;
@@ -127,6 +132,8 @@ BlueSkyFS *bluesky_init_fs(gchar *name, BlueSkyStore *store)
         bluesky_inode_do_sync(root);
     }
 
+    bluesky_cleaner_thread_launch(fs);
+
     return fs;
 }
 
@@ -355,6 +362,8 @@ static void inode_fetch_task(gpointer a, gpointer b)
 {
     BlueSkyInode *inode = (BlueSkyInode *)a;
 
+    bluesky_profile_set((BlueSkyProfile *)inode->private_data);
+
     BlueSkyCloudLog *item = inode->committed_item;
     inode->committed_item = NULL;
     g_print("Completing fetch of inode %"PRIu64"...\n", inode->inum);
@@ -400,5 +409,6 @@ void bluesky_inode_fetch(BlueSkyFS *fs, uint64_t inum)
     bluesky_cloudlog_ref(entry->item);
     bluesky_insert_inode(fs, inode);
 
+    inode->private_data = bluesky_profile_get();
     g_thread_pool_push(fs->inode_fetch_thread_pool, inode, NULL);
 }