From 88bebbb29ddb673baf2bc54489a4f62dd801a942 Mon Sep 17 00:00:00 2001 From: emanuel Date: Wed, 1 Feb 2023 18:09:58 +0000 Subject: [PATCH] Add chainInfo to VCM commit --- src/vcm.c | 45 +++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/src/vcm.c b/src/vcm.c index 11f049f..c20186b 100644 --- a/src/vcm.c +++ b/src/vcm.c @@ -189,14 +189,14 @@ static void vcm_reject(VCM_t* vcm, mc_neighbour_s* neighbour) { vcm_rep->vcm.chain->link.buf = malloc(32); vcm_rep->vcm.chain->link.size = 32; memcpy(vcm_rep->vcm.chain->link.buf, coordination->chain.links[0], 32); - vcm->vcm.chain->area = calloc(1, sizeof(ChainInformationArea_t)); - vcm->vcm.chain->area->trees.list.count = 1; - vcm->vcm.chain->area->trees.list.size = 1 * sizeof(OCTET_STRING_t*); - vcm->vcm.chain->area->trees.list.array = malloc(1 * sizeof(OCTET_STRING_t*)); + vcm_rep->vcm.chain->area = calloc(1, sizeof(ChainInformationArea_t)); + vcm_rep->vcm.chain->area->trees.list.count = 1; + vcm_rep->vcm.chain->area->trees.list.size = 1 * sizeof(OCTET_STRING_t*); + vcm_rep->vcm.chain->area->trees.list.array = malloc(1 * sizeof(OCTET_STRING_t*)); for (int q = 0; q < 1; ++q) { - vcm->vcm.chain->area->trees.list.array[q] = calloc(1, sizeof(OCTET_STRING_t)); - vcm->vcm.chain->area->trees.list.array[q]->buf = calloc(1,4); - vcm->vcm.chain->area->trees.list.array[q]->size = 4; + vcm_rep->vcm.chain->area->trees.list.array[q] = calloc(1, sizeof(OCTET_STRING_t)); + vcm_rep->vcm.chain->area->trees.list.array[q]->buf = calloc(1,4); + vcm_rep->vcm.chain->area->trees.list.array[q]->size = 4; } } @@ -340,6 +340,23 @@ static bool commit() { mvc->negotiation->choice.commit.requesterId = coordination->session.own_req ? vcm_com->header.stationID : coordination->session.requester->station_id; + if (coordination->chain.id) { + vcm_com->vcm.chain = calloc(1, sizeof(ChainInformation_t)); + vcm_com->vcm.chain->id = coordination->chain.id; + vcm_com->vcm.chain->link.buf = malloc(32); + vcm_com->vcm.chain->link.size = 32; + memcpy(vcm_com->vcm.chain->link.buf, coordination->chain.links[0], 32); + vcm_com->vcm.chain->area = calloc(1, sizeof(ChainInformationArea_t)); + vcm_com->vcm.chain->area->trees.list.count = 1; + vcm_com->vcm.chain->area->trees.list.size = 1 * sizeof(OCTET_STRING_t*); + vcm_com->vcm.chain->area->trees.list.array = malloc(1 * sizeof(OCTET_STRING_t*)); + for (int q = 0; q < 1; ++q) { + vcm_com->vcm.chain->area->trees.list.array[q] = calloc(1, sizeof(OCTET_STRING_t)); + vcm_com->vcm.chain->area->trees.list.array[q]->buf = calloc(1,4); + vcm_com->vcm.chain->area->trees.list.array[q]->size = 4; + } + } + tx_vcm(vcm_com); ASN_STRUCT_FREE(asn_DEF_VCM, vcm_com); @@ -719,14 +736,14 @@ static int intersection_detected(VCM_t* vcm, mc_neighbour_s* neighbour) { vcm_req->vcm.chain->link.buf = malloc(32); vcm_req->vcm.chain->link.size = 32; memcpy(vcm_req->vcm.chain->link.buf, coordination->chain.links[0], 32); - vcm->vcm.chain->area = calloc(1, sizeof(ChainInformationArea_t)); - vcm->vcm.chain->area->trees.list.count = 1; - vcm->vcm.chain->area->trees.list.size = 1 * sizeof(OCTET_STRING_t*); - vcm->vcm.chain->area->trees.list.array = malloc(1 * sizeof(OCTET_STRING_t*)); + vcm_req->vcm.chain->area = calloc(1, sizeof(ChainInformationArea_t)); + vcm_req->vcm.chain->area->trees.list.count = 1; + vcm_req->vcm.chain->area->trees.list.size = 1 * sizeof(OCTET_STRING_t*); + vcm_req->vcm.chain->area->trees.list.array = malloc(1 * sizeof(OCTET_STRING_t*)); for (int q = 0; q < 1; ++q) { - vcm->vcm.chain->area->trees.list.array[q] = calloc(1, sizeof(OCTET_STRING_t)); - vcm->vcm.chain->area->trees.list.array[q]->buf = calloc(1,4); - vcm->vcm.chain->area->trees.list.array[q]->size = 4; + vcm_req->vcm.chain->area->trees.list.array[q] = calloc(1, sizeof(OCTET_STRING_t)); + vcm_req->vcm.chain->area->trees.list.array[q]->buf = calloc(1,4); + vcm_req->vcm.chain->area->trees.list.array[q]->size = 4; } }