diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/dv/plugin_transport_dv.c | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/src/dv/plugin_transport_dv.c b/src/dv/plugin_transport_dv.c index 4baabe12e..d3187664a 100644 --- a/src/dv/plugin_transport_dv.c +++ b/src/dv/plugin_transport_dv.c | |||
@@ -117,6 +117,8 @@ struct Session | |||
117 | */ | 117 | */ |
118 | struct PendingRequest *pr_tail; | 118 | struct PendingRequest *pr_tail; |
119 | 119 | ||
120 | struct GNUNET_HELLO_Address *address; | ||
121 | |||
120 | /** | 122 | /** |
121 | * To whom are we talking to. | 123 | * To whom are we talking to. |
122 | */ | 124 | */ |
@@ -191,10 +193,7 @@ notify_distance_change (struct Session *session) | |||
191 | ats.type = htonl ((uint32_t) GNUNET_ATS_QUALITY_NET_DISTANCE); | 193 | ats.type = htonl ((uint32_t) GNUNET_ATS_QUALITY_NET_DISTANCE); |
192 | ats.value = htonl (session->distance); | 194 | ats.value = htonl (session->distance); |
193 | plugin->env->update_address_metrics (plugin->env->cls, | 195 | plugin->env->update_address_metrics (plugin->env->cls, |
194 | &session->sender, | 196 | session->address, session, &ats, 1); |
195 | NULL, 0, | ||
196 | session, | ||
197 | &ats, 1); | ||
198 | } | 197 | } |
199 | 198 | ||
200 | 199 | ||
@@ -224,14 +223,10 @@ unbox_cb (void *cls, | |||
224 | ntohs (message->size), | 223 | ntohs (message->size), |
225 | GNUNET_i2s (&session->sender)); | 224 | GNUNET_i2s (&session->sender)); |
226 | 225 | ||
227 | plugin->env->receive (plugin->env->cls, | 226 | plugin->env->receive (plugin->env->cls, session->address, session, |
228 | &session->sender, | 227 | message); |
229 | message, | ||
230 | session, "", 0); | ||
231 | plugin->env->update_address_metrics (plugin->env->cls, | 228 | plugin->env->update_address_metrics (plugin->env->cls, |
232 | &session->sender, NULL, | 229 | session->address, session, &ats, 1); |
233 | 0, session, | ||
234 | &ats, 1); | ||
235 | return GNUNET_OK; | 230 | return GNUNET_OK; |
236 | } | 231 | } |
237 | 232 | ||
@@ -285,13 +280,9 @@ handle_dv_message_received (void *cls, | |||
285 | ntohs (msg->type), | 280 | ntohs (msg->type), |
286 | ntohs (msg->size), | 281 | ntohs (msg->size), |
287 | GNUNET_i2s (sender)); | 282 | GNUNET_i2s (sender)); |
288 | plugin->env->receive (plugin->env->cls, sender, | 283 | plugin->env->receive (plugin->env->cls, session->address, session, msg); |
289 | msg, | ||
290 | session, "", 0); | ||
291 | plugin->env->update_address_metrics (plugin->env->cls, | 284 | plugin->env->update_address_metrics (plugin->env->cls, |
292 | sender, "", | 285 | session->address, session, &ats, 1); |
293 | 0, session, | ||
294 | &ats, 1); | ||
295 | } | 286 | } |
296 | 287 | ||
297 | 288 | ||
@@ -335,6 +326,8 @@ handle_dv_connect (void *cls, | |||
335 | } | 326 | } |
336 | 327 | ||
337 | session = GNUNET_new (struct Session); | 328 | session = GNUNET_new (struct Session); |
329 | session->address = GNUNET_HELLO_address_allocate (peer, PLUGIN_NAME, | ||
330 | NULL, 0, GNUNET_HELLO_ADDRESS_INFO_NONE); | ||
338 | session->sender = *peer; | 331 | session->sender = *peer; |
339 | session->plugin = plugin; | 332 | session->plugin = plugin; |
340 | session->distance = distance; | 333 | session->distance = distance; |
@@ -356,9 +349,7 @@ handle_dv_connect (void *cls, | |||
356 | ats[1].type = htonl (GNUNET_ATS_NETWORK_TYPE); | 349 | ats[1].type = htonl (GNUNET_ATS_NETWORK_TYPE); |
357 | ats[1].value = htonl ((uint32_t) network); | 350 | ats[1].value = htonl ((uint32_t) network); |
358 | session->active = GNUNET_YES; | 351 | session->active = GNUNET_YES; |
359 | plugin->env->session_start (plugin->env->cls, peer, | 352 | plugin->env->session_start (plugin->env->cls, session->address, |
360 | PLUGIN_NAME, | ||
361 | NULL, 0, | ||
362 | session, ats, 2); | 353 | session, ats, 2); |
363 | } | 354 | } |
364 | 355 | ||
@@ -440,6 +431,7 @@ free_session (struct Session *session) | |||
440 | pr->size, 0); | 431 | pr->size, 0); |
441 | GNUNET_free (pr); | 432 | GNUNET_free (pr); |
442 | } | 433 | } |
434 | GNUNET_HELLO_address_free (session->address); | ||
443 | GNUNET_free (session); | 435 | GNUNET_free (session); |
444 | } | 436 | } |
445 | 437 | ||