[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r33241 - gnunet/src/peerstore
From: |
gnunet |
Subject: |
[GNUnet-SVN] r33241 - gnunet/src/peerstore |
Date: |
Mon, 12 May 2014 12:10:41 +0200 |
Author: otarabai
Date: 2014-05-12 12:10:41 +0200 (Mon, 12 May 2014)
New Revision: 33241
Modified:
gnunet/src/peerstore/gnunet-peerstore.c
gnunet/src/peerstore/gnunet-service-peerstore.c
gnunet/src/peerstore/peerstore.h
gnunet/src/peerstore/peerstore_api.c
Log:
PEERSTORE api fix
Modified: gnunet/src/peerstore/gnunet-peerstore.c
===================================================================
--- gnunet/src/peerstore/gnunet-peerstore.c 2014-05-12 08:53:16 UTC (rev
33240)
+++ gnunet/src/peerstore/gnunet-peerstore.c 2014-05-12 10:10:41 UTC (rev
33241)
@@ -58,7 +58,9 @@
void test_cont(void *cls, const char *emsg)
{
- printf("Received a response\n");
+ char *req = cls;
+
+ printf("Received a response to request: %s\n", req);
if(NULL != emsg)
{
printf("Response: %s\n", emsg);
@@ -97,7 +99,15 @@
5,
GNUNET_TIME_UNIT_FOREVER_REL,
&test_cont,
- NULL);
+ "Req1");
+ GNUNET_PEERSTORE_store(peerstore_handle,
+ &pid,
+ "subsub",
+ "value",
+ 5,
+ GNUNET_TIME_UNIT_FOREVER_REL,
+ &test_cont,
+ "Req2");
}
ret = 0;
Modified: gnunet/src/peerstore/gnunet-service-peerstore.c
===================================================================
--- gnunet/src/peerstore/gnunet-service-peerstore.c 2014-05-12 08:53:16 UTC
(rev 33240)
+++ gnunet/src/peerstore/gnunet-service-peerstore.c 2014-05-12 10:10:41 UTC
(rev 33241)
@@ -102,13 +102,17 @@
//TODO: do the actual storage
//create a fake response for testing
char *response = "This is a response";
+ uint16_t resp_size = strlen(response);
tc = GNUNET_SERVER_transmit_context_create (client);
- sresm = malloc(sizeof(struct StoreResponseMessage) + strlen(response));
+ msg_size = sizeof(struct StoreResponseMessage) + resp_size;
+ sresm = malloc(msg_size);
+ GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Sending a response to client of size:
%u, response size: %u\n", msg_size, resp_size);
sresm->header.type = htons(GNUNET_MESSAGE_TYPE_PEERSTORE_STORE_RESULT);
- sresm->header.size = htons(sizeof(struct StoreResponseMessage) +
strlen(response));
+ sresm->header.size = htons(msg_size);
sresm->success = htons(GNUNET_NO);
- sresm->emsg_size = htons(strlen(response));
- memcpy(&sresm[1], response, strlen(response));
+ sresm->emsg_size = htons(resp_size);
+ char *msg_ptr = (char *)&sresm[1];
+ memcpy(msg_ptr, response, resp_size);
GNUNET_SERVER_transmit_context_append_message(tc, (struct
GNUNET_MessageHeader *)sresm);
GNUNET_SERVER_transmit_context_run (tc, GNUNET_TIME_UNIT_FOREVER_REL);
}
Modified: gnunet/src/peerstore/peerstore.h
===================================================================
--- gnunet/src/peerstore/peerstore.h 2014-05-12 08:53:16 UTC (rev 33240)
+++ gnunet/src/peerstore/peerstore.h 2014-05-12 10:10:41 UTC (rev 33241)
@@ -76,12 +76,12 @@
/**
* Was the store operation successful (#GNUNET_YES / #GNUNET_NO)
*/
- uint16_t success;
+ uint16_t success GNUNET_PACKED;
/**
* Size of the error message (0 if no error)
*/
- size_t emsg_size;
+ size_t emsg_size GNUNET_PACKED;
};
GNUNET_NETWORK_STRUCT_END
Modified: gnunet/src/peerstore/peerstore_api.c
===================================================================
--- gnunet/src/peerstore/peerstore_api.c 2014-05-12 08:53:16 UTC (rev
33240)
+++ gnunet/src/peerstore/peerstore_api.c 2014-05-12 10:10:41 UTC (rev
33241)
@@ -204,6 +204,7 @@
{
struct GNUNET_PEERSTORE_Handle *h = cls;
+ LOG(GNUNET_ERROR_TYPE_DEBUG, "Reconnect task executed\n");
h->r_task = GNUNET_SCHEDULER_NO_TASK;
reconnect (h);
}
@@ -225,6 +226,7 @@
h = GNUNET_new (struct GNUNET_PEERSTORE_Handle);
h->client = client;
h->cfg = cfg;
+ LOG(GNUNET_ERROR_TYPE_DEBUG, "New connection created\n");
return h;
}
@@ -242,6 +244,7 @@
h->client = NULL;
}
GNUNET_free (h);
+ LOG(GNUNET_ERROR_TYPE_DEBUG, "Disconnected, BYE!\n");
}
/**
@@ -252,6 +255,7 @@
static void
reconnect (struct GNUNET_PEERSTORE_Handle *h)
{
+ LOG(GNUNET_ERROR_TYPE_DEBUG, "Reconnecting...\n");
if (GNUNET_SCHEDULER_NO_TASK != h->r_task)
{
GNUNET_SCHEDULER_cancel (h->r_task);
@@ -403,6 +407,7 @@
trigger_transmit (h);
if (NULL != h->sc_head)
{
+ LOG(GNUNET_ERROR_TYPE_DEBUG, "Another store request awaiting response,
triggering receive for it\n");
h->in_receive = GNUNET_YES;
GNUNET_CLIENT_receive (h->client,
&peerstore_handler,
@@ -411,15 +416,14 @@
}
if(NULL != cont)
{
- srm = (struct StoreResponseMessage *)&msg[1];
+ LOG(GNUNET_ERROR_TYPE_DEBUG, "Calling continuation of store request\n");
+ srm = (struct StoreResponseMessage *)msg;
emsg = NULL;
if(GNUNET_NO == ntohs(srm->success))
{
- LOG(GNUNET_ERROR_TYPE_DEBUG, "Calling user callback with message:
%s\n", emsg);
emsg = GNUNET_malloc(ntohs(srm->emsg_size));
memcpy(emsg, &srm[1], ntohs(srm->emsg_size));
}
- LOG(GNUNET_ERROR_TYPE_DEBUG, "Calling user callback without a
message\n");
cont(cont_cls, emsg);
}
break;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r33241 - gnunet/src/peerstore,
gnunet <=