aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2011-10-12 16:22:01 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2011-10-12 16:22:01 +0000
commit4cb7ba24d6bfa8c701902050c373a5ba29813d0e (patch)
treecce0e37d7bfd99853cc545c9aea2a4b39815b44d
parenta00198eb1bc4e9da858d9ac513ebe30ccef941a1 (diff)
downloadgnunet-4cb7ba24d6bfa8c701902050c373a5ba29813d0e.tar.gz
gnunet-4cb7ba24d6bfa8c701902050c373a5ba29813d0e.zip
safety check
-rw-r--r--src/transport/plugin_transport_udp.c34
1 files changed, 6 insertions, 28 deletions
diff --git a/src/transport/plugin_transport_udp.c b/src/transport/plugin_transport_udp.c
index 1e0f6e686..adb9277c4 100644
--- a/src/transport/plugin_transport_udp.c
+++ b/src/transport/plugin_transport_udp.c
@@ -625,8 +625,10 @@ udp_plugin_send (void *cls, const struct GNUNET_PeerIdentity *target,
625 } 625 }
626 626
627 LOG (GNUNET_ERROR_TYPE_DEBUG, 627 LOG (GNUNET_ERROR_TYPE_DEBUG,
628 "UDP transmits %u-byte message to `%s' using address `%s' session 0x%X mode %i\n", 628 "UDP transmits %u-byte message to `%s' using address `%s' session 0x%X mode %i\n",
629 msgbuf_size, GNUNET_i2s (target), udp_address_to_string (NULL, addr, addrlen), session, force_address); 629 msgbuf_size, GNUNET_i2s (target),
630 udp_address_to_string (NULL, addr, addrlen),
631 session, force_address);
630 632
631 if ((force_address == GNUNET_SYSERR) && (session == NULL)) 633 if ((force_address == GNUNET_SYSERR) && (session == NULL))
632 return GNUNET_SYSERR; 634 return GNUNET_SYSERR;
@@ -635,33 +637,9 @@ udp_plugin_send (void *cls, const struct GNUNET_PeerIdentity *target,
635 if ((session != NULL) && (addr != NULL) && (addrlen != 0)) 637 if ((session != NULL) && (addr != NULL) && (addrlen != 0))
636 { 638 {
637 s = session; 639 s = session;
638 /* session timed out */ 640 GNUNET_assert (GNUNET_YES == GNUNET_CONTAINER_multihashmap_contains_value (
639 /* 641 plugin->inbound_sessions, &target->hashPubKey, s));
640 if (GNUNET_TIME_absolute_get().abs_value > s->valid_until.abs_value)
641 {
642 LOG (GNUNET_ERROR_TYPE_ERROR,
643 "UDP Session %X is invalid %u\n", session, force_address);
644
645 plugin->env->session_end (plugin->env->cls, &s->target, s);
646 GNUNET_CONTAINER_multihashmap_remove (plugin->inbound_sessions, &s->target.hashPubKey, s);
647
648 if (s->invalidation_task != GNUNET_SCHEDULER_NO_TASK)
649 {
650 if (s->invalidation_task != GNUNET_SCHEDULER_NO_TASK)
651 GNUNET_SCHEDULER_cancel(s->invalidation_task);
652 642
653 }
654 GNUNET_free (s);
655 if ((force_address != GNUNET_SYSERR) && (addr != NULL) && (addrlen != 0))
656 {
657 LOG (GNUNET_ERROR_TYPE_ERROR,
658 "goto session_invalid: %X %u %s\n", addr, addrlen, udp_address_to_string(NULL, addr, addrlen));
659 goto session_invalid;
660 }
661 LOG (GNUNET_ERROR_TYPE_ERROR,
662 "return GNUNET_SYSERR;\n");
663 return GNUNET_SYSERR;
664 }*/
665 if (0 != memcmp (&s->target, target, sizeof (struct GNUNET_PeerIdentity))) 643 if (0 != memcmp (&s->target, target, sizeof (struct GNUNET_PeerIdentity)))
666 return GNUNET_SYSERR; 644 return GNUNET_SYSERR;
667 switch (addrlen) 645 switch (addrlen)