[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r24159 - gnunet/src/testbed
From: |
gnunet |
Subject: |
[GNUnet-SVN] r24159 - gnunet/src/testbed |
Date: |
Tue, 2 Oct 2012 10:54:39 +0200 |
Author: harsha
Date: 2012-10-02 10:54:39 +0200 (Tue, 02 Oct 2012)
New Revision: 24159
Modified:
gnunet/src/testbed/gnunet-service-testbed.c
Log:
slave get config service implementation
Modified: gnunet/src/testbed/gnunet-service-testbed.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed.c 2012-10-02 08:05:26 UTC (rev
24158)
+++ gnunet/src/testbed/gnunet-service-testbed.c 2012-10-02 08:54:39 UTC (rev
24159)
@@ -2662,6 +2662,13 @@
const struct GNUNET_MessageHeader *message)
{
struct GNUNET_TESTBED_SlaveGetConfigurationMessage *msg;
+ struct Slave *slave;
+ struct GNUNET_TESTBED_SlaveConfiguration *reply;
+ char *config;
+ char *xconfig;
+ size_t config_size;
+ size_t xconfig_size;
+ size_t reply_size;
uint64_t op_id;
uint32_t slave_id;
@@ -2674,7 +2681,30 @@
GNUNET_SERVER_receive_done (client, GNUNET_OK);
return;
}
- GNUNET_break (0);
+ slave = slave_list[slave_id];
+ if (NULL == slave->cfg)
+ {
+ send_operation_fail_msg (client, op_id,
+ "Configuration not found (slave not started by
me)");
+ GNUNET_SERVER_receive_done (client, GNUNET_OK);
+ return;
+ }
+ config = GNUNET_CONFIGURATION_serialize (slave->cfg, &config_size);
+ xconfig_size = GNUNET_TESTBED_compress_config_ (config, config_size,
+ &xconfig);
+ GNUNET_free (config);
+ reply_size = xconfig_size + sizeof (struct
GNUNET_TESTBED_SlaveConfiguration);
+ GNUNET_break (reply_size <= UINT16_MAX);
+ GNUNET_break (config_size <= UINT32_MAX);
+ reply = GNUNET_realloc (xconfig, reply_size);
+ (void) memmove (&reply[1], reply, xconfig_size);
+ reply->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_SLAVECONFIG);
+ reply->header.size = htons ((uint16_t) reply_size);
+ reply->slave_id = msg->slave_id;
+ reply->operation_id = msg->operation_id;
+ reply->config_size = htonl ((uint32_t) config_size);
+ queue_message (client, &reply->header);
+ GNUNET_SERVER_receive_done (client, GNUNET_OK);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r24159 - gnunet/src/testbed,
gnunet <=