*/
struct GNUNET_SET_OperationHandle *intersection_op;
+ /**
+ * Our open port.
+ */
+ struct GNUNET_CADET_Port *port;
+
/**
* b(Bob)
*/
gcry_mpi_point_release (s->prod_h_i_b_i);
s->prod_h_i_b_i = NULL;
}
+ GNUNET_CADET_close_port (s->port);
GNUNET_free (s);
}
static void
start_intersection (struct BobServiceSession *s)
{
+ struct GNUNET_HashCode set_sid;
+
+ GNUNET_CRYPTO_hash (&s->session_id,
+ sizeof (struct GNUNET_HashCode),
+ &set_sid);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Got session with key %s and %u elements, starting intersection.\n",
GNUNET_h2s (&s->session_id),
s->intersection_op
= GNUNET_SET_prepare (&s->cadet->peer,
- &s->session_id,
+ &set_sid,
NULL,
GNUNET_SET_RESULT_REMOVED,
&cb_intersection_element_removed,
s->total = total_count;
s->client_received_element_count = contained_count;
s->session_id = msg->session_key;
+ s->port = GNUNET_CADET_open_port (my_cadet,
+ &msg->session_key,
+ &cb_channel_incoming,
+ s);
+ if (NULL == s->port)
+ {
+ GNUNET_break (0);
+ GNUNET_SERVER_receive_done (client,
+ GNUNET_SYSERR);
+ GNUNET_free (s);
+ return;
+ }
GNUNET_break (GNUNET_YES ==
GNUNET_CONTAINER_multihashmap_put (client_sessions,
&s->session_id,
GNUNET_SCHEDULER_shutdown ();
return;
}
- GNUNET_CADET_open_port (my_cadet,
- GC_u2h (GNUNET_APPLICATION_TYPE_SCALARPRODUCT_ECC),
- &cb_channel_incoming, NULL);
GNUNET_SCHEDULER_add_shutdown (&shutdown_task,
NULL);
}