aboutsummaryrefslogtreecommitdiff
path: root/src/transport/transport_api2_address.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/transport_api2_address.c')
-rw-r--r--src/transport/transport_api2_address.c52
1 files changed, 19 insertions, 33 deletions
diff --git a/src/transport/transport_api2_address.c b/src/transport/transport_api2_address.c
index 1ff599efb..d2cab27d5 100644
--- a/src/transport/transport_api2_address.c
+++ b/src/transport/transport_api2_address.c
@@ -31,7 +31,8 @@
31#include "gnunet_ats_transport_service.h" 31#include "gnunet_ats_transport_service.h"
32#include "transport.h" 32#include "transport.h"
33 33
34#define LOG(kind,...) GNUNET_log_from (kind, "transport-api-address",__VA_ARGS__) 34#define LOG(kind, ...) \
35 GNUNET_log_from (kind, "transport-api-address", __VA_ARGS__)
35 36
36 37
37/** 38/**
@@ -60,7 +61,6 @@ struct GNUNET_TRANSPORT_AddressHandle
60 * Delay until we try to reconnect. 61 * Delay until we try to reconnect.
61 */ 62 */
62 struct GNUNET_TIME_Relative reconnect_delay; 63 struct GNUNET_TIME_Relative reconnect_delay;
63
64}; 64};
65 65
66 66
@@ -84,8 +84,7 @@ disconnect_and_schedule_reconnect (struct GNUNET_TRANSPORT_AddressHandle *h);
84 * @param error error code 84 * @param error error code
85 */ 85 */
86static void 86static void
87mq_error_handler (void *cls, 87mq_error_handler (void *cls, enum GNUNET_MQ_Error error)
88 enum GNUNET_MQ_Error error)
89{ 88{
90 struct GNUNET_TRANSPORT_AddressHandle *h = cls; 89 struct GNUNET_TRANSPORT_AddressHandle *h = cls;
91 90
@@ -104,19 +103,13 @@ static void
104reconnect (void *cls) 103reconnect (void *cls)
105{ 104{
106 struct GNUNET_TRANSPORT_AddressHandle *h = cls; 105 struct GNUNET_TRANSPORT_AddressHandle *h = cls;
107 struct GNUNET_MQ_MessageHandler handlers[] = { 106 struct GNUNET_MQ_MessageHandler handlers[] = {GNUNET_MQ_handler_end ()};
108 GNUNET_MQ_handler_end ()
109 };
110 107
111 h->reconnect_task = NULL; 108 h->reconnect_task = NULL;
112 LOG (GNUNET_ERROR_TYPE_DEBUG, 109 LOG (GNUNET_ERROR_TYPE_DEBUG, "Connecting to transport service.\n");
113 "Connecting to transport service.\n");
114 GNUNET_assert (NULL == h->mq); 110 GNUNET_assert (NULL == h->mq);
115 h->mq = GNUNET_CLIENT_connect (h->cfg, 111 h->mq =
116 "transport", 112 GNUNET_CLIENT_connect (h->cfg, "transport", handlers, &mq_error_handler, h);
117 handlers,
118 &mq_error_handler,
119 h);
120} 113}
121 114
122 115
@@ -149,12 +142,9 @@ disconnect_and_schedule_reconnect (struct GNUNET_TRANSPORT_AddressHandle *h)
149 disconnect (h); 142 disconnect (h);
150 LOG (GNUNET_ERROR_TYPE_DEBUG, 143 LOG (GNUNET_ERROR_TYPE_DEBUG,
151 "Scheduling task to reconnect to transport service in %s.\n", 144 "Scheduling task to reconnect to transport service in %s.\n",
152 GNUNET_STRINGS_relative_time_to_string (h->reconnect_delay, 145 GNUNET_STRINGS_relative_time_to_string (h->reconnect_delay, GNUNET_YES));
153 GNUNET_YES));
154 h->reconnect_task = 146 h->reconnect_task =
155 GNUNET_SCHEDULER_add_delayed (h->reconnect_delay, 147 GNUNET_SCHEDULER_add_delayed (h->reconnect_delay, &reconnect, h);
156 &reconnect,
157 h);
158 h->reconnect_delay = GNUNET_TIME_STD_BACKOFF (h->reconnect_delay); 148 h->reconnect_delay = GNUNET_TIME_STD_BACKOFF (h->reconnect_delay);
159} 149}
160 150
@@ -173,8 +163,7 @@ GNUNET_TRANSPORT_address_connect (const struct GNUNET_CONFIGURATION_Handle *cfg)
173 h = GNUNET_new (struct GNUNET_TRANSPORT_AddressHandle); 163 h = GNUNET_new (struct GNUNET_TRANSPORT_AddressHandle);
174 h->cfg = cfg; 164 h->cfg = cfg;
175 h->reconnect_delay = GNUNET_TIME_UNIT_ZERO; 165 h->reconnect_delay = GNUNET_TIME_UNIT_ZERO;
176 LOG (GNUNET_ERROR_TYPE_DEBUG, 166 LOG (GNUNET_ERROR_TYPE_DEBUG, "Connecting to transport service\n");
177 "Connecting to transport service\n");
178 reconnect (h); 167 reconnect (h);
179 if (NULL == h->mq) 168 if (NULL == h->mq)
180 { 169 {
@@ -191,10 +180,10 @@ GNUNET_TRANSPORT_address_connect (const struct GNUNET_CONFIGURATION_Handle *cfg)
191 * @param handle handle to the service as returned from #GNUNET_TRANSPORT_address_connect() 180 * @param handle handle to the service as returned from #GNUNET_TRANSPORT_address_connect()
192 */ 181 */
193void 182void
194GNUNET_TRANSPORT_address_disconnect (struct GNUNET_TRANSPORT_AddressHandle *handle) 183GNUNET_TRANSPORT_address_disconnect (
184 struct GNUNET_TRANSPORT_AddressHandle *handle)
195{ 185{
196 LOG (GNUNET_ERROR_TYPE_DEBUG, 186 LOG (GNUNET_ERROR_TYPE_DEBUG, "Transport disconnect called!\n");
197 "Transport disconnect called!\n");
198 /* this disconnects all neighbours... */ 187 /* this disconnects all neighbours... */
199 disconnect (handle); 188 disconnect (handle);
200 /* and now we stop trying to connect again... */ 189 /* and now we stop trying to connect again... */
@@ -233,17 +222,14 @@ GNUNET_TRANSPORT_address_try (struct GNUNET_TRANSPORT_AddressHandle *ch,
233 struct GNUNET_MQ_Envelope *env; 222 struct GNUNET_MQ_Envelope *env;
234 struct GNUNET_TRANSPORT_AddressToVerify *hdr; 223 struct GNUNET_TRANSPORT_AddressToVerify *hdr;
235 224
236 env = GNUNET_MQ_msg_extra (hdr, 225 env =
237 raw_size, 226 GNUNET_MQ_msg_extra (hdr,
238 GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_CONSIDER_VERIFY); 227 raw_size,
228 GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_CONSIDER_VERIFY);
239 hdr->peer = *pid; 229 hdr->peer = *pid;
240 memcpy (&hdr[1], 230 memcpy (&hdr[1], raw, raw_size);
241 raw, 231 GNUNET_MQ_send (ch->mq, env);
242 raw_size);
243 GNUNET_MQ_send (ch->mq,
244 env);
245} 232}
246 233
247 234
248
249/* end of transport_api2_address.c */ 235/* end of transport_api2_address.c */