gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r20628 - gnunet-gtk/src/gns


From: gnunet
Subject: [GNUnet-SVN] r20628 - gnunet-gtk/src/gns
Date: Tue, 20 Mar 2012 11:47:21 +0100

Author: wachs
Date: 2012-03-20 11:47:21 +0100 (Tue, 20 Mar 2012)
New Revision: 20628

Modified:
   gnunet-gtk/src/gns/gnunet-gns-gtk.c
Log:
- namestore check


Modified: gnunet-gtk/src/gns/gnunet-gns-gtk.c
===================================================================
--- gnunet-gtk/src/gns/gnunet-gns-gtk.c 2012-03-20 08:42:59 UTC (rev 20627)
+++ gnunet-gtk/src/gns/gnunet-gns-gtk.c 2012-03-20 10:47:21 UTC (rev 20628)
@@ -92,7 +92,8 @@
 {
 
   struct GNUNET_GNS_Context *gns = cls;
-  GNUNET_assert (gns != NULL);
+  if (NULL == gns)
+    return;
   if (NULL != gns->ns)
   {
     GNUNET_NAMESTORE_disconnect (gns->ns, GNUNET_NO);
@@ -113,11 +114,11 @@
 
 
 void
-GNUNET_GNS_GTK_shutdown (void *user_data)
+GNUNET_GNS_GTK_shutdown (struct GNUNET_GNS_Context *gns)
 {
   GNUNET_GTK_tray_icon_destroy ();
   GNUNET_GTK_main_loop_quit (ml);
-  GNUNET_SCHEDULER_add_now (&shutdown_task, user_data);
+  GNUNET_SCHEDULER_add_now (&shutdown_task, gns);
 }
 
 
@@ -315,43 +316,84 @@
                 gint       response_id,
                 gpointer   user_data)
 {
-  struct GNUNET_GNS_Context *gns = user_data;
-  GNUNET_GNS_GTK_shutdown (gns);
+  gtk_widget_destroy (GTK_WIDGET(dialog));
+  GNUNET_GNS_GTK_shutdown (user_data);
 }
 
 static void
 namestore_service_check (void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
 {
-  struct GNUNET_GNS_Context *gns = cls;
+  struct GNUNET_GNS_Context *gns = NULL;
   struct GNUNET_CRYPTO_ShortHashAsciiEncoded shenc;
+  GtkWidget *dialog;
   char *label;
+  char *keyfile;
 
   if ((tc->reason & GNUNET_SCHEDULER_REASON_TIMEOUT) != 0)
   {
    char * message = _("Namestore service is not running!\n");
-   GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-              message);
-   GtkWidget *dialog, *label, *content_area;
-   dialog = gtk_dialog_new_with_buttons (_("ERROR"),
-                                         GTK_WINDOW (main_window),
-                                         GTK_DIALOG_DESTROY_WITH_PARENT,
-                                         GTK_STOCK_OK,
-                                         GTK_RESPONSE_NONE,
-                                         NULL);
-   content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
-   label = gtk_label_new (message);
-   /* Ensure that the dialog box is destroyed when the user responds. */
-   g_signal_connect_swapped (dialog,
-                             "response",
-                             G_CALLBACK(close_error_box),
-                             gns);
-   /* Add the label, and show everything we've added to the dialog. */
-   gtk_container_add (GTK_CONTAINER (content_area), label);
+   GNUNET_log (GNUNET_ERROR_TYPE_ERROR, message);
+   dialog = gtk_message_dialog_new (GTK_WINDOW (main_window),
+                                    GTK_DIALOG_DESTROY_WITH_PARENT,
+                                    GTK_MESSAGE_ERROR,
+                                    GTK_BUTTONS_CLOSE,
+                                    "%s",
+                                    message);
+
+   g_signal_connect (dialog, "response", G_CALLBACK(close_error_box), gns);
    gtk_widget_show_all (dialog);
    return;
   }
 
+  /* setup crypto keys */
+  gns = GNUNET_malloc (sizeof (struct GNUNET_GNS_Context));
+  if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (get_configuration 
(),
+                                                            "gns",
+                                                            "ZONEKEY",
+                                                            &keyfile))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                _("Option `%s' missing in section `%s'\n"), "ZONEKEY", "gns");
+    return;
+  }
+  else
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using `%s'\n", keyfile);
+  gns->pkey = GNUNET_CRYPTO_rsa_key_create_from_file (keyfile);
+  GNUNET_free (keyfile);
+  keyfile = NULL;
+  if (NULL == gns->pkey)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                _("Failed to read or create private zone key\n"));
+    return;
+  }
+  GNUNET_CRYPTO_rsa_key_get_public (gns->pkey, &gns->pubkey);
+  GNUNET_CRYPTO_short_hash (&gns->pubkey,
+                            sizeof (struct 
GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded),
+                            &gns->zone);
   GNUNET_CRYPTO_short_hash_to_enc(&gns->zone, &shenc);
+
+  /* connect to namestore */
+  gns->ns = GNUNET_NAMESTORE_connect (get_configuration ());
+  if (NULL == gns->ns)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                _("Failed to connect to namestore\n"));
+    GNUNET_SCHEDULER_add_now (&shutdown_task, gns);
+    return;
+  }
+
+  /* setup gui */
+  if (GNUNET_OK != GNUNET_GTK_main_loop_build_window (ml, gns))
+  {
+    GNUNET_break (0);
+    GNUNET_SCHEDULER_add_now (&shutdown_task, gns);
+    return;
+  }
+  gns->builder = GNUNET_GTK_main_loop_get_builder(ml);
+  gns->ts  = GTK_TREE_STORE (gtk_builder_get_object (gns->builder, 
"GNUNET_GNS_GTK_treestore"));
+  gns->ls =  GTK_LIST_STORE (gtk_builder_get_object (gns->builder, 
"GNUNET_GNS_GTK_type_liststore"));
+
   zone_as_string = GNUNET_strdup ((char *) &shenc);
   label = g_markup_printf_escaped (_("<b>Editing zone %s</b>"),
                                   zone_as_string);
@@ -363,7 +405,6 @@
   GNUNET_GTK_setup_nls ();
   /* setup main window */
   main_window = GTK_WIDGET (get_object ("GNUNET_GNS_GTK_main_window"));
-  //gtk_window_maximize (GTK_WINDOW (main_window));
   GNUNET_GTK_tray_icon_create (GTK_WINDOW (main_window),
                               "gnunet-gtk" /* FIXME: different icon? */ ,
                               "gnunet-gns-gtk");
@@ -387,57 +428,8 @@
 static void
 run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-  struct GNUNET_GNS_Context *gns = GNUNET_malloc (sizeof (struct 
GNUNET_GNS_Context));
-  char *keyfile;
-
   ml = cls;
-  if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (get_configuration 
(),
-                                                           "gns",
-                                                           "ZONEKEY",
-                                                           &keyfile))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-               _("Option `%s' missing in section `%s'\n"),
-               "ZONEKEY", "gns");
-    return;
-  }
-  else
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                "Using `%s'\n", keyfile);
-  gns->pkey = GNUNET_CRYPTO_rsa_key_create_from_file (keyfile);
-  GNUNET_free (keyfile);
-  keyfile = NULL;
-  if (NULL == gns->pkey)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-               _("Failed to read or create private zone key\n"));
-    return;
-  }
-  GNUNET_CRYPTO_rsa_key_get_public (gns->pkey, &gns->pubkey);
-  GNUNET_CRYPTO_short_hash (&gns->pubkey, sizeof (struct 
GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded), &gns->zone);
-
-
-  gns->ns = GNUNET_NAMESTORE_connect (get_configuration ());
-  if (NULL == gns->ns)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-               _("Failed to connect to namestore\n"));
-    GNUNET_SCHEDULER_add_now (&shutdown_task, gns);
-    return;
-  }
-
-  if (GNUNET_OK != GNUNET_GTK_main_loop_build_window (ml, gns))
-  {
-    GNUNET_break (0);
-    GNUNET_SCHEDULER_add_now (&shutdown_task, gns);
-    return;
-  }
-  gns->builder = GNUNET_GTK_main_loop_get_builder(ml);
-  gns->ts  = GTK_TREE_STORE (gtk_builder_get_object (gns->builder, 
"GNUNET_GNS_GTK_treestore"));
-  gns->ls =  GTK_LIST_STORE (gtk_builder_get_object (gns->builder, 
"GNUNET_GNS_GTK_type_liststore"));
-  GNUNET_assert (NULL != gns->ts);
-
-  GNUNET_CLIENT_service_test("namestore", get_configuration(), 
GNUNET_TIME_UNIT_SECONDS, &namestore_service_check, gns);
+  GNUNET_CLIENT_service_test("namestore", get_configuration(), 
GNUNET_TIME_UNIT_SECONDS, &namestore_service_check, NULL);
 }
 
 




reply via email to

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