[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r11013 - gnunet/src/hostlist
From: |
gnunet |
Subject: |
[GNUnet-SVN] r11013 - gnunet/src/hostlist |
Date: |
Wed, 21 Apr 2010 17:01:46 +0200 |
Author: wachs
Date: 2010-04-21 17:01:45 +0200 (Wed, 21 Apr 2010)
New Revision: 11013
Modified:
gnunet/src/hostlist/hostlist-client.c
gnunet/src/hostlist/test_gnunet_daemon_hostlist_learning.c
Log:
Modified: gnunet/src/hostlist/hostlist-client.c
===================================================================
--- gnunet/src/hostlist/hostlist-client.c 2010-04-21 14:17:20 UTC (rev
11012)
+++ gnunet/src/hostlist/hostlist-client.c 2010-04-21 15:01:45 UTC (rev
11013)
@@ -1168,11 +1168,19 @@
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
_("No `%s' specified in `%s' configuration, cannot load
hostlists from file.\n"),
"HOSTLISTFILE", "HOSTLIST");
+ GNUNET_free ( filename );
return;
}
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
_("Loading saved hostlist entries from file `%s' \n"), filename);
+ if ( GNUNET_NO == GNUNET_DISK_file_test (filename) )
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ _("Hostlist file `%s' is not existing\n"), filename);
+ if ( NULL != filename ) GNUNET_free ( filename );
+ return;
+ }
struct GNUNET_BIO_ReadHandle * rh = GNUNET_BIO_read_open (filename);
if (NULL == rh)
@@ -1181,7 +1189,7 @@
_("Could not open file `%s' for reading to load hostlists:
%s\n"),
filename,
STRERROR (errno));
- GNUNET_free (filename);
+ if ( NULL != filename ) GNUNET_free (filename);
return;
}
Modified: gnunet/src/hostlist/test_gnunet_daemon_hostlist_learning.c
===================================================================
--- gnunet/src/hostlist/test_gnunet_daemon_hostlist_learning.c 2010-04-21
14:17:20 UTC (rev 11012)
+++ gnunet/src/hostlist/test_gnunet_daemon_hostlist_learning.c 2010-04-21
15:01:45 UTC (rev 11013)
@@ -30,7 +30,7 @@
#include "gnunet_resolver_service.h"
#include "gnunet_statistics_service.h"
-#define VERBOSE GNUNET_YES
+#define VERBOSE GNUNET_NO
#define START_ARM GNUNET_YES
#define MAX_URL_LEN 1000
@@ -71,9 +71,62 @@
static struct PeerContext learn_peer;
+
static void
-clean_up (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+waitpid_task (void *cls,
+ const struct GNUNET_SCHEDULER_TaskContext *tc)
{
+ struct PeerContext *p = cls;
+
+#if START_ARM
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Killing ARM process.\n");
+ if (0 != PLIBC_KILL (p->arm_pid, SIGTERM))
+ GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
+ if (GNUNET_OS_process_wait(p->arm_pid) != GNUNET_OK)
+ GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "waitpid");
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "ARM process %u stopped\n", p->arm_pid);
+#endif
+ GNUNET_CONFIGURATION_destroy (p->cfg);
+}
+
+
+static void
+stop_cb (void *cls,
+ int success)
+{
+ struct PeerContext *p = cls;
+
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ success
+ ? "ARM stopped core service\n"
+ : "ARM failed to stop core service\n");
+ GNUNET_ARM_disconnect (p->arm);
+ p->arm = NULL;
+ /* make sure this runs after all other tasks are done */
+ GNUNET_SCHEDULER_add_delayed (sched,
+ GNUNET_TIME_UNIT_SECONDS,
+ &waitpid_task, p);
+}
+
+
+static void shutdown_testcase()
+{
+ if (timeout_task != GNUNET_SCHEDULER_NO_TASK)
+ {
+ GNUNET_SCHEDULER_cancel (sched,
+ timeout_task);
+ timeout_task = GNUNET_SCHEDULER_NO_TASK;
+ }
+ if (check_task != GNUNET_SCHEDULER_NO_TASK)
+ {
+ GNUNET_SCHEDULER_cancel (sched,
+ check_task);
+ check_task = GNUNET_SCHEDULER_NO_TASK;
+ }
+ if ( NULL != current_adv_uri ) GNUNET_free (current_adv_uri);
+
if (adv_peer.th != NULL)
{
GNUNET_TRANSPORT_disconnect (adv_peer.th);
@@ -94,28 +147,18 @@
GNUNET_CORE_disconnect (learn_peer.core);
learn_peer.core = NULL;
}
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Asking ARM to stop core services\n");
+ learn_peer.arm = GNUNET_ARM_connect (learn_peer.cfg, sched, NULL);
+ GNUNET_ARM_stop_service (learn_peer.arm, "core", GNUNET_TIME_UNIT_SECONDS,
+ &stop_cb, &learn_peer);
+ adv_peer.arm = GNUNET_ARM_connect (adv_peer.cfg, sched, NULL);
+ GNUNET_ARM_stop_service (adv_peer.arm, "core", GNUNET_TIME_UNIT_SECONDS,
+ &stop_cb, &adv_peer);
+
GNUNET_SCHEDULER_shutdown (sched);
}
-static void shutdown_testcase()
-{
- if (timeout_task != GNUNET_SCHEDULER_NO_TASK)
- {
- GNUNET_SCHEDULER_cancel (sched,
- timeout_task);
- timeout_task = GNUNET_SCHEDULER_NO_TASK;
- }
- if (check_task != GNUNET_SCHEDULER_NO_TASK)
- {
- GNUNET_SCHEDULER_cancel (sched,
- check_task);
- check_task = GNUNET_SCHEDULER_NO_TASK;
- }
- if ( NULL != current_adv_uri ) GNUNET_free (current_adv_uri);
- GNUNET_SCHEDULER_add_now (sched,
- &clean_up, NULL);
-}
-
/**
* Timeout, give up.
*/
@@ -179,6 +222,7 @@
return GNUNET_OK;
}
+
/**
* Check the server statistics regularly
*/
@@ -347,70 +391,7 @@
GNUNET_assert ( NULL != p->stats );
}
-
-
static void
-waitpid_task (void *cls,
- const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
- struct PeerContext *p = cls;
-
-#if START_ARM
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Killing ARM process.\n");
- if (0 != PLIBC_KILL (p->arm_pid, SIGTERM))
- GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
- if (GNUNET_OS_process_wait(p->arm_pid) != GNUNET_OK)
- GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "waitpid");
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "ARM process %u stopped\n", p->arm_pid);
-#endif
- GNUNET_CONFIGURATION_destroy (p->cfg);
-}
-
-
-static void
-stop_cb (void *cls,
- int success)
-{
- struct PeerContext *p = cls;
-
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- success
- ? "ARM stopped core service\n"
- : "ARM failed to stop core service\n");
- GNUNET_ARM_disconnect (p->arm);
- p->arm = NULL;
- /* make sure this runs after all other tasks are done */
- GNUNET_SCHEDULER_add_delayed (sched,
- GNUNET_TIME_UNIT_SECONDS,
- &waitpid_task, p);
-}
-
-
-static void
-stop_arm (struct PeerContext *p)
-{
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Asking ARM to stop core service\n");
- p->arm = GNUNET_ARM_connect (p->cfg, sched, NULL);
- GNUNET_ARM_stop_service (p->arm, "core", GNUNET_TIME_UNIT_SECONDS,
- &stop_cb, p);
-}
-
-
-/**
- * Try again to connect to transport service.
- */
-static void
-shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
- stop_arm (&adv_peer);
- stop_arm (&learn_peer);
-}
-
-
-static void
run (void *cls,
struct GNUNET_SCHEDULER_Handle *s,
char *const *args,
@@ -430,10 +411,7 @@
CHECK_INTERVALL,
&check_statistics,
NULL);
- GNUNET_SCHEDULER_add_delayed (sched,
- GNUNET_TIME_UNIT_FOREVER_REL,
- &shutdown_task,
- NULL);
+
setup_adv_peer (&adv_peer, "test_learning_adv_peer.conf");
setup_learn_peer (&learn_peer, "test_learning_learn_peer.conf");
}
@@ -442,6 +420,7 @@
static int
check ()
{
+ unsigned int failed;
char *const argv[] = { "test-gnunet-daemon-hostlist",
"-c", "learning_data.conf",
#if VERBOSE
@@ -457,38 +436,43 @@
argv, "test-gnunet-daemon-hostlist",
"nohelp", options, &run, NULL);
+ failed = GNUNET_NO;
+
if (timeout == GNUNET_YES)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Testcase could not set up two communicating peers,
timeout\n");
- return GNUNET_YES;
+ failed = GNUNET_YES;
}
if (adv_arrived == GNUNET_NO)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Learning peer did not recieve advertisement from server\n");
- return GNUNET_YES;
+ failed = GNUNET_YES;
}
if ( learned_hostlist_saved == GNUNET_NO )
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Advertisement hostlist was not saved in datastore\n");
- return GNUNET_YES;
+ "Advertised hostlist was not saved in datastore\n");
+ failed = GNUNET_YES;
}
if (learned_hostlist_downloaded == GNUNET_NO)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Advertisement hostlist could not be downloaded from
server\n");
- return GNUNET_YES;
+ "Advertised hostlist could not be downloaded from server\n");
+ failed = GNUNET_YES;
}
if (adv_sent == GNUNET_NO)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Advertisement was not sent from server to client\n");
- return GNUNET_YES;
+ "Advertised was not sent from server to client\n");
+ failed = GNUNET_YES;
}
- return GNUNET_NO;
+ if ( GNUNET_YES == failed )
+ return GNUNET_YES;
+ else
+ return GNUNET_NO;
}
int
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r11013 - gnunet/src/hostlist,
gnunet <=