[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r26630 - gnunet/src/testbed
From: |
gnunet |
Subject: |
[GNUnet-SVN] r26630 - gnunet/src/testbed |
Date: |
Thu, 28 Mar 2013 13:05:37 +0100 |
Author: harsha
Date: 2013-03-28 13:05:37 +0100 (Thu, 28 Mar 2013)
New Revision: 26630
Modified:
gnunet/src/testbed/testbed_api.c
gnunet/src/testbed/testbed_api_peers.c
Log:
- fix DLL removals while cleaning up operation contexts
Modified: gnunet/src/testbed/testbed_api.c
===================================================================
--- gnunet/src/testbed/testbed_api.c 2013-03-28 11:56:33 UTC (rev 26629)
+++ gnunet/src/testbed/testbed_api.c 2013-03-28 12:05:37 UTC (rev 26630)
@@ -532,8 +532,7 @@
return GNUNET_YES;
}
GNUNET_assert (OP_OVERLAY_CONNECT == opc->type);
- data = opc->data;
- GNUNET_assert (NULL != data);
+ GNUNET_assert (NULL != (data = opc->data));
GNUNET_assert ((ntohl (msg->peer1) == data->p1->unique_id) &&
(ntohl (msg->peer2) == data->p2->unique_id));
event.type = (enum GNUNET_TESTBED_EventType) ntohl (msg->event_type);
@@ -815,8 +814,6 @@
GNUNET_break (0);
return GNUNET_YES;
}
- GNUNET_free (opc->data);
- opc->data = NULL;
opc->state = OPC_STATE_FINISHED;
GNUNET_CONTAINER_DLL_remove (opc->c->ocq_head, opc->c->ocq_tail, opc);
if ((0 != (GNUNET_TESTBED_ET_OPERATION_FINISHED & c->event_mask)) &&
@@ -873,12 +870,13 @@
GNUNET_break (0);
return GNUNET_YES;
}
- data = opc->data;
- GNUNET_assert (NULL != data);
+ GNUNET_assert (NULL != (data = opc->data));
host = GNUNET_TESTBED_host_lookup_by_id_ (data->host_id);
GNUNET_assert (NULL != host);
GNUNET_free (data);
opc->data = NULL;
+ opc->state = OPC_STATE_FINISHED;
+ GNUNET_CONTAINER_DLL_remove (opc->c->ocq_head, opc->c->ocq_tail, opc);
event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
event.op = opc->op;
event.op_cls = opc->op_cls;
@@ -905,8 +903,6 @@
GNUNET_TESTBED_host_replace_cfg_ (host, cfg);
}
}
- GNUNET_CONTAINER_DLL_remove (opc->c->ocq_head, opc->c->ocq_tail, opc);
- opc->state = OPC_STATE_FINISHED;
if (0 != (c->event_mask & (1L << GNUNET_TESTBED_ET_OPERATION_FINISHED)))
{
if (NULL != c->cc)
@@ -1218,7 +1214,7 @@
switch (opc->state)
{
case OPC_STATE_INIT:
- GNUNET_free (data->msg);
+ GNUNET_free (data->msg);
break;
case OPC_STATE_STARTED:
GNUNET_CONTAINER_DLL_remove (opc->c->ocq_head, opc->c->ocq_tail, opc);
@@ -1240,11 +1236,14 @@
opstart_get_slave_config (void *cls)
{
struct OperationContext *opc = cls;
- struct GetSlaveConfigData *data;
+ struct GetSlaveConfigData *data = opc->data;
struct GNUNET_TESTBED_SlaveGetConfigurationMessage *msg;
- data = opc->data;
+ GNUNET_assert (NULL != data);
msg = GNUNET_TESTBED_generate_slavegetconfig_msg_ (opc->id, data->slave_id);
+ GNUNET_free (opc->data);
+ data = NULL;
+ opc->data = NULL;
GNUNET_CONTAINER_DLL_insert_tail (opc->c->ocq_head, opc->c->ocq_tail, opc);
GNUNET_TESTBED_queue_message_ (opc->c, &msg->header);
opc->state = OPC_STATE_STARTED;
@@ -1267,7 +1266,6 @@
GNUNET_free (opc->data);
break;
case OPC_STATE_STARTED:
- GNUNET_free (opc->data);
GNUNET_CONTAINER_DLL_remove (opc->c->ocq_head, opc->c->ocq_tail, opc);
break;
case OPC_STATE_FINISHED:
Modified: gnunet/src/testbed/testbed_api_peers.c
===================================================================
--- gnunet/src/testbed/testbed_api_peers.c 2013-03-28 11:56:33 UTC (rev
26629)
+++ gnunet/src/testbed/testbed_api_peers.c 2013-03-28 12:05:37 UTC (rev
26630)
@@ -105,9 +105,8 @@
size_t xc_size;
uint16_t msize;
- GNUNET_assert (OP_PEER_CREATE == opc->type);
- data = opc->data;
- GNUNET_assert (NULL != data);
+ GNUNET_assert (OP_PEER_CREATE == opc->type);
+ GNUNET_assert (NULL != (data = opc->data));
GNUNET_assert (NULL != data->peer);
opc->state = OPC_STATE_STARTED;
config = GNUNET_CONFIGURATION_serialize (data->cfg, &c_size);
@@ -166,8 +165,7 @@
struct GNUNET_TESTBED_PeerDestroyMessage *msg;
GNUNET_assert (OP_PEER_DESTROY == opc->type);
- peer = opc->data;
- GNUNET_assert (NULL != peer);
+ GNUNET_assert (NULL != (peer = opc->data));
opc->state = OPC_STATE_STARTED;
msg = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_PeerDestroyMessage));
msg->header.size = htons (sizeof (struct GNUNET_TESTBED_PeerDestroyMessage));
@@ -189,8 +187,16 @@
{
struct OperationContext *opc = cls;
- if (OPC_STATE_FINISHED != opc->state)
+ switch (opc->state)
+ {
+ case OPC_STATE_STARTED:
GNUNET_CONTAINER_DLL_remove (opc->c->ocq_head, opc->c->ocq_tail, opc);
+ /* no break; continue */
+ case OPC_STATE_INIT:
+ break;
+ case OPC_STATE_FINISHED:
+ break;
+ }
GNUNET_free (opc);
}
@@ -209,10 +215,8 @@
struct GNUNET_TESTBED_Peer *peer;
GNUNET_assert (OP_PEER_START == opc->type);
- GNUNET_assert (NULL != opc->data);
- data = opc->data;
- GNUNET_assert (NULL != data->peer);
- peer = data->peer;
+ GNUNET_assert (NULL != (data = opc->data));
+ GNUNET_assert (NULL != (peer = data->peer));
GNUNET_assert ((PS_CREATED == peer->state) || (PS_STOPPED == peer->state));
opc->state = OPC_STATE_STARTED;
msg = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_PeerStartMessage));
@@ -235,10 +239,16 @@
{
struct OperationContext *opc = cls;
- if (OPC_STATE_FINISHED != opc->state)
+ switch (opc->state)
{
+ case OPC_STATE_STARTED:
+ GNUNET_CONTAINER_DLL_remove (opc->c->ocq_head, opc->c->ocq_tail, opc);
+ /* no break; continue */
+ case OPC_STATE_INIT:
GNUNET_free (opc->data);
- GNUNET_CONTAINER_DLL_remove (opc->c->ocq_head, opc->c->ocq_tail, opc);
+ break;
+ case OPC_STATE_FINISHED:
+ break;
}
GNUNET_free (opc);
}
@@ -257,10 +267,8 @@
struct PeerEventData *data;
struct GNUNET_TESTBED_Peer *peer;
- GNUNET_assert (NULL != opc->data);
- data = opc->data;
- GNUNET_assert (NULL != data->peer);
- peer = data->peer;
+ GNUNET_assert (NULL != (data = opc->data));
+ GNUNET_assert (NULL != (peer = data->peer));
GNUNET_assert (PS_STARTED == peer->state);
opc->state = OPC_STATE_STARTED;
msg = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_PeerStopMessage));
@@ -283,10 +291,16 @@
{
struct OperationContext *opc = cls;
- if (OPC_STATE_FINISHED != opc->state)
+ switch (opc->state)
{
+ case OPC_STATE_STARTED:
+ GNUNET_CONTAINER_DLL_remove (opc->c->ocq_head, opc->c->ocq_tail, opc);
+ /* no break; continue */
+ case OPC_STATE_INIT:
GNUNET_free (opc->data);
- GNUNET_CONTAINER_DLL_remove (opc->c->ocq_head, opc->c->ocq_tail, opc);
+ break;
+ case OPC_STATE_FINISHED:
+ break;
}
GNUNET_free (opc);
}
@@ -330,8 +344,7 @@
struct PeerInfoData *data;
struct GNUNET_TESTBED_PeerGetConfigurationMessage *msg;
- data = opc->data;
- GNUNET_assert (NULL != data);
+ GNUNET_assert (NULL != (data = opc->data));
opc->state = OPC_STATE_STARTED;
msg =
GNUNET_TESTBED_generate_peergetconfig_msg_ (data->peer->unique_id,
@@ -352,19 +365,21 @@
struct OperationContext *opc = cls;
struct GNUNET_TESTBED_PeerInformation *data;
- if (OPC_STATE_FINISHED != opc->state)
+ switch (opc->state)
{
- GNUNET_free_non_null (opc->data);
+ case OPC_STATE_STARTED:
GNUNET_CONTAINER_DLL_remove (opc->c->ocq_head, opc->c->ocq_tail, opc);
- }
- else
- {
- data = opc->data;
- GNUNET_assert (NULL != data);
+ /* no break; continue */
+ case OPC_STATE_INIT:
+ GNUNET_free (opc->data);
+ break;
+ case OPC_STATE_FINISHED:
+ GNUNET_assert (NULL != (data = opc->data));
switch (data->pit)
{
case GNUNET_TESTBED_PIT_CONFIGURATION:
- GNUNET_CONFIGURATION_destroy (data->result.cfg);
+ if (NULL != data->result.cfg)
+ GNUNET_CONFIGURATION_destroy (data->result.cfg);
break;
case GNUNET_TESTBED_PIT_IDENTITY:
GNUNET_free (data->result.id);
@@ -373,6 +388,7 @@
GNUNET_assert (0); /* We should never reach here */
}
GNUNET_free (data);
+ break;
}
GNUNET_free (opc);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r26630 - gnunet/src/testbed,
gnunet <=