aboutsummaryrefslogtreecommitdiff
path: root/src/transport/test_transport_api_restart_1peer.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-11-06 23:28:30 +0000
committerChristian Grothoff <christian@grothoff.org>2015-11-06 23:28:30 +0000
commit17bca33cca3c06668aa07c2750000a40a229c4a3 (patch)
tree70a1ad9c2506b4ca50b19fa0b387b46ab0b9b2e5 /src/transport/test_transport_api_restart_1peer.c
parentbfe1f56580a066da971887c9beea44c890d26dd6 (diff)
downloadgnunet-17bca33cca3c06668aa07c2750000a40a229c4a3.tar.gz
gnunet-17bca33cca3c06668aa07c2750000a40a229c4a3.zip
-removing last uses of TRANSPORT_try_connect API
Diffstat (limited to 'src/transport/test_transport_api_restart_1peer.c')
-rw-r--r--src/transport/test_transport_api_restart_1peer.c134
1 files changed, 65 insertions, 69 deletions
diff --git a/src/transport/test_transport_api_restart_1peer.c b/src/transport/test_transport_api_restart_1peer.c
index 0e91fa68f..2c4382e9c 100644
--- a/src/transport/test_transport_api_restart_1peer.c
+++ b/src/transport/test_transport_api_restart_1peer.c
@@ -1,6 +1,6 @@
1/* 1/*
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2009, 2010 Christian Grothoff (and other contributing authors) 3 Copyright (C) 2009, 2010, 2015 Christian Grothoff (and other contributing authors)
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published 6 it under the terms of the GNU General Public License as published
@@ -45,11 +45,11 @@ static char *test_name;
45 45
46static int ok; 46static int ok;
47 47
48static struct GNUNET_SCHEDULER_Task * die_task; 48static struct GNUNET_SCHEDULER_Task *die_task;
49 49
50static struct GNUNET_SCHEDULER_Task * send_task; 50static struct GNUNET_SCHEDULER_Task *send_task;
51 51
52static struct GNUNET_SCHEDULER_Task * reconnect_task; 52static struct GNUNET_ATS_ConnectivitySuggestHandle *ats_sh;
53 53
54static struct PeerContext *p1; 54static struct PeerContext *p1;
55 55
@@ -59,7 +59,7 @@ static struct PeerContext *p2;
59 59
60static int p2_connected; 60static int p2_connected;
61 61
62static struct GNUNET_TRANSPORT_TESTING_ConnectRequest * cc; 62static struct GNUNET_TRANSPORT_TESTING_ConnectRequest *cc;
63 63
64static struct GNUNET_TRANSPORT_TransmitHandle *th; 64static struct GNUNET_TRANSPORT_TransmitHandle *th;
65 65
@@ -75,105 +75,101 @@ static int restarted;
75static void 75static void
76end () 76end ()
77{ 77{
78 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping peers\n"); 78 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
79 "Stopping peers\n");
79 80
80 if (send_task != NULL) 81 if (NULL != send_task)
82 {
81 GNUNET_SCHEDULER_cancel (send_task); 83 GNUNET_SCHEDULER_cancel (send_task);
82 send_task = NULL; 84 send_task = NULL;
83 85 }
84 if (reconnect_task != NULL) 86 if (NULL != ats_sh)
85 GNUNET_SCHEDULER_cancel (reconnect_task); 87 {
86 reconnect_task = NULL; 88 GNUNET_ATS_connectivity_suggest_cancel (ats_sh);
87 89 ats_sh = NULL;
88 if (die_task != NULL) 90 }
91 if (NULL != die_task)
92 {
89 GNUNET_SCHEDULER_cancel (die_task); 93 GNUNET_SCHEDULER_cancel (die_task);
90 die_task = NULL; 94 die_task = NULL;
91 95 }
92 if (th != NULL) 96 if (NULL != th)
97 {
93 GNUNET_TRANSPORT_notify_transmit_ready_cancel (th); 98 GNUNET_TRANSPORT_notify_transmit_ready_cancel (th);
94 th = NULL; 99 th = NULL;
95 100 }
96 GNUNET_TRANSPORT_TESTING_stop_peer (tth, p1); 101 if (NULL != p1)
97 p1 = NULL; 102 {
98 GNUNET_TRANSPORT_TESTING_stop_peer (tth, p2); 103 GNUNET_TRANSPORT_TESTING_stop_peer (tth, p1);
99 p2 = NULL; 104 p1 = NULL;
105 }
106 if (NULL != p2)
107 {
108 GNUNET_TRANSPORT_TESTING_stop_peer (tth, p2);
109 p2 = NULL;
110 }
100} 111}
101 112
113
102static void 114static void
103end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 115end_badly (void *cls,
116 const struct GNUNET_SCHEDULER_TaskContext *tc)
104{ 117{
105 die_task = NULL; 118 die_task = NULL;
106 119
107 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n"); 120 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
121 "Fail! Stopping peers\n");
108 122
109 if (restarted == GNUNET_YES) 123 if (restarted == GNUNET_YES)
110 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Peer was restarted\n"); 124 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
125 "Peer was restarted\n");
111 126
112 if (restarted == GNUNET_NO) 127 if (restarted == GNUNET_NO)
113 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Peer was NOT restarted\n"); 128 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
114 129 "Peer was NOT restarted\n");
115 if (reconnect_task != NULL) 130 if (NULL != cc)
116 GNUNET_SCHEDULER_cancel (reconnect_task);
117 reconnect_task = NULL;
118
119 if (send_task != NULL)
120 GNUNET_SCHEDULER_cancel (send_task);
121 send_task = NULL;
122
123 if (cc != NULL)
124 { 131 {
125 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Fail! Could not connect peers\n")); 132 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
133 _("Fail! Could not connect peers\n"));
126 GNUNET_TRANSPORT_TESTING_connect_peers_cancel (tth, cc); 134 GNUNET_TRANSPORT_TESTING_connect_peers_cancel (tth, cc);
127 cc = NULL; 135 cc = NULL;
128 } 136 }
129 137 end ();
130 if (th != NULL)
131 GNUNET_TRANSPORT_notify_transmit_ready_cancel (th);
132 th = NULL;
133
134 if (p1 != NULL)
135 GNUNET_TRANSPORT_TESTING_stop_peer (tth, p1);
136 if (p2 != NULL)
137 GNUNET_TRANSPORT_TESTING_stop_peer (tth, p2);
138
139 ok = GNUNET_SYSERR; 138 ok = GNUNET_SYSERR;
140} 139}
141 140
142static void
143reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
144{
145 struct PeerContext *p = cls;
146
147 reconnect_task = NULL;
148
149 GNUNET_TRANSPORT_try_connect (p->th, &p2->id, NULL, NULL); /*FIXME TRY_CONNECT change */
150 reconnect_task =
151 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &reconnect, p);
152}
153 141
154static void 142static void
155restart_cb (struct PeerContext *p, void *cls) 143restart_cb (struct PeerContext *p, void *cls)
156{ 144{
157
158 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 145 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
159 "Restarted peer %u (`%4s'), issuing reconnect\n", p->no, 146 "Restarted peer %u (`%4s'), issuing reconnect\n",
147 p->no,
160 GNUNET_i2s (&p->id)); 148 GNUNET_i2s (&p->id));
161 149 ats_sh = GNUNET_ATS_connectivity_suggest (p->ats,
162 reconnect_task = GNUNET_SCHEDULER_add_now (&reconnect, p); 150 &p2->id,
151 1);
163} 152}
164 153
154
165static void 155static void
166restart (struct PeerContext *p, char *cfg_file) 156restart (struct PeerContext *p,
157 const char *cfg_file)
167{ 158{
168 GNUNET_assert (p != NULL); 159 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
169 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Restarting peer %u (`%4s')\n", p->no, 160 "Restarting peer %u (`%4s')\n",
161 p->no,
170 GNUNET_i2s (&p->id)); 162 GNUNET_i2s (&p->id));
171 GNUNET_TRANSPORT_TESTING_restart_peer (tth, p, cfg_file, &restart_cb, p); 163 GNUNET_TRANSPORT_TESTING_restart_peer (p,
172 return; 164 cfg_file,
165 &restart_cb,
166 p);
173} 167}
174 168
169
175static void 170static void
176notify_receive (void *cls, const struct GNUNET_PeerIdentity *peer, 171notify_receive (void *cls,
172 const struct GNUNET_PeerIdentity *peer,
177 const struct GNUNET_MessageHeader *message) 173 const struct GNUNET_MessageHeader *message)
178{ 174{
179 struct PeerContext *p = cls; 175 struct PeerContext *p = cls;