aboutsummaryrefslogtreecommitdiff
path: root/src/multicast
diff options
context:
space:
mode:
authorGabor X Toth <*@tg-x.net>2016-08-17 21:26:41 +0000
committerGabor X Toth <*@tg-x.net>2016-08-17 21:26:41 +0000
commit667cc67f8224ccf4ff391b125a614cf90cf5917e (patch)
treeae2048a6525ab2521ad989afa795d7a2f0833af6 /src/multicast
parent720a38ea7519f5a1a820157f056b150ab3d4abd5 (diff)
downloadgnunet-667cc67f8224ccf4ff391b125a614cf90cf5917e.tar.gz
gnunet-667cc67f8224ccf4ff391b125a614cf90cf5917e.zip
psyc, social: switch to MQ
Diffstat (limited to 'src/multicast')
-rw-r--r--src/multicast/multicast_api.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/multicast/multicast_api.c b/src/multicast/multicast_api.c
index 6fb45d722..89a9bf5e1 100644
--- a/src/multicast/multicast_api.c
+++ b/src/multicast/multicast_api.c
@@ -76,6 +76,11 @@ struct GNUNET_MULTICAST_Group
76 struct GNUNET_MQ_Handle *mq; 76 struct GNUNET_MQ_Handle *mq;
77 77
78 /** 78 /**
79 * Message to send on connect.
80 */
81 struct GNUNET_MQ_Envelope *connect_env;
82
83 /**
79 * Time to wait until we try to reconnect on failure. 84 * Time to wait until we try to reconnect on failure.
80 */ 85 */
81 struct GNUNET_TIME_Relative reconnect_delay; 86 struct GNUNET_TIME_Relative reconnect_delay;
@@ -85,11 +90,6 @@ struct GNUNET_MULTICAST_Group
85 */ 90 */
86 struct GNUNET_SCHEDULER_Task *reconnect_task; 91 struct GNUNET_SCHEDULER_Task *reconnect_task;
87 92
88 /**
89 * Message to send on connect.
90 */
91 struct GNUNET_MQ_Envelope *connect_env;
92
93 GNUNET_MULTICAST_JoinRequestCallback join_req_cb; 93 GNUNET_MULTICAST_JoinRequestCallback join_req_cb;
94 GNUNET_MULTICAST_ReplayFragmentCallback replay_frag_cb; 94 GNUNET_MULTICAST_ReplayFragmentCallback replay_frag_cb;
95 GNUNET_MULTICAST_ReplayMessageCallback replay_msg_cb; 95 GNUNET_MULTICAST_ReplayMessageCallback replay_msg_cb;
@@ -522,7 +522,7 @@ handle_member_join_decision (void *cls,
522static void 522static void
523group_cleanup (struct GNUNET_MULTICAST_Group *grp) 523group_cleanup (struct GNUNET_MULTICAST_Group *grp)
524{ 524{
525 GNUNET_free (grp->connect_env); 525 GNUNET_MQ_discard (grp->connect_env);
526 if (NULL != grp->disconnect_cb) 526 if (NULL != grp->disconnect_cb)
527 grp->disconnect_cb (grp->disconnect_cls); 527 grp->disconnect_cb (grp->disconnect_cls);
528} 528}
@@ -724,7 +724,7 @@ origin_disconnected (void *cls, enum GNUNET_MQ_Error error)
724 } 724 }
725 725
726 grp->reconnect_task = GNUNET_SCHEDULER_add_delayed (grp->reconnect_delay, 726 grp->reconnect_task = GNUNET_SCHEDULER_add_delayed (grp->reconnect_delay,
727 &origin_reconnect, 727 origin_reconnect,
728 orig); 728 orig);
729 grp->reconnect_delay = GNUNET_TIME_STD_BACKOFF (grp->reconnect_delay); 729 grp->reconnect_delay = GNUNET_TIME_STD_BACKOFF (grp->reconnect_delay);
730} 730}
@@ -829,10 +829,11 @@ GNUNET_MULTICAST_origin_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
829 grp->connect_env = GNUNET_MQ_msg (start, 829 grp->connect_env = GNUNET_MQ_msg (start,
830 GNUNET_MESSAGE_TYPE_MULTICAST_ORIGIN_START); 830 GNUNET_MESSAGE_TYPE_MULTICAST_ORIGIN_START);
831 start->max_fragment_id = max_fragment_id; 831 start->max_fragment_id = max_fragment_id;
832 GNUNET_memcpy (&start->group_key, priv_key, sizeof (*priv_key)); 832 start->group_key = *priv_key;
833 833
834 grp->is_origin = GNUNET_YES;
835 grp->cfg = cfg; 834 grp->cfg = cfg;
835 grp->is_origin = GNUNET_YES;
836 grp->reconnect_delay = GNUNET_TIME_UNIT_MILLISECONDS;
836 837
837 grp->cb_cls = cls; 838 grp->cb_cls = cls;
838 grp->join_req_cb = join_request_cb; 839 grp->join_req_cb = join_request_cb;
@@ -1024,7 +1025,7 @@ member_disconnected (void *cls, enum GNUNET_MQ_Error error)
1024 grp->mq = NULL; 1025 grp->mq = NULL;
1025 1026
1026 grp->reconnect_task = GNUNET_SCHEDULER_add_delayed (grp->reconnect_delay, 1027 grp->reconnect_task = GNUNET_SCHEDULER_add_delayed (grp->reconnect_delay,
1027 &member_reconnect, 1028 member_reconnect,
1028 mem); 1029 mem);
1029 grp->reconnect_delay = GNUNET_TIME_STD_BACKOFF (grp->reconnect_delay); 1030 grp->reconnect_delay = GNUNET_TIME_STD_BACKOFF (grp->reconnect_delay);
1030} 1031}
@@ -1162,9 +1163,9 @@ GNUNET_MULTICAST_member_join (const struct GNUNET_CONFIGURATION_Handle *cfg,
1162 if (0 < join_msg_size) 1163 if (0 < join_msg_size)
1163 GNUNET_memcpy (((char *) &join[1]) + relay_size, join_msg, join_msg_size); 1164 GNUNET_memcpy (((char *) &join[1]) + relay_size, join_msg, join_msg_size);
1164 1165
1165 grp->reconnect_delay = GNUNET_TIME_UNIT_MILLISECONDS;
1166 grp->is_origin = GNUNET_NO;
1167 grp->cfg = cfg; 1166 grp->cfg = cfg;
1167 grp->is_origin = GNUNET_NO;
1168 grp->reconnect_delay = GNUNET_TIME_UNIT_MILLISECONDS;
1168 1169
1169 mem->join_dcsn_cb = join_decision_cb; 1170 mem->join_dcsn_cb = join_decision_cb;
1170 grp->join_req_cb = join_request_cb; 1171 grp->join_req_cb = join_request_cb;