gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r15868 - gnunet-setup/src


From: gnunet
Subject: [GNUnet-SVN] r15868 - gnunet-setup/src
Date: Thu, 7 Jul 2011 11:34:13 +0200

Author: grothoff
Date: 2011-07-07 11:34:13 +0200 (Thu, 07 Jul 2011)
New Revision: 15868

Modified:
   gnunet-setup/src/gnunet-setup-transport-tcp.c
Log:
run with scheduler

Modified: gnunet-setup/src/gnunet-setup-transport-tcp.c
===================================================================
--- gnunet-setup/src/gnunet-setup-transport-tcp.c       2011-07-07 09:30:02 UTC 
(rev 15867)
+++ gnunet-setup/src/gnunet-setup-transport-tcp.c       2011-07-07 09:34:13 UTC 
(rev 15868)
@@ -29,7 +29,7 @@
 /**
  * How long do we wait for the NAT test to report success?
  */
-#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5)
+#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 1)
 
 /**
  * Handle to the active NAT test.
@@ -53,19 +53,12 @@
 result_callback (void *cls,
                 int success)
 {
-  GtkWidget *w;
+  int *ok = cls;
 
-  if (GNUNET_SCHEDULER_NO_TASK != tsk)    
-    {
-      GNUNET_SCHEDULER_cancel (tsk);
-      tsk = GNUNET_SCHEDULER_NO_TASK;
-    }
-  w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                         
"GNUNET_setup_transport_tcp_test_success_image"));
-  gtk_widget_show (w);
-  w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                         
"GNUNET_setup_transport_tcp_test_fail_image"));
-  gtk_widget_hide (w);
+  *ok = success;
+
+  GNUNET_SCHEDULER_cancel (tsk);
+  tsk = GNUNET_SCHEDULER_NO_TASK;
   GNUNET_NAT_test_stop (tst);
   tst = NULL;
 }
@@ -82,39 +75,31 @@
 fail_timeout (void *cls,
              const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-  GtkWidget *w;
+  int *ok = cls;
 
+  *ok = GNUNET_NO;
   tsk = GNUNET_SCHEDULER_NO_TASK;
   GNUNET_NAT_test_stop (tst);
   tst = NULL;
-  w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                         
"GNUNET_setup_transport_tcp_test_success_image"));
-  gtk_widget_hide (w);
-  w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                         
"GNUNET_setup_transport_tcp_test_fail_image"));
-  gtk_widget_show (w);
 }
 
 
 /**
- * Function called whenever the user wants to test the
- * TCP configuration.
+ * Main function for the NAT test.
+ *
+ * @param cls the 'int*' for the result
+ * @param tc scheduler context
  */
-void
-GNUNET_setup_transport_tcp_test_button_clicked_cb ()
+static void 
+test (void *cls,
+      const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
+  int *ok = cls;
   unsigned long long bnd_port;
   unsigned long long adv_port;
-  GtkWidget *w;
 
-  if (NULL != tst)
-    {
-      GNUNET_NAT_test_stop (tst);
-      tst = NULL;
-    }
-  w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                         
"GNUNET_setup_transport_tcp_test_success_image"));
-  gtk_widget_hide (w);
+  GNUNET_assert (NULL != cfg);
+  GNUNET_RESOLVER_connect (cfg);
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_number (cfg, 
                                             "transport-tcp",
@@ -130,27 +115,64 @@
                                             "ADVERTISED_PORT",
                                             &adv_port))
     adv_port = bnd_port;
+  tsk = GNUNET_SCHEDULER_add_delayed (TIMEOUT,
+                                     &fail_timeout,
+                                     ok);
   tst = GNUNET_NAT_test_start (cfg,
                               GNUNET_YES,
                               (uint16_t) bnd_port,
                               (uint16_t) adv_port,
                               &result_callback,
-                              NULL);
-  if (NULL == tst)
+                              ok);
+}
+
+/**
+ * Function called whenever the user wants to test the
+ * TCP configuration.
+ */
+void
+GNUNET_setup_transport_tcp_test_button_clicked_cb ()
+{
+  GtkWidget *w;
+  int ok;
+  struct GNUNET_OS_Process *resolver;
+
+  if (NULL != tst)
     {
+      GNUNET_NAT_test_stop (tst);
+      tst = NULL;
+    }
+  w = GTK_WIDGET (gtk_builder_get_object (builder,
+                                         
"GNUNET_setup_transport_tcp_test_success_image"));
+  gtk_widget_hide (w);
+  resolver = GNUNET_OS_start_process (NULL, NULL,
+                                     "gnunet-service-resolver", 
+                                     "gnunet-service-resolver", NULL);
+  ok = GNUNET_NO;
+  GNUNET_SCHEDULER_run (&test, &ok);
+  if (NULL != resolver)
+    {
+      GNUNET_break (0 == GNUNET_OS_process_kill (resolver, SIGTERM));
+      GNUNET_OS_process_close (resolver);
+    }
+  if (GNUNET_YES != ok)
+    {
       w = GTK_WIDGET (gtk_builder_get_object (builder,
                                              
"GNUNET_setup_transport_tcp_test_fail_image"));
       gtk_widget_show (w);
-      return;
+      w = GTK_WIDGET (gtk_builder_get_object (builder,
+                                             
"GNUNET_setup_transport_tcp_test_success_image"));
+      gtk_widget_hide (w);
     }
-  w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                         
"GNUNET_setup_transport_tcp_test_fail_image"));
-  gtk_widget_hide (w);
-  if (GNUNET_SCHEDULER_NO_TASK != tsk)    
-    GNUNET_SCHEDULER_cancel (tsk);
-  tsk = GNUNET_SCHEDULER_add_delayed (TIMEOUT,
-                                     &fail_timeout,
-                                     NULL);
+  else
+    {
+      w = GTK_WIDGET (gtk_builder_get_object (builder,
+                                             
"GNUNET_setup_transport_tcp_test_fail_image"));
+      gtk_widget_hide (w);
+      w = GTK_WIDGET (gtk_builder_get_object (builder,
+                                             
"GNUNET_setup_transport_tcp_test_success_image"));
+      gtk_widget_show (w);
+    }
 }
 
 




reply via email to

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