[Top][All Lists]
[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);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r20628 - gnunet-gtk/src/gns,
gnunet <=