aboutsummaryrefslogtreecommitdiff
path: root/src/transport/transport_api.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/transport_api.c')
-rw-r--r--src/transport/transport_api.c31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/transport/transport_api.c b/src/transport/transport_api.c
index 47bdef88e..dca9b4b78 100644
--- a/src/transport/transport_api.c
+++ b/src/transport/transport_api.c
@@ -743,6 +743,8 @@ demultiplexer (void *cls,
743 if (size < sizeof (struct ConnectInfoMessage)) 743 if (size < sizeof (struct ConnectInfoMessage))
744 { 744 {
745 GNUNET_break (0); 745 GNUNET_break (0);
746 h->reconnecting = GNUNET_YES;
747 disconnect_and_schedule_reconnect (h);
746 break; 748 break;
747 } 749 }
748 cim = (const struct ConnectInfoMessage *) msg; 750 cim = (const struct ConnectInfoMessage *) msg;
@@ -750,6 +752,8 @@ demultiplexer (void *cls,
750 sizeof (struct ConnectInfoMessage)) 752 sizeof (struct ConnectInfoMessage))
751 { 753 {
752 GNUNET_break (0); 754 GNUNET_break (0);
755 h->reconnecting = GNUNET_YES;
756 disconnect_and_schedule_reconnect (h);
753 break; 757 break;
754 } 758 }
755 LOG (GNUNET_ERROR_TYPE_DEBUG, 759 LOG (GNUNET_ERROR_TYPE_DEBUG,
@@ -759,6 +763,8 @@ demultiplexer (void *cls,
759 if (NULL != n) 763 if (NULL != n)
760 { 764 {
761 GNUNET_break (0); 765 GNUNET_break (0);
766 h->reconnecting = GNUNET_YES;
767 disconnect_and_schedule_reconnect (h);
762 break; 768 break;
763 } 769 }
764 n = neighbour_add (h, 770 n = neighbour_add (h,
@@ -777,6 +783,8 @@ demultiplexer (void *cls,
777 if (size != sizeof (struct DisconnectInfoMessage)) 783 if (size != sizeof (struct DisconnectInfoMessage))
778 { 784 {
779 GNUNET_break (0); 785 GNUNET_break (0);
786 h->reconnecting = GNUNET_YES;
787 disconnect_and_schedule_reconnect (h);
780 break; 788 break;
781 } 789 }
782 dim = (const struct DisconnectInfoMessage *) msg; 790 dim = (const struct DisconnectInfoMessage *) msg;
@@ -788,6 +796,8 @@ demultiplexer (void *cls,
788 if (NULL == n) 796 if (NULL == n)
789 { 797 {
790 GNUNET_break (0); 798 GNUNET_break (0);
799 h->reconnecting = GNUNET_YES;
800 disconnect_and_schedule_reconnect (h);
791 break; 801 break;
792 } 802 }
793 neighbour_delete (h, 803 neighbour_delete (h,
@@ -798,6 +808,8 @@ demultiplexer (void *cls,
798 if (size != sizeof (struct SendOkMessage)) 808 if (size != sizeof (struct SendOkMessage))
799 { 809 {
800 GNUNET_break (0); 810 GNUNET_break (0);
811 h->reconnecting = GNUNET_YES;
812 disconnect_and_schedule_reconnect (h);
801 break; 813 break;
802 } 814 }
803 okm = (const struct SendOkMessage *) msg; 815 okm = (const struct SendOkMessage *) msg;
@@ -811,9 +823,11 @@ demultiplexer (void *cls,
811 &okm->peer); 823 &okm->peer);
812 if (NULL == n) 824 if (NULL == n)
813 { 825 {
814 /* we should never get a 'SEND_OK' for a peer that we are not 826 /* We should never get a 'SEND_OK' for a peer that we are not
815 connected to */ 827 connected to */
816 GNUNET_break (0); 828 GNUNET_break (0);
829 h->reconnecting = GNUNET_YES;
830 disconnect_and_schedule_reconnect (h);
817 break; 831 break;
818 } 832 }
819 if (bytes_physical >= bytes_msg) 833 if (bytes_physical >= bytes_msg)
@@ -847,6 +861,8 @@ demultiplexer (void *cls,
847 sizeof (struct InboundMessage) + sizeof (struct GNUNET_MessageHeader)) 861 sizeof (struct InboundMessage) + sizeof (struct GNUNET_MessageHeader))
848 { 862 {
849 GNUNET_break (0); 863 GNUNET_break (0);
864 h->reconnecting = GNUNET_YES;
865 disconnect_and_schedule_reconnect (h);
850 break; 866 break;
851 } 867 }
852 im = (const struct InboundMessage *) msg; 868 im = (const struct InboundMessage *) msg;
@@ -854,6 +870,8 @@ demultiplexer (void *cls,
854 if (ntohs (imm->size) + sizeof (struct InboundMessage) != size) 870 if (ntohs (imm->size) + sizeof (struct InboundMessage) != size)
855 { 871 {
856 GNUNET_break (0); 872 GNUNET_break (0);
873 h->reconnecting = GNUNET_YES;
874 disconnect_and_schedule_reconnect (h);
857 break; 875 break;
858 } 876 }
859 LOG (GNUNET_ERROR_TYPE_DEBUG, 877 LOG (GNUNET_ERROR_TYPE_DEBUG,
@@ -863,6 +881,8 @@ demultiplexer (void *cls,
863 if (NULL == n) 881 if (NULL == n)
864 { 882 {
865 GNUNET_break (0); 883 GNUNET_break (0);
884 h->reconnecting = GNUNET_YES;
885 disconnect_and_schedule_reconnect (h);
866 break; 886 break;
867 } 887 }
868 if (NULL != h->rec) 888 if (NULL != h->rec)
@@ -874,12 +894,19 @@ demultiplexer (void *cls,
874 if (size != sizeof (struct QuotaSetMessage)) 894 if (size != sizeof (struct QuotaSetMessage))
875 { 895 {
876 GNUNET_break (0); 896 GNUNET_break (0);
897 h->reconnecting = GNUNET_YES;
898 disconnect_and_schedule_reconnect (h);
877 break; 899 break;
878 } 900 }
879 qm = (const struct QuotaSetMessage *) msg; 901 qm = (const struct QuotaSetMessage *) msg;
880 n = neighbour_find (h, &qm->peer); 902 n = neighbour_find (h, &qm->peer);
881 if (NULL == n) 903 if (NULL == n)
904 {
905 GNUNET_break (0);
906 h->reconnecting = GNUNET_YES;
907 disconnect_and_schedule_reconnect (h);
882 break; 908 break;
909 }
883 LOG (GNUNET_ERROR_TYPE_DEBUG, 910 LOG (GNUNET_ERROR_TYPE_DEBUG,
884 "Receiving SET_QUOTA message for `%s' with quota %u\n", 911 "Receiving SET_QUOTA message for `%s' with quota %u\n",
885 GNUNET_i2s (&qm->peer), 912 GNUNET_i2s (&qm->peer),
@@ -1305,7 +1332,7 @@ disconnect_and_schedule_reconnect (struct GNUNET_TRANSPORT_Handle *h)
1305{ 1332{
1306 struct GNUNET_TRANSPORT_TransmitHandle *th; 1333 struct GNUNET_TRANSPORT_TransmitHandle *th;
1307 1334
1308 GNUNET_assert (h->reconnect_task == NULL); 1335 GNUNET_assert (NULL == h->reconnect_task);
1309 if (NULL != h->cth) 1336 if (NULL != h->cth)
1310 { 1337 {
1311 GNUNET_CLIENT_notify_transmit_ready_cancel (h->cth); 1338 GNUNET_CLIENT_notify_transmit_ready_cancel (h->cth);