aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-service-transport_manipulation.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/gnunet-service-transport_manipulation.c')
-rw-r--r--src/transport/gnunet-service-transport_manipulation.c81
1 files changed, 42 insertions, 39 deletions
diff --git a/src/transport/gnunet-service-transport_manipulation.c b/src/transport/gnunet-service-transport_manipulation.c
index da3fc2de9..0d087c3bd 100644
--- a/src/transport/gnunet-service-transport_manipulation.c
+++ b/src/transport/gnunet-service-transport_manipulation.c
@@ -679,47 +679,50 @@ free_tmps (void *cls,
679 * @param peer the disconnecting peer 679 * @param peer the disconnecting peer
680 */ 680 */
681void 681void
682GST_manipulation_peer_disconnect (const struct GNUNET_PeerIdentity *peer) 682GST_manipulation_peer_disconnect(const struct GNUNET_PeerIdentity *peer)
683{ 683{
684 struct TM_Peer *tmp; 684 struct TM_Peer *tmp;
685 struct DelayQueueEntry *dqe; 685 struct DelayQueueEntry *dqe;
686 struct DelayQueueEntry *next; 686 struct DelayQueueEntry *next;
687 687
688 if (NULL != (tmp = GNUNET_CONTAINER_multipeermap_get (man_handle.peers, peer))) 688 if (NULL != (tmp = GNUNET_CONTAINER_multipeermap_get(man_handle.peers, peer)))
689 { 689 {
690 next = tmp->send_head; 690 next = tmp->send_head;
691 while (NULL != (dqe = next)) 691 while (NULL != (dqe = next))
692 { 692 {
693 next = dqe->next; 693 next = dqe->next;
694 GNUNET_CONTAINER_DLL_remove (tmp->send_head, tmp->send_tail, dqe); 694 GNUNET_CONTAINER_DLL_remove(tmp->send_head, tmp->send_tail, dqe);
695 if (NULL != dqe->cont) 695 if (NULL != dqe->cont)
696 dqe->cont (dqe->cont_cls, GNUNET_SYSERR, dqe->msg_size, 0); 696 dqe->cont(dqe->cont_cls, GNUNET_SYSERR, dqe->msg_size, 0);
697 GNUNET_free (dqe); 697 GNUNET_free(dqe);
698 } 698 }
699 } 699 }
700 else if (UINT32_MAX != find_metric (&man_handle.general, GNUNET_ATS_QUALITY_NET_DELAY, TM_SEND)) 700 else if (UINT32_MAX
701 { 701 != find_metric(&man_handle.general, GNUNET_ATS_QUALITY_NET_DELAY,
702 next = generic_dqe_head; 702 TM_SEND))
703 while (NULL != (dqe = next)) 703 {
704 { 704 next = generic_dqe_head;
705 next = dqe->next; 705 while (NULL != (dqe = next))
706 if (0 == memcmp (peer, &dqe->id, sizeof (dqe->id))) 706 {
707 { 707 next = dqe->next;
708 GNUNET_CONTAINER_DLL_remove (generic_dqe_head, generic_dqe_tail, dqe); 708 if (0 == memcmp(peer, &dqe->id, sizeof(dqe->id)))
709 if (NULL != dqe->cont) 709 {
710 dqe->cont (dqe->cont_cls, GNUNET_SYSERR, dqe->msg_size, 0); 710 GNUNET_CONTAINER_DLL_remove(generic_dqe_head, generic_dqe_tail,
711 GNUNET_free (dqe); 711 dqe);
712 } 712 if (NULL != dqe->cont)
713 } 713 dqe->cont(dqe->cont_cls, GNUNET_SYSERR, dqe->msg_size, 0);
714 if (GNUNET_SCHEDULER_NO_TASK != generic_send_delay_task) 714 GNUNET_free(dqe);
715 { 715 }
716 GNUNET_SCHEDULER_cancel (generic_send_delay_task); 716 }
717 if (NULL != generic_dqe_head) 717 if (GNUNET_SCHEDULER_NO_TASK != generic_send_delay_task)
718 generic_send_delay_task = GNUNET_SCHEDULER_add_delayed ( 718 {
719 GNUNET_TIME_absolute_get_remaining(generic_dqe_head->sent_at), 719 GNUNET_SCHEDULER_cancel(generic_send_delay_task);
720 &send_delayed, generic_dqe_head); 720 if (NULL != generic_dqe_head)
721 } 721 generic_send_delay_task = GNUNET_SCHEDULER_add_delayed(
722 } 722 GNUNET_TIME_absolute_get_remaining(generic_dqe_head->sent_at),
723 &send_delayed, generic_dqe_head);
724 }
725 }
723} 726}
724 727
725 728