gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r12499 - gnunet gnunet/src/datastore gnunet/src/fs gnunet-g


From: gnunet
Subject: [GNUnet-SVN] r12499 - gnunet gnunet/src/datastore gnunet/src/fs gnunet-gtk/src
Date: Sun, 8 Aug 2010 11:20:41 +0200

Author: grothoff
Date: 2010-08-08 11:20:41 +0200 (Sun, 08 Aug 2010)
New Revision: 12499

Modified:
   gnunet-gtk/src/main_window_adv_pseudonym.c
   gnunet-gtk/src/main_window_file_publish.c
   gnunet/TODO
   gnunet/src/datastore/datastore.h
   gnunet/src/datastore/datastore_api.c
   gnunet/src/fs/fs_unindex.c
   gnunet/src/fs/test_fs_unindex_persistence.c
Log:
misc fixes

Modified: gnunet/TODO
===================================================================
--- gnunet/TODO 2010-08-07 21:55:10 UTC (rev 12498)
+++ gnunet/TODO 2010-08-08 09:20:41 UTC (rev 12499)
@@ -20,12 +20,10 @@
 * GNUNET-GTK: [CG]
   - bugs:
     + handle 'lost parent' case for recursive downloads (need to move 
children!)
-    + clean up TreeStores in main_window_file_publish on dialog close
-    + clean up ListStores in main_window_adv_pseudonym 
 
 0.9.0pre3:
 * Determine RC bugs and fix those!
-* DATASTORE: [NN]
+* DATASTORE: [LT]
   - GNUNET_DATASTORE_cancel method not tested [LT]
 * TESTING: [Nate]
   - test basic peer re-configure 

Modified: gnunet/src/datastore/datastore.h
===================================================================
--- gnunet/src/datastore/datastore.h    2010-08-07 21:55:10 UTC (rev 12498)
+++ gnunet/src/datastore/datastore.h    2010-08-08 09:20:41 UTC (rev 12499)
@@ -27,7 +27,7 @@
 #ifndef DATASTORE_H
 #define DATASTORE_H
 
-#define DEBUG_DATASTORE GNUNET_NO
+#define DEBUG_DATASTORE GNUNET_YES
 
 #include "gnunet_util_lib.h"
 

Modified: gnunet/src/datastore/datastore_api.c
===================================================================
--- gnunet/src/datastore/datastore_api.c        2010-08-07 21:55:10 UTC (rev 
12498)
+++ gnunet/src/datastore/datastore_api.c        2010-08-08 09:20:41 UTC (rev 
12499)
@@ -682,11 +682,11 @@
   if (msg == NULL)
     {      
       free_queue_entry (qe);
+      if (NULL == h->client)
+       return; /* forced disconnect */
       rc.cont (rc.cont_cls, 
               GNUNET_SYSERR,
               _("Failed to receive response from database."));
-      if (NULL == h->client)
-       return; /* forced disconnect */
       if (was_transmitted == GNUNET_YES)
        do_disconnect (h);
       return;

Modified: gnunet/src/fs/fs_unindex.c
===================================================================
--- gnunet/src/fs/fs_unindex.c  2010-08-07 21:55:10 UTC (rev 12498)
+++ gnunet/src/fs/fs_unindex.c  2010-08-08 09:20:41 UTC (rev 12499)
@@ -31,6 +31,7 @@
 #include "fs.h"
 #include "fs_tree.h"
 
+#define DEBUG_UNINDEX GNUNET_NO
 
 /**
  * Function called by the tree encoder to obtain
@@ -172,6 +173,10 @@
       signal_unindex_error (uc);
       return;
     }  
+#if DEBUG_UNINDEX
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Datastore REMOVE operation succeeded\n");
+#endif
   GNUNET_FS_tree_encoder_next (uc->tc);
 }
 
@@ -214,6 +219,10 @@
       odb.file_id = uc->file_id;
       data = &odb;
     }
+#if DEBUG_UNINDEX
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Sending REMOVE request to DATASTORE service\n");
+#endif
   GNUNET_DATASTORE_remove (uc->dsh,
                           query,
                           size,
@@ -320,6 +329,10 @@
       signal_unindex_error (uc);
       return;
     }
+#if DEBUG_UNINDEX
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Sending UNINDEX message to FS service\n");
+#endif
   req.header.size = htons (sizeof (struct UnindexMessage));
   req.header.type = htons (GNUNET_MESSAGE_TYPE_FS_UNINDEX);
   req.reserved = 0;

Modified: gnunet/src/fs/test_fs_unindex_persistence.c
===================================================================
--- gnunet/src/fs/test_fs_unindex_persistence.c 2010-08-07 21:55:10 UTC (rev 
12498)
+++ gnunet/src/fs/test_fs_unindex_persistence.c 2010-08-08 09:20:41 UTC (rev 
12499)
@@ -84,11 +84,17 @@
 abort_unindex_task (void *cls,
                    const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-  GNUNET_FS_unindex_stop (unindex);
-  unindex = NULL;
-  GNUNET_DISK_directory_remove (fn);
-  GNUNET_free (fn);
-  fn = NULL;
+  if (unindex != NULL)
+    {
+      GNUNET_FS_unindex_stop (unindex);
+      unindex = NULL;
+    }
+  if (fn != NULL)
+    {
+      GNUNET_DISK_directory_remove (fn);
+      GNUNET_free (fn);
+      fn = NULL;
+    }
 }
 
 

Modified: gnunet-gtk/src/main_window_adv_pseudonym.c
===================================================================
--- gnunet-gtk/src/main_window_adv_pseudonym.c  2010-08-07 21:55:10 UTC (rev 
12498)
+++ gnunet-gtk/src/main_window_adv_pseudonym.c  2010-08-08 09:20:41 UTC (rev 
12499)
@@ -27,13 +27,56 @@
 static GtkBuilder *builder;
 
 
-
+/**
+ * Canonicalize spelling of currently selected keyword.
+ */
 void
 GNUNET_GTK_advertise_pseudonym_keyword_list_normalize_button_clicked_cb ()
 {
-  GNUNET_break (0);
+  GtkTreeView *tv;
+  GtkTreeSelection *sel;
+  GtkTreeModel *tm;
+  GtkTreeIter iter;
+  char *value;
+  struct GNUNET_FS_Uri *uri;
+  struct GNUNET_FS_Uri *uri;
+  char *nvalue;
+  char *emsg;
+
+  tv = GTK_TREE_VIEW (gtk_builder_get_object (builder,
+                                             
"GNUNET_GTK_advertise_pseudonym_keyword_list_tree_view"));
+  sel = gtk_tree_view_get_selection (tv);
+  if (TRUE != gtk_tree_selection_get_selected (sel, &tm, &iter))
+    {
+      GNUNET_break (0);
+      return;
+    }
+  gtk_tree_model_get (tm, &iter,
+                     0, &value,
+                     -1);
+  emsg = NULL;
+  uri = GNUNET_FS_uri_ksk_create (value, &emsg);
+  if (uri == NULL)
+    {
+      GNUNET_break (0);
+      GNUNET_free (emsg);
+      return;
+    }
+  nuri = GNUNET_FS_uri_ksk_canonicalize (uri);
+  nvalue = GNUNET_FS_uri_ksk_to_string_fancy (nuri);
+  gtk_tree_model_set (tm, &iter,
+                     0, nvalue,
+                     -1);
+  GNUNET_FS_uri_destroy (nuri);
+  GNUNET_FS_uri_destroy (uri);
+  GNUNET_free (nvalue);
+  GNUNET_free (value);
 }
 
+
+/**
+ * Remove the currently selected keyword from the list.
+ */
 void
 GNUNET_GTK_advertise_pseudonym_keyword_list_del_button_clicked_cb ()
 {
@@ -54,6 +97,10 @@
                         &iter);
 }
 
+
+/**
+ * Add keyword from entry line to keyword list.
+ */ 
 void
 GNUNET_GTK_advertise_pseudonym_keyword_list_add_button_clicked_cb ()
 {
@@ -73,6 +120,9 @@
 }
 
 
+/**
+ * Update sensitivity of keyword add button.
+ */
 void
 GNUNET_GTK_advertise_pseudonym_keyword_entry_changed_cb ()
 {
@@ -89,7 +139,9 @@
                            (strlen (keyword) > 0) ? TRUE : FALSE);
 }
 
-
+/**
+ * Update sensitivity of metadata delete button.
+ */
 static void
 metadata_selection_changed_cb (GtkTreeSelection *ts,
                               gpointer user_data)
@@ -108,6 +160,9 @@
 }
 
 
+/**
+ * Update sensitivity of keyword delete and normalize button.
+ */
 static void
 keyword_selection_changed_cb (GtkTreeSelection *ts,
                              gpointer user_data)
@@ -131,6 +186,9 @@
 }
 
 
+/**
+ * Update sensitivity of metadata add button.
+ */
 void
 GNUNET_GTK_advertise_pseudonym_metadata_value_entry_changed_cb ()
 {  
@@ -155,6 +213,9 @@
 }
 
 
+/**
+ * Add keyword to keyword list.
+ */
 void
 GNUNET_GTK_advertise_pseudonym_keyword_entry_activate_cb ()
 {
@@ -168,6 +229,9 @@
   GNUNET_break (0);
 }
 
+/**
+ * Delete currently selected item from meta data list.
+ */
 void
 GNUNET_GTK_advertise_pseudonym_metadata_delete_button_clicked_cb()
 {
@@ -189,6 +253,9 @@
 }
 
 
+/**
+ * Add metadata to metadata list.
+ */
 void
 GNUNET_GTK_advertise_pseudonym_metadata_add_button_clicked_cb ()
 {
@@ -316,9 +383,6 @@
 }
 
 
-
-
-
 /**
  * Advertise pseudonym selected.
  */
@@ -328,6 +392,7 @@
 {
   GtkWidget *ad;
   struct GNUNET_FS_Namespace *ns;
+  struct GNUNET_FS_Namespace *nso;
   GtkListStore *ls;
   GtkTreeView *tv;
   GtkTreeIter iter;
@@ -377,7 +442,20 @@
                      &iter,
                      1, &ns,
                      -1);
-  /* FIXME: free all namespaces from list store except "ns" */
+  /* free all namespaces from list store except "ns" */
+  if (TRUE ==
+      gtk_tree_model_get_iter_first (tm, &iter))
+    {
+      do
+       {
+         gtk_tree_model_get (tm, &iter,
+                             1, &nso,
+                             -1);
+         if (ns != nso)
+           GNUNET_FS_namespace_delete (nso, GNUNET_NO);
+       }
+      while (TRUE == gtk_tree_model_iter_next (tm, &iter));
+    }
   gtk_widget_destroy (ad);
   g_object_unref (G_OBJECT (builder));
   builder = NULL;
@@ -481,6 +559,7 @@
                                 expiration,
                                 root,
                                 NULL, NULL);
+  GNUNET_FS_namespace_delete (ns, GNUNET_NO);
   GNUNET_CONTAINER_meta_data_destroy (nm);
   if (NULL != uri)
     GNUNET_FS_uri_destroy (uri);

Modified: gnunet-gtk/src/main_window_file_publish.c
===================================================================
--- gnunet-gtk/src/main_window_file_publish.c   2010-08-07 21:55:10 UTC (rev 
12498)
+++ gnunet-gtk/src/main_window_file_publish.c   2010-08-08 09:20:41 UTC (rev 
12499)
@@ -1112,6 +1112,9 @@
   gtk_tree_model_get (tm, iter,
                      5, &fi,
                      -1);
+  gtk_tree_model_set (tm, iter,
+                     5, NULL,
+                     -1);
   GNUNET_assert (fi != NULL);
   if (gtk_tree_model_iter_children (tm, &child, iter))
     {
@@ -1292,6 +1295,71 @@
 }
 
 
+static void
+free_pseudonym_tree_store (GtkTreeModel *tm,
+                          GtkTreeIter *iter)
+{
+  struct GNUNET_FS_Uri *uri;
+  struct GNUNET_CONTAINER_MetaData *meta;
+  struct GNUNET_FS_Namespace *ns;
+  GtkTreeIter child;
+
+  gtk_tree_model_get (tm,
+                     iter,
+                     1, &ns,
+                     3, &uri,
+                     4, &meta,
+                     -1);
+  if (uri != NULL)
+    GNUNET_FS_uri_destroy (uri);
+  if (meta != NULL)
+    GNUNET_CONTAINER_meta_data_destroy (meta);
+  if (ns != NULL)
+    {
+      // FIXME: delete ns?
+      // GNUNET_FS_namespace_delete (nso, GNUNET_NO);
+    }
+  if (TRUE ==
+      gtk_tree_model_iter_children (tm, &child, iter))
+    {
+      do 
+       {
+         free_pseudonym_tree_store (tm,
+                                    &child);
+       }
+      while (TRUE == gtk_tree_model_iter_next (tm,
+                                              &child));
+    }
+}
+
+
+static void
+free_file_information_tree_store (GtkTreeModel *tm,
+                                 GtkTreeIter *iter)
+{
+  GtkTreeIter child;
+  struct GNUNET_FS_FileInformation *fip;
+
+  gtk_tree_model_get (tm,
+                     iter,
+                     5, &fip,
+                     -1);
+  if (fip != NULL)
+    GNUNET_FS_file_information_destroy (fip, NULL, NULL);
+  if (TRUE ==
+      gtk_tree_model_iter_children (tm, &child, iter))
+    {
+      do 
+       {
+         free_file_information_tree_store (tm,
+                                           &child);
+       }
+      while (TRUE == gtk_tree_model_iter_next (tm,
+                                              &child));
+    }
+}
+
+
 /**
  */
 void
@@ -1367,8 +1435,30 @@
       GNUNET_free_non_null (namespace_uid);
       GNUNET_free_non_null (namespace_id);      
     }  
-  /* FIXME: free state from 'ls' */
-  /* FIXME: free state from 'tm' */
+  /* free state from 'ptm' */
+  if (TRUE ==
+      gtk_tree_model_get_iter_first (ptm,
+                                    &iter))
+    do 
+      {
+       free_pseudonym_tree_store (ptm,
+                                  &iter);
+      }
+    while (TRUE == gtk_tree_model_iter_next (ptm,
+                                            &iter));
+  
+  /* free state from 'tm' */
+  if (TRUE ==
+      gtk_tree_model_get_iter_first (tm,
+                                    &iter))
+    do 
+      {
+       free_file_information_tree_store (tm,
+                                         &iter);
+      }
+    while (TRUE == gtk_tree_model_iter_next (tm,
+                                            &iter));
+
   gtk_widget_destroy (ad);
   g_object_unref (G_OBJECT (master_builder));
   master_builder = NULL;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]