/*
This file is part of GNUnet
- (C) 2008--2013 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2008--2013 GNUnet e.V.
- GNUnet is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 3, or (at your
- option) any later version.
+ GNUnet is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License,
+ or (at your option) any later version.
GNUnet is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
+ Affero General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ SPDX-License-Identifier: AGPL3.0-or-later
*/
/**
}
-
/**
* Function to call to start a peer_create type operation once all
* queues the operation is part of declare that the
opstart_peer_create (void *cls)
{
struct OperationContext *opc = cls;
- struct PeerCreateData *data;
+ struct PeerCreateData *data = opc->data;
struct GNUNET_TESTBED_PeerCreateMessage *msg;
+ struct GNUNET_MQ_Envelope *env;
char *config;
char *xconfig;
size_t c_size;
size_t xc_size;
- uint16_t msize;
- GNUNET_assert (OP_PEER_CREATE == opc->type);
- GNUNET_assert (NULL != (data = opc->data));
+ GNUNET_assert (OP_PEER_CREATE == opc->type);
+ GNUNET_assert (NULL != data);
GNUNET_assert (NULL != data->peer);
opc->state = OPC_STATE_STARTED;
- config = GNUNET_CONFIGURATION_serialize (data->cfg, &c_size);
- xc_size = GNUNET_TESTBED_compress_config_ (config, c_size, &xconfig);
+ config = GNUNET_CONFIGURATION_serialize (data->cfg,
+ &c_size);
+ xc_size = GNUNET_TESTBED_compress_config_ (config,
+ c_size,
+ &xconfig);
GNUNET_free (config);
- msize = xc_size + sizeof (struct GNUNET_TESTBED_PeerCreateMessage);
- msg = GNUNET_realloc (xconfig, msize);
- memmove (&msg[1], msg, xc_size);
- msg->header.size = htons (msize);
- msg->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_CREATE_PEER);
+ env = GNUNET_MQ_msg_extra (msg,
+ xc_size,
+ GNUNET_MESSAGE_TYPE_TESTBED_CREATE_PEER);
msg->operation_id = GNUNET_htonll (opc->id);
msg->host_id = htonl (GNUNET_TESTBED_host_get_id_ (data->peer->host));
msg->peer_id = htonl (data->peer->unique_id);
msg->config_size = htons ((uint16_t) c_size);
+ GNUNET_memcpy (&msg[1],
+ xconfig,
+ xc_size);
+ GNUNET_MQ_send (opc->c->mq,
+ env);
+ GNUNET_free (xconfig);
GNUNET_TESTBED_insert_opc_ (opc->c, opc);
- GNUNET_TESTBED_queue_message_ (opc->c, &msg->header);
}
{
case OPC_STATE_STARTED:
GNUNET_TESTBED_remove_opc_ (opc->c, opc);
- /* No break we continue flow */
+
+ /* No break we continue flow */
case OPC_STATE_INIT:
GNUNET_free (((struct PeerCreateData *) opc->data)->peer);
GNUNET_free (opc->data);
break;
+
case OPC_STATE_FINISHED:
break;
}
struct OperationContext *opc = cls;
struct GNUNET_TESTBED_Peer *peer = opc->data;
struct GNUNET_TESTBED_PeerDestroyMessage *msg;
+ struct GNUNET_MQ_Envelope *env;
GNUNET_assert (OP_PEER_DESTROY == opc->type);
GNUNET_assert (NULL != peer);
opc->state = OPC_STATE_STARTED;
- msg = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_PeerDestroyMessage));
- msg->header.size = htons (sizeof (struct GNUNET_TESTBED_PeerDestroyMessage));
- msg->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_DESTROY_PEER);
+ env = GNUNET_MQ_msg (msg,
+ GNUNET_MESSAGE_TYPE_TESTBED_DESTROY_PEER);
msg->peer_id = htonl (peer->unique_id);
msg->operation_id = GNUNET_htonll (opc->id);
GNUNET_TESTBED_insert_opc_ (opc->c, opc);
- GNUNET_TESTBED_queue_message_ (peer->controller, &msg->header);
+ GNUNET_MQ_send (peer->controller->mq,
+ env);
}
{
case OPC_STATE_STARTED:
GNUNET_TESTBED_remove_opc_ (opc->c, opc);
- /* no break; continue */
+
+ /* no break; continue */
case OPC_STATE_INIT:
break;
+
case OPC_STATE_FINISHED:
break;
}
{
struct OperationContext *opc = cls;
struct GNUNET_TESTBED_PeerStartMessage *msg;
+ struct GNUNET_MQ_Envelope *env;
struct PeerEventData *data;
struct GNUNET_TESTBED_Peer *peer;
GNUNET_assert (OP_PEER_START == opc->type);
GNUNET_assert (NULL != (data = opc->data));
GNUNET_assert (NULL != (peer = data->peer));
- GNUNET_assert ((PS_CREATED == peer->state) || (PS_STOPPED == peer->state));
+ GNUNET_assert ((TESTBED_PS_CREATED == peer->state) || (TESTBED_PS_STOPPED ==
+ peer->state));
opc->state = OPC_STATE_STARTED;
- msg = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_PeerStartMessage));
- msg->header.size = htons (sizeof (struct GNUNET_TESTBED_PeerStartMessage));
- msg->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_START_PEER);
+ env = GNUNET_MQ_msg (msg,
+ GNUNET_MESSAGE_TYPE_TESTBED_START_PEER);
msg->peer_id = htonl (peer->unique_id);
msg->operation_id = GNUNET_htonll (opc->id);
GNUNET_TESTBED_insert_opc_ (opc->c, opc);
- GNUNET_TESTBED_queue_message_ (peer->controller, &msg->header);
+ GNUNET_MQ_send (peer->controller->mq,
+ env);
}
{
case OPC_STATE_STARTED:
GNUNET_TESTBED_remove_opc_ (opc->c, opc);
- /* no break; continue */
+
+ /* no break; continue */
case OPC_STATE_INIT:
GNUNET_free (opc->data);
break;
+
case OPC_STATE_FINISHED:
break;
}
struct GNUNET_TESTBED_PeerStopMessage *msg;
struct PeerEventData *data;
struct GNUNET_TESTBED_Peer *peer;
+ struct GNUNET_MQ_Envelope *env;
GNUNET_assert (NULL != (data = opc->data));
GNUNET_assert (NULL != (peer = data->peer));
- GNUNET_assert (PS_STARTED == peer->state);
+ GNUNET_assert (TESTBED_PS_STARTED == peer->state);
opc->state = OPC_STATE_STARTED;
- msg = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_PeerStopMessage));
- msg->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_STOP_PEER);
- msg->header.size = htons (sizeof (struct GNUNET_TESTBED_PeerStopMessage));
+ env = GNUNET_MQ_msg (msg,
+ GNUNET_MESSAGE_TYPE_TESTBED_STOP_PEER);
msg->peer_id = htonl (peer->unique_id);
msg->operation_id = GNUNET_htonll (opc->id);
GNUNET_TESTBED_insert_opc_ (opc->c, opc);
- GNUNET_TESTBED_queue_message_ (peer->controller, &msg->header);
+ GNUNET_MQ_send (peer->controller->mq,
+ env);
}
{
case OPC_STATE_STARTED:
GNUNET_TESTBED_remove_opc_ (opc->c, opc);
- /* no break; continue */
+
+ /* no break; continue */
case OPC_STATE_INIT:
GNUNET_free (opc->data);
break;
+
case OPC_STATE_FINISHED:
break;
}
struct GNUNET_TESTBED_PeerGetConfigurationMessage *msg;
msg =
- GNUNET_malloc (sizeof
- (struct GNUNET_TESTBED_PeerGetConfigurationMessage));
+ GNUNET_malloc (sizeof
+ (struct GNUNET_TESTBED_PeerGetConfigurationMessage));
msg->header.size =
- htons (sizeof (struct GNUNET_TESTBED_PeerGetConfigurationMessage));
- msg->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_GET_PEER_CONFIGURATION);
+ htons (sizeof(struct GNUNET_TESTBED_PeerGetConfigurationMessage));
+ msg->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_GET_PEER_INFORMATION);
msg->peer_id = htonl (peer_id);
msg->operation_id = GNUNET_htonll (operation_id);
return msg;
GNUNET_assert (NULL != data);
opc->state = OPC_STATE_STARTED;
msg =
- GNUNET_TESTBED_generate_peergetconfig_msg_ (data->peer->unique_id,
- opc->id);
+ GNUNET_TESTBED_generate_peergetconfig_msg_ (data->peer->unique_id,
+ opc->id);
GNUNET_TESTBED_insert_opc_ (opc->c, opc);
GNUNET_TESTBED_queue_message_ (opc->c, &msg->header);
}
{
case OPC_STATE_STARTED:
GNUNET_TESTBED_remove_opc_ (opc->c, opc);
- /* no break; continue */
+
+ /* no break; continue */
case OPC_STATE_INIT:
GNUNET_free (opc->data);
break;
+
case OPC_STATE_FINISHED:
- GNUNET_assert (NULL != (data = opc->data));
+ data = opc->data;
+ GNUNET_assert (NULL != data);
switch (data->pit)
{
case GNUNET_TESTBED_PIT_CONFIGURATION:
if (NULL != data->result.cfg)
GNUNET_CONFIGURATION_destroy (data->result.cfg);
break;
+
case GNUNET_TESTBED_PIT_IDENTITY:
GNUNET_free (data->result.id);
break;
+
default:
GNUNET_assert (0); /* We should never reach here */
}
opstart_overlay_connect (void *cls)
{
struct OperationContext *opc = cls;
+ struct GNUNET_MQ_Envelope *env;
struct GNUNET_TESTBED_OverlayConnectMessage *msg;
struct OverlayConnectData *data;
opc->state = OPC_STATE_STARTED;
data = opc->data;
GNUNET_assert (NULL != data);
- data->tslot_index = GNUNET_TESTBED_get_tslot_ (data->p1->host, data);
- data->tstart = GNUNET_TIME_absolute_get ();
- msg = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_OverlayConnectMessage));
- msg->header.size =
- htons (sizeof (struct GNUNET_TESTBED_OverlayConnectMessage));
- msg->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_OVERLAY_CONNECT);
+ env = GNUNET_MQ_msg (msg,
+ GNUNET_MESSAGE_TYPE_TESTBED_OVERLAY_CONNECT);
msg->peer1 = htonl (data->p1->unique_id);
msg->peer2 = htonl (data->p2->unique_id);
msg->operation_id = GNUNET_htonll (opc->id);
msg->peer2_host_id = htonl (GNUNET_TESTBED_host_get_id_ (data->p2->host));
- GNUNET_TESTBED_insert_opc_ (opc->c, opc);
- GNUNET_TESTBED_queue_message_ (opc->c, &msg->header);
+ GNUNET_TESTBED_insert_opc_ (opc->c,
+ opc);
+ GNUNET_MQ_send (opc->c->mq,
+ env);
}
oprelease_overlay_connect (void *cls)
{
struct OperationContext *opc = cls;
- struct GNUNET_TIME_Relative duration;
struct OverlayConnectData *data;
data = opc->data;
{
case OPC_STATE_INIT:
break;
+
case OPC_STATE_STARTED:
- (void) GNUNET_TESTBED_release_time_slot_ (data->p1->host, data->tslot_index,
- data);
GNUNET_TESTBED_remove_opc_ (opc->c, opc);
break;
+
case OPC_STATE_FINISHED:
- duration = GNUNET_TIME_absolute_get_duration (data->tstart);
- GNUNET_TESTBED_update_time_slot_ (data->p1->host, data->tslot_index, data,
- duration, data->failed);
+ break;
}
GNUNET_free (data);
GNUNET_free (opc);
{
struct OperationContext *opc = cls;
struct PeerReconfigureData *data = opc->data;
+ struct GNUNET_MQ_Envelope *env;
struct GNUNET_TESTBED_PeerReconfigureMessage *msg;
char *xconfig;
size_t xc_size;
- uint16_t msize;
-
+
opc->state = OPC_STATE_STARTED;
GNUNET_assert (NULL != data);
- xc_size = GNUNET_TESTBED_compress_config_ (data->config, data->cfg_size,
+ xc_size = GNUNET_TESTBED_compress_config_ (data->config,
+ data->cfg_size,
&xconfig);
GNUNET_free (data->config);
data->config = NULL;
- GNUNET_assert (xc_size <= UINT16_MAX);
- msize = (uint16_t) xc_size +
- sizeof (struct GNUNET_TESTBED_PeerReconfigureMessage);
- msg = GNUNET_realloc (xconfig, msize);
- (void) memmove (&msg[1], msg, xc_size);
- msg->header.size = htons (msize);
- msg->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_RECONFIGURE_PEER);
+ GNUNET_assert (xc_size < UINT16_MAX - sizeof(*msg));
+ env = GNUNET_MQ_msg_extra (msg,
+ xc_size,
+ GNUNET_MESSAGE_TYPE_TESTBED_RECONFIGURE_PEER);
msg->peer_id = htonl (data->peer->unique_id);
msg->operation_id = GNUNET_htonll (opc->id);
msg->config_size = htons (data->cfg_size);
+ GNUNET_memcpy (&msg[1],
+ xconfig,
+ xc_size);
+ GNUNET_free (xconfig);
GNUNET_free (data);
opc->data = NULL;
GNUNET_TESTBED_insert_opc_ (opc->c, opc);
- GNUNET_TESTBED_queue_message_ (opc->c, &msg->header);
+ GNUNET_MQ_send (opc->c->mq,
+ env);
}
{
struct OperationContext *opc = cls;
struct PeerReconfigureData *data = opc->data;
-
+
switch (opc->state)
{
case OPC_STATE_INIT:
GNUNET_free (data->config);
GNUNET_free (data);
break;
+
case OPC_STATE_STARTED:
GNUNET_TESTBED_remove_opc_ (opc->c, opc);
break;
- case OPC_STATE_FINISHED:
+
+ case OPC_STATE_FINISHED:
break;
}
GNUNET_free (opc);
const struct GNUNET_CONFIGURATION_Handle *cfg,
GNUNET_TESTBED_PeerCreateCallback cb, void *cls)
{
-
struct GNUNET_TESTBED_Peer *peer;
struct PeerCreateData *data;
struct OperationContext *opc;
static uint32_t id_gen;
- peer = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_Peer));
+ peer = GNUNET_new (struct GNUNET_TESTBED_Peer);
peer->controller = controller;
peer->host = host;
peer->unique_id = id_gen++;
- peer->state = PS_INVALID;
- data = GNUNET_malloc (sizeof (struct PeerCreateData));
+ peer->state = TESTBED_PS_INVALID;
+ data = GNUNET_new (struct PeerCreateData);
data->host = host;
data->cfg = cfg;
data->cb = cb;
data->cls = cls;
data->peer = peer;
- opc = GNUNET_malloc (sizeof (struct OperationContext));
+ opc = GNUNET_new (struct OperationContext);
opc->c = controller;
opc->data = data;
opc->id = GNUNET_TESTBED_get_next_op_id (controller);
opc->type = OP_PEER_CREATE;
opc->op =
- GNUNET_TESTBED_operation_create_ (opc, &opstart_peer_create,
- &oprelease_peer_create);
+ GNUNET_TESTBED_operation_create_ (opc, &opstart_peer_create,
+ &oprelease_peer_create);
GNUNET_TESTBED_operation_queue_insert_ (controller->opq_parallel_operations,
opc->op);
GNUNET_TESTBED_operation_begin_wait_ (opc->op);
struct OperationContext *opc;
struct PeerEventData *data;
- data = GNUNET_malloc (sizeof (struct PeerEventData));
+ data = GNUNET_new (struct PeerEventData);
data->peer = peer;
data->pcc = pcc;
data->pcc_cls = pcc_cls;
- opc = GNUNET_malloc (sizeof (struct OperationContext));
+ opc = GNUNET_new (struct OperationContext);
opc->c = peer->controller;
opc->data = data;
opc->op_cls = op_cls;
opc->id = GNUNET_TESTBED_get_next_op_id (opc->c);
opc->type = OP_PEER_START;
opc->op =
- GNUNET_TESTBED_operation_create_ (opc, &opstart_peer_start,
- &oprelease_peer_start);
+ GNUNET_TESTBED_operation_create_ (opc, &opstart_peer_start,
+ &oprelease_peer_start);
GNUNET_TESTBED_operation_queue_insert_ (opc->c->opq_parallel_operations,
opc->op);
GNUNET_TESTBED_operation_begin_wait_ (opc->op);
struct OperationContext *opc;
struct PeerEventData *data;
- data = GNUNET_malloc (sizeof (struct PeerEventData));
+ data = GNUNET_new (struct PeerEventData);
data->peer = peer;
data->pcc = pcc;
data->pcc_cls = pcc_cls;
- opc = GNUNET_malloc (sizeof (struct OperationContext));
+ opc = GNUNET_new (struct OperationContext);
opc->c = peer->controller;
opc->data = data;
opc->op_cls = op_cls;
opc->id = GNUNET_TESTBED_get_next_op_id (opc->c);
opc->type = OP_PEER_STOP;
opc->op =
- GNUNET_TESTBED_operation_create_ (opc, &opstart_peer_stop,
- &oprelease_peer_stop);
+ GNUNET_TESTBED_operation_create_ (opc, &opstart_peer_stop,
+ &oprelease_peer_stop);
GNUNET_TESTBED_operation_queue_insert_ (opc->c->opq_parallel_operations,
opc->op);
GNUNET_TESTBED_operation_begin_wait_ (opc->op);
* with event type GNUNET_TESTBED_ET_OPERATION_FINISHED when result for this
* operation is available. Instead, the GNUNET_TESTBED_PeerInfoCallback() will
* be called.
+ * The peer information in the callback is valid until the operation is canceled.
*
* @param peer peer to request information about
* @param pit desired information
GNUNET_assert (GNUNET_TESTBED_PIT_GENERIC != pit);
GNUNET_assert (NULL != cb);
- data = GNUNET_malloc (sizeof (struct PeerInfoData));
+ data = GNUNET_new (struct PeerInfoData);
data->peer = peer;
data->pit = pit;
data->cb = cb;
data->cb_cls = cb_cls;
- opc = GNUNET_malloc (sizeof (struct OperationContext));
+ opc = GNUNET_new (struct OperationContext);
opc->c = peer->controller;
opc->data = data;
opc->type = OP_PEER_INFO;
opc->id = GNUNET_TESTBED_get_next_op_id (opc->c);
opc->op =
- GNUNET_TESTBED_operation_create_ (opc, &opstart_peer_getinfo,
- &oprelease_peer_getinfo);
+ GNUNET_TESTBED_operation_create_ (opc, &opstart_peer_getinfo,
+ &oprelease_peer_getinfo);
GNUNET_TESTBED_operation_queue_insert_ (opc->c->opq_parallel_operations,
opc->op);
GNUNET_TESTBED_operation_begin_wait_ (opc->op);
struct PeerReconfigureData *data;
size_t csize;
- data = GNUNET_malloc (sizeof (struct PeerReconfigureData));
+ data = GNUNET_new (struct PeerReconfigureData);
data->peer = peer;
data->config = GNUNET_CONFIGURATION_serialize (cfg, &csize);
if (NULL == data->config)
return NULL;
}
data->cfg_size = (uint16_t) csize;
- opc = GNUNET_malloc (sizeof (struct OperationContext));
+ opc = GNUNET_new (struct OperationContext);
opc->c = peer->controller;
opc->data = data;
opc->type = OP_PEER_RECONFIGURE;
opc->id = GNUNET_TESTBED_get_next_op_id (opc->c);
opc->op =
- GNUNET_TESTBED_operation_create_ (opc, &opstart_peer_reconfigure,
- &oprelease_peer_reconfigure);
+ GNUNET_TESTBED_operation_create_ (opc, &opstart_peer_reconfigure,
+ &oprelease_peer_reconfigure);
GNUNET_TESTBED_operation_queue_insert_ (opc->c->opq_parallel_operations,
opc->op);
GNUNET_TESTBED_operation_begin_wait_ (opc->op);
{
struct OperationContext *opc;
- opc = GNUNET_malloc (sizeof (struct OperationContext));
+ opc = GNUNET_new (struct OperationContext);
opc->data = peer;
opc->c = peer->controller;
opc->id = GNUNET_TESTBED_get_next_op_id (peer->controller);
opc->type = OP_PEER_DESTROY;
opc->op =
- GNUNET_TESTBED_operation_create_ (opc, &opstart_peer_destroy,
- &oprelease_peer_destroy);
+ GNUNET_TESTBED_operation_create_ (opc, &opstart_peer_destroy,
+ &oprelease_peer_destroy);
GNUNET_TESTBED_operation_queue_insert_ (opc->c->opq_parallel_operations,
opc->op);
GNUNET_TESTBED_operation_begin_wait_ (opc->op);
struct OperationContext *opc;
struct OverlayConnectData *data;
- GNUNET_assert ((PS_STARTED == p1->state) && (PS_STARTED == p2->state));
- data = GNUNET_malloc (sizeof (struct OverlayConnectData));
+ GNUNET_assert ((TESTBED_PS_STARTED == p1->state) && (TESTBED_PS_STARTED ==
+ p2->state));
+ data = GNUNET_new (struct OverlayConnectData);
data->p1 = p1;
data->p2 = p2;
data->cb = cb;
data->cb_cls = cb_cls;
- opc = GNUNET_malloc (sizeof (struct OperationContext));
+ opc = GNUNET_new (struct OperationContext);
opc->data = data;
opc->c = p1->controller;
opc->id = GNUNET_TESTBED_get_next_op_id (opc->c);
opc->type = OP_OVERLAY_CONNECT;
opc->op_cls = op_cls;
opc->op =
- GNUNET_TESTBED_operation_create_ (opc, &opstart_overlay_connect,
- &oprelease_overlay_connect);
+ GNUNET_TESTBED_operation_create_ (opc, &opstart_overlay_connect,
+ &oprelease_overlay_connect);
GNUNET_TESTBED_host_queue_oc_ (p1->host, opc->op);
GNUNET_TESTBED_operation_begin_wait_ (opc->op);
return opc->op;
opstart_manage_service (void *cls)
{
struct OperationContext *opc = cls;
+ struct ManageServiceData *data = opc->data;
+ struct GNUNET_MQ_Envelope *env;
struct GNUNET_TESTBED_ManagePeerServiceMessage *msg;
- struct ManageServiceData *data;
-
- GNUNET_assert (NULL != (data = opc->data));
- msg = GNUNET_malloc (data->msize);
- msg->header.size = htons (data->msize);
- msg->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_MANAGE_PEER_SERVICE);
+ size_t xlen;
+
+ GNUNET_assert (NULL != data);
+ xlen = data->msize - sizeof(struct GNUNET_TESTBED_ManagePeerServiceMessage);
+ env = GNUNET_MQ_msg_extra (msg,
+ xlen,
+ GNUNET_MESSAGE_TYPE_TESTBED_MANAGE_PEER_SERVICE);
msg->peer_id = htonl (data->peer->unique_id);
msg->operation_id = GNUNET_htonll (opc->id);
msg->start = (uint8_t) data->start;
- (void) memcpy (&msg[1], data->service_name, data->msize
- - sizeof (struct GNUNET_TESTBED_ManagePeerServiceMessage));
+ GNUNET_memcpy (&msg[1],
+ data->service_name,
+ xlen);
GNUNET_free (data->service_name);
data->service_name = NULL;
opc->state = OPC_STATE_STARTED;
GNUNET_TESTBED_insert_opc_ (opc->c, opc);
- GNUNET_TESTBED_queue_message_ (opc->c, &msg->header);
+ GNUNET_MQ_send (opc->c->mq,
+ env);
}
case OPC_STATE_STARTED:
GNUNET_TESTBED_remove_opc_ (opc->c, opc);
break;
+
case OPC_STATE_INIT:
GNUNET_assert (NULL != data);
GNUNET_free (data->service_name);
break;
+
case OPC_STATE_FINISHED:
break;
}
GNUNET_TESTBED_peer_manage_service (void *op_cls,
struct GNUNET_TESTBED_Peer *peer,
const char *service_name,
- GNUNET_TESTBED_OperationCompletionCallback cb,
+ GNUNET_TESTBED_OperationCompletionCallback
+ cb,
void *cb_cls,
unsigned int start)
{
struct OperationContext *opc;
size_t msize;
- GNUNET_assert (PS_STARTED == peer->state); /* peer is not running? */
+ GNUNET_assert (TESTBED_PS_STARTED == peer->state); /* peer is not running? */
msize = strlen (service_name) + 1;
- msize += sizeof (struct GNUNET_TESTBED_ManagePeerServiceMessage);
- if (GNUNET_SERVER_MAX_MESSAGE_SIZE < msize)
+ msize += sizeof(struct GNUNET_TESTBED_ManagePeerServiceMessage);
+ if (GNUNET_MAX_MESSAGE_SIZE < msize)
return NULL;
- data = GNUNET_malloc (sizeof (struct ManageServiceData));
+ data = GNUNET_new (struct ManageServiceData);
data->cb = cb;
data->cb_cls = cb_cls;
data->peer = peer;
data->service_name = GNUNET_strdup (service_name);
data->start = start;
data->msize = (uint16_t) msize;
- opc = GNUNET_malloc (sizeof (struct OperationContext));
+ opc = GNUNET_new (struct OperationContext);
opc->data = data;
opc->c = peer->controller;
opc->id = GNUNET_TESTBED_get_next_op_id (opc->c);
opc->type = OP_MANAGE_SERVICE;
opc->op_cls = op_cls;
opc->op =
- GNUNET_TESTBED_operation_create_ (opc, &opstart_manage_service,
- &oprelease_manage_service);
+ GNUNET_TESTBED_operation_create_ (opc, &opstart_manage_service,
+ &oprelease_manage_service);
GNUNET_TESTBED_operation_queue_insert_ (opc->c->opq_parallel_operations,
opc->op);
GNUNET_TESTBED_operation_begin_wait_ (opc->op);
}
-
/* end of testbed_api_peers.c */