diff options
author | lurchi <lurchi@strangeplace.net> | 2017-12-14 18:08:41 +0100 |
---|---|---|
committer | lurchi <lurchi@strangeplace.net> | 2017-12-14 18:12:00 +0100 |
commit | f2f8d311f0d93970d70a796688bc89da10b5f75d (patch) | |
tree | 3b5ddf5c36e086f8544c9fb14e1c998e8b92a8eb /src/multicast | |
parent | b31af32af0dbf2f38b39cb4e3cdfada4ad313c77 (diff) | |
download | gnunet-f2f8d311f0d93970d70a796688bc89da10b5f75d.tar.gz gnunet-f2f8d311f0d93970d70a796688bc89da10b5f75d.zip |
actually use the is_disconnecting flag; debug output; remove dead code
Diffstat (limited to 'src/multicast')
-rw-r--r-- | src/multicast/gnunet-service-multicast.c | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/src/multicast/gnunet-service-multicast.c b/src/multicast/gnunet-service-multicast.c index 11f3c08b7..83aee846c 100644 --- a/src/multicast/gnunet-service-multicast.c +++ b/src/multicast/gnunet-service-multicast.c | |||
@@ -137,6 +137,7 @@ struct Channel | |||
137 | */ | 137 | */ |
138 | struct GNUNET_CADET_Channel *channel; | 138 | struct GNUNET_CADET_Channel *channel; |
139 | 139 | ||
140 | // FIXME: not used | ||
140 | /** | 141 | /** |
141 | * CADET transmission handle. | 142 | * CADET transmission handle. |
142 | */ | 143 | */ |
@@ -228,7 +229,7 @@ struct Group | |||
228 | /** | 229 | /** |
229 | * Is the client disconnected? #GNUNET_YES or #GNUNET_NO | 230 | * Is the client disconnected? #GNUNET_YES or #GNUNET_NO |
230 | */ | 231 | */ |
231 | uint8_t disconnected; | 232 | uint8_t is_disconnected; |
232 | 233 | ||
233 | /** | 234 | /** |
234 | * Is this an origin (#GNUNET_YES), or member (#GNUNET_NO)? | 235 | * Is this an origin (#GNUNET_YES), or member (#GNUNET_NO)? |
@@ -365,6 +366,8 @@ client_send_join_decision (struct Member *mem, | |||
365 | static void | 366 | static void |
366 | shutdown_task (void *cls) | 367 | shutdown_task (void *cls) |
367 | { | 368 | { |
369 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
370 | "shutting down\n"); | ||
368 | if (NULL != cadet) | 371 | if (NULL != cadet) |
369 | { | 372 | { |
370 | GNUNET_CADET_disconnect (cadet); | 373 | GNUNET_CADET_disconnect (cadet); |
@@ -1373,6 +1376,7 @@ handle_client_origin_start (void *cls, | |||
1373 | grp->is_origin = GNUNET_YES; | 1376 | grp->is_origin = GNUNET_YES; |
1374 | grp->pub_key = pub_key; | 1377 | grp->pub_key = pub_key; |
1375 | grp->pub_key_hash = pub_key_hash; | 1378 | grp->pub_key_hash = pub_key_hash; |
1379 | grp->is_disconnected = GNUNET_NO; | ||
1376 | 1380 | ||
1377 | GNUNET_CONTAINER_multihashmap_put (origins, &grp->pub_key_hash, orig, | 1381 | GNUNET_CONTAINER_multihashmap_put (origins, &grp->pub_key_hash, orig, |
1378 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST); | 1382 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST); |
@@ -1500,6 +1504,7 @@ handle_client_member_join (void *cls, | |||
1500 | grp->is_origin = GNUNET_NO; | 1504 | grp->is_origin = GNUNET_NO; |
1501 | grp->pub_key = msg->group_pub_key; | 1505 | grp->pub_key = msg->group_pub_key; |
1502 | grp->pub_key_hash = pub_key_hash; | 1506 | grp->pub_key_hash = pub_key_hash; |
1507 | grp->is_disconnected = GNUNET_NO; | ||
1503 | group_set_cadet_port_hash (grp); | 1508 | group_set_cadet_port_hash (grp); |
1504 | 1509 | ||
1505 | if (NULL == grp_mem) | 1510 | if (NULL == grp_mem) |
@@ -1641,6 +1646,7 @@ handle_client_join_decision (void *cls, | |||
1641 | GNUNET_SERVICE_client_drop (client); | 1646 | GNUNET_SERVICE_client_drop (client); |
1642 | return; | 1647 | return; |
1643 | } | 1648 | } |
1649 | GNUNET_assert (GNUNET_NO == grp->is_disconnected); | ||
1644 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 1650 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
1645 | "%p got join decision from client for group %s..\n", | 1651 | "%p got join decision from client for group %s..\n", |
1646 | grp, GNUNET_h2s (&grp->pub_key_hash)); | 1652 | grp, GNUNET_h2s (&grp->pub_key_hash)); |
@@ -1687,9 +1693,11 @@ handle_client_part_request (void *cls, | |||
1687 | GNUNET_SERVICE_client_drop (client); | 1693 | GNUNET_SERVICE_client_drop (client); |
1688 | return; | 1694 | return; |
1689 | } | 1695 | } |
1696 | GNUNET_assert (GNUNET_NO == grp->is_disconnected); | ||
1690 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 1697 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
1691 | "%p got part request from client for group %s.\n", | 1698 | "%p got part request from client for group %s.\n", |
1692 | grp, GNUNET_h2s (&grp->pub_key_hash)); | 1699 | grp, GNUNET_h2s (&grp->pub_key_hash)); |
1700 | grp->is_disconnected = GNUNET_YES; | ||
1693 | env = GNUNET_MQ_msg_header (GNUNET_MESSAGE_TYPE_MULTICAST_PART_ACK); | 1701 | env = GNUNET_MQ_msg_header (GNUNET_MESSAGE_TYPE_MULTICAST_PART_ACK); |
1694 | client_send_group (grp, env); | 1702 | client_send_group (grp, env); |
1695 | GNUNET_SERVICE_client_continue (client); | 1703 | GNUNET_SERVICE_client_continue (client); |
@@ -1721,6 +1729,7 @@ handle_client_multicast_message (void *cls, | |||
1721 | GNUNET_SERVICE_client_drop (client); | 1729 | GNUNET_SERVICE_client_drop (client); |
1722 | return; | 1730 | return; |
1723 | } | 1731 | } |
1732 | GNUNET_assert (GNUNET_NO == grp->is_disconnected); | ||
1724 | GNUNET_assert (GNUNET_YES == grp->is_origin); | 1733 | GNUNET_assert (GNUNET_YES == grp->is_origin); |
1725 | struct Origin *orig = grp->origin; | 1734 | struct Origin *orig = grp->origin; |
1726 | 1735 | ||
@@ -1775,6 +1784,7 @@ handle_client_multicast_request (void *cls, | |||
1775 | GNUNET_SERVICE_client_drop (client); | 1784 | GNUNET_SERVICE_client_drop (client); |
1776 | return; | 1785 | return; |
1777 | } | 1786 | } |
1787 | GNUNET_assert (GNUNET_NO == grp->is_disconnected); | ||
1778 | GNUNET_assert (GNUNET_NO == grp->is_origin); | 1788 | GNUNET_assert (GNUNET_NO == grp->is_origin); |
1779 | struct Member *mem = grp->member; | 1789 | struct Member *mem = grp->member; |
1780 | 1790 | ||
@@ -1839,6 +1849,7 @@ handle_client_replay_request (void *cls, | |||
1839 | GNUNET_SERVICE_client_drop (client); | 1849 | GNUNET_SERVICE_client_drop (client); |
1840 | return; | 1850 | return; |
1841 | } | 1851 | } |
1852 | GNUNET_assert (GNUNET_NO == grp->is_disconnected); | ||
1842 | GNUNET_assert (GNUNET_NO == grp->is_origin); | 1853 | GNUNET_assert (GNUNET_NO == grp->is_origin); |
1843 | struct Member *mem = grp->member; | 1854 | struct Member *mem = grp->member; |
1844 | 1855 | ||
@@ -1930,6 +1941,7 @@ handle_client_replay_response_end (void *cls, | |||
1930 | GNUNET_SERVICE_client_drop (client); | 1941 | GNUNET_SERVICE_client_drop (client); |
1931 | return; | 1942 | return; |
1932 | } | 1943 | } |
1944 | GNUNET_assert (GNUNET_NO == grp->is_disconnected); | ||
1933 | 1945 | ||
1934 | struct GNUNET_HashCode key_hash; | 1946 | struct GNUNET_HashCode key_hash; |
1935 | replay_key_hash (res->fragment_id, res->message_id, res->fragment_offset, | 1947 | replay_key_hash (res->fragment_id, res->message_id, res->fragment_offset, |
@@ -1989,6 +2001,7 @@ handle_client_replay_response (void *cls, | |||
1989 | GNUNET_SERVICE_client_drop (client); | 2001 | GNUNET_SERVICE_client_drop (client); |
1990 | return; | 2002 | return; |
1991 | } | 2003 | } |
2004 | GNUNET_assert (GNUNET_NO == grp->is_disconnected); | ||
1992 | 2005 | ||
1993 | const struct GNUNET_MessageHeader *msg = &res->header; | 2006 | const struct GNUNET_MessageHeader *msg = &res->header; |
1994 | if (GNUNET_MULTICAST_REC_OK == res->error_code) | 2007 | if (GNUNET_MULTICAST_REC_OK == res->error_code) |
@@ -2088,6 +2101,9 @@ client_notify_disconnect (void *cls, | |||
2088 | struct ClientList *cl = grp->clients_head; | 2101 | struct ClientList *cl = grp->clients_head; |
2089 | while (NULL != cl) | 2102 | while (NULL != cl) |
2090 | { | 2103 | { |
2104 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
2105 | "iterating clients for group %p\n", | ||
2106 | grp); | ||
2091 | if (cl->client == client) | 2107 | if (cl->client == client) |
2092 | { | 2108 | { |
2093 | GNUNET_CONTAINER_DLL_remove (grp->clients_head, grp->clients_tail, cl); | 2109 | GNUNET_CONTAINER_DLL_remove (grp->clients_head, grp->clients_tail, cl); |
@@ -2101,16 +2117,7 @@ client_notify_disconnect (void *cls, | |||
2101 | 2117 | ||
2102 | if (NULL == grp->clients_head) | 2118 | if (NULL == grp->clients_head) |
2103 | { /* Last client disconnected. */ | 2119 | { /* Last client disconnected. */ |
2104 | #if FIXME | 2120 | cleanup_group (grp); |
2105 | if (NULL != grp->tmit_head) | ||
2106 | { /* Send pending messages via CADET before cleanup. */ | ||
2107 | transmit_message (grp); | ||
2108 | } | ||
2109 | else | ||
2110 | #endif | ||
2111 | { | ||
2112 | cleanup_group (grp); | ||
2113 | } | ||
2114 | } | 2121 | } |
2115 | } | 2122 | } |
2116 | 2123 | ||