aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/scalarproduct/Makefile.am8
-rw-r--r--src/scalarproduct/gnunet-service-scalarproduct.c14
-rw-r--r--src/scalarproduct/scalarproduct_api.c6
3 files changed, 15 insertions, 13 deletions
diff --git a/src/scalarproduct/Makefile.am b/src/scalarproduct/Makefile.am
index e0cc72b01..73ba2de93 100644
--- a/src/scalarproduct/Makefile.am
+++ b/src/scalarproduct/Makefile.am
@@ -53,10 +53,10 @@ libgnunetscalarproduct_la_LIBADD = \
53libgnunetscalarproduct_la_LDFLAGS = \ 53libgnunetscalarproduct_la_LDFLAGS = \
54 $(GN_LIB_LDFLAGS) 54 $(GN_LIB_LDFLAGS)
55 55
56check_PROGRAMS = \ 56#check_PROGRAMS = \
57 test_scalarproduct_api_regression \ 57# test_scalarproduct_api_regression \
58 test_scalarproduct_api \ 58# test_scalarproduct_api \
59 test_scalarproduct_api_4peers 59# test_scalarproduct_api_4peers
60#FIXME unfinished 60#FIXME unfinished
61#test_scalarproduct_api_regression2 61#test_scalarproduct_api_regression2
62 62
diff --git a/src/scalarproduct/gnunet-service-scalarproduct.c b/src/scalarproduct/gnunet-service-scalarproduct.c
index 3c4746d2b..349470333 100644
--- a/src/scalarproduct/gnunet-service-scalarproduct.c
+++ b/src/scalarproduct/gnunet-service-scalarproduct.c
@@ -1483,7 +1483,7 @@ tunnel_destruction_handler (void *cls,
1483 if (ALICE == session->role) { 1483 if (ALICE == session->role) {
1484 // as we have only one peer connected in each session, just remove the session 1484 // as we have only one peer connected in each session, just remove the session
1485 1485
1486 if ((FINALIZED != session->state) && (!do_shutdown)) 1486 if ((SERVICE_RESPONSE_RECEIVED > session->state) && (!do_shutdown))
1487 { 1487 {
1488 session->tunnel = NULL; 1488 session->tunnel = NULL;
1489 // if this happened before we received the answer, we must terminate the session 1489 // if this happened before we received the answer, we must terminate the session
@@ -1657,7 +1657,7 @@ prepare_client_response (void *cls,
1657 1657
1658 // get representation as string 1658 // get representation as string
1659 if (range 1659 if (range
1660 && (0 != (rc = gcry_mpi_aprint (GCRYMPI_FMT_STD, 1660 && (0 != (rc = gcry_mpi_aprint (GCRYMPI_FMT_USG,
1661 &product_exported, 1661 &product_exported,
1662 &product_length, 1662 &product_length,
1663 value)))){ 1663 value)))){
@@ -1670,13 +1670,15 @@ prepare_client_response (void *cls,
1670 1670
1671 msg_length = sizeof (struct GNUNET_SCALARPRODUCT_client_response) + product_length; 1671 msg_length = sizeof (struct GNUNET_SCALARPRODUCT_client_response) + product_length;
1672 msg = GNUNET_malloc (msg_length); 1672 msg = GNUNET_malloc (msg_length);
1673 memcpy (&msg[1], product_exported, product_length); 1673 memcpy (&msg->key, &session->key, sizeof (struct GNUNET_HashCode));
1674 GNUNET_free_non_null (product_exported); 1674 memcpy (&msg->peer, &session->peer, sizeof ( struct GNUNET_PeerIdentity));
1675 if (product_exported != NULL){
1676 memcpy (&msg[1], product_exported, product_length);
1677 GNUNET_free(product_exported);
1678 }
1675 msg->header.type = htons (GNUNET_MESSAGE_TYPE_SCALARPRODUCT_SERVICE_TO_CLIENT); 1679 msg->header.type = htons (GNUNET_MESSAGE_TYPE_SCALARPRODUCT_SERVICE_TO_CLIENT);
1676 msg->header.size = htons (msg_length); 1680 msg->header.size = htons (msg_length);
1677 msg->range = range; 1681 msg->range = range;
1678 memcpy (&msg->key, &session->key, sizeof (struct GNUNET_HashCode));
1679 memcpy (&msg->peer, &session->peer, sizeof ( struct GNUNET_PeerIdentity));
1680 msg->product_length = htonl (product_length); 1682 msg->product_length = htonl (product_length);
1681 1683
1682 session->msg = (struct GNUNET_MessageHeader *) msg; 1684 session->msg = (struct GNUNET_MessageHeader *) msg;
diff --git a/src/scalarproduct/scalarproduct_api.c b/src/scalarproduct/scalarproduct_api.c
index 09c726c88..eed7c315b 100644
--- a/src/scalarproduct/scalarproduct_api.c
+++ b/src/scalarproduct/scalarproduct_api.c
@@ -190,7 +190,7 @@ process_result_message (void *cls,
190 gcry_mpi_t num; 190 gcry_mpi_t num;
191 size_t read = 0; 191 size_t read = 0;
192 192
193 if (0 != (rc = gcry_mpi_scan (&num, GCRYMPI_FMT_STD, &msg[1], product_len, &read))) 193 if (0 != (rc = gcry_mpi_scan (&num, GCRYMPI_FMT_USG, &msg[1], product_len, &read)))
194 { 194 {
195 LOG_GCRY(GNUNET_ERROR_TYPE_ERROR, "gcry_mpi_scan", rc); 195 LOG_GCRY(GNUNET_ERROR_TYPE_ERROR, "gcry_mpi_scan", rc);
196 gcry_mpi_release (result); 196 gcry_mpi_release (result);
@@ -199,9 +199,9 @@ process_result_message (void *cls,
199 } 199 }
200 else 200 else
201 { 201 {
202 if (message->range > 0) 202 if (0 < message->range)
203 gcry_mpi_add (result, result, num); 203 gcry_mpi_add (result, result, num);
204 else 204 else if (0 > message->range)
205 gcry_mpi_sub (result, result, num); 205 gcry_mpi_sub (result, result, num);
206 gcry_mpi_release (num); 206 gcry_mpi_release (num);
207 } 207 }