aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-10-17 11:15:09 +0000
committerChristian Grothoff <christian@grothoff.org>2011-10-17 11:15:09 +0000
commit19ce2475eadcc6f140a0da73d7afe272aab3e109 (patch)
tree5dceacf0c62006d08a9acbbf29b89803106895d6 /src/core
parent8c89248aa6ab5db7d0f88d95bfc151635d3f8b52 (diff)
downloadgnunet-19ce2475eadcc6f140a0da73d7afe272aab3e109.tar.gz
gnunet-19ce2475eadcc6f140a0da73d7afe272aab3e109.zip
try to connect more than just once
Diffstat (limited to 'src/core')
-rw-r--r--src/core/test_core_api_reliability.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/core/test_core_api_reliability.c b/src/core/test_core_api_reliability.c
index 1ae67b02b..a55409e69 100644
--- a/src/core/test_core_api_reliability.c
+++ b/src/core/test_core_api_reliability.c
@@ -63,6 +63,8 @@ static struct GNUNET_TIME_Absolute start_time;
63 63
64static GNUNET_SCHEDULER_TaskIdentifier err_task; 64static GNUNET_SCHEDULER_TaskIdentifier err_task;
65 65
66static GNUNET_SCHEDULER_TaskIdentifier connect_task;
67
66 68
67struct PeerContext 69struct PeerContext
68{ 70{
@@ -125,6 +127,8 @@ terminate_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
125 p1.ch = NULL; 127 p1.ch = NULL;
126 GNUNET_CORE_disconnect (p2.ch); 128 GNUNET_CORE_disconnect (p2.ch);
127 p2.ch = NULL; 129 p2.ch = NULL;
130 if (connect_task != GNUNET_SCHEDULER_NO_TASK)
131 GNUNET_SCHEDULER_cancel (connect_task);
128 GNUNET_TRANSPORT_disconnect (p1.th); 132 GNUNET_TRANSPORT_disconnect (p1.th);
129 p1.th = NULL; 133 p1.th = NULL;
130 GNUNET_TRANSPORT_disconnect (p2.th); 134 GNUNET_TRANSPORT_disconnect (p2.th);
@@ -152,6 +156,8 @@ terminate_task_error (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
152 GNUNET_CORE_disconnect (p2.ch); 156 GNUNET_CORE_disconnect (p2.ch);
153 p2.ch = NULL; 157 p2.ch = NULL;
154 } 158 }
159 if (connect_task != GNUNET_SCHEDULER_NO_TASK)
160 GNUNET_SCHEDULER_cancel (connect_task);
155 if (p1.th != NULL) 161 if (p1.th != NULL)
156 { 162 {
157 GNUNET_TRANSPORT_get_hello_cancel (p1.ghh); 163 GNUNET_TRANSPORT_get_hello_cancel (p1.ghh);
@@ -168,6 +174,14 @@ terminate_task_error (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
168} 174}
169 175
170 176
177static void
178try_connect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
179{
180 connect_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
181 &try_connect, NULL);
182 GNUNET_TRANSPORT_try_connect (p1.th, &p2.id);
183}
184
171static size_t 185static size_t
172transmit_ready (void *cls, size_t size, void *buf) 186transmit_ready (void *cls, size_t size, void *buf)
173{ 187{
@@ -389,7 +403,7 @@ init_notify (void *cls, struct GNUNET_CORE_Handle *server,
389 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 403 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
390 "Asking transport (1) to connect to peer `%4s'\n", 404 "Asking transport (1) to connect to peer `%4s'\n",
391 GNUNET_i2s (&p2.id)); 405 GNUNET_i2s (&p2.id));
392 GNUNET_TRANSPORT_try_connect (p1.th, &p2.id); 406 connect_task = GNUNET_SCHEDULER_add_now (&try_connect, NULL);
393 } 407 }
394} 408}
395 409