diff --git a/src/dcm.c b/src/dcm.c index fa88ecc..8e8a12d 100644 --- a/src/dcm.c +++ b/src/dcm.c @@ -109,25 +109,11 @@ static int dcm_check_handle_request(facilities_t* facilities, DCM_t* dcm) { dcm_rep->dcm.negotiation = calloc(1, sizeof(CoordinationNegotiation_t)); dcm_rep->dcm.negotiation->present = CoordinationNegotiation_PR_reply; - dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectories.list.count = 1; - dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectories.list.size = sizeof(void*); - dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectories.list.array = malloc(1*sizeof(void*)); - dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectories.list.array[0] = calloc(1,sizeof(AcceptedTrajectory_t)); - AcceptedTrajectory_t* at = dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectories.list.array[0]; - - at->trajectory.list.count = pt->trajectory.list.count; - at->trajectory.list.size = sizeof(void*) * pt->trajectory.list.count; - at->trajectory.list.array = malloc(sizeof(void*) * pt->trajectory.list.count); - for (int i = 0; i < pt->trajectory.list.count; ++i) { - at->trajectory.list.array[i] = calloc(1, sizeof(STPoint_t)); - at->trajectory.list.array[i]->latitude = pt->trajectory.list.array[i]->latitude; - at->trajectory.list.array[i]->longitude = pt->trajectory.list.array[i]->longitude; - at->trajectory.list.array[i]->timestamp.buf = malloc(pt->trajectory.list.array[i]->timestamp.size); - memcpy(at->trajectory.list.array[i]->timestamp.buf, pt->trajectory.list.array[i]->timestamp.buf, pt->trajectory.list.array[i]->timestamp.size); - at->trajectory.list.array[i]->timestamp.size = pt->trajectory.list.array[i]->timestamp.size; - } - - at->id = pt->id; + dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectoriesIds.list.count = 1; + dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectoriesIds.list.size = sizeof(void*); + dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectoriesIds.list.array = malloc(1*sizeof(void*)); + dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectoriesIds.list.array[0] = malloc(sizeof(long)); + *dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectoriesIds.list.array[0] = pt->id; asn_enc_rval_t enc = asn_encode_to_buffer(NULL, ATS_UNALIGNED_CANONICAL_PER, &asn_DEF_DCM, dcm_rep, buf, buf_len); if (enc.encoded == -1) { @@ -180,7 +166,7 @@ static int dcm_check_handle_reply(facilities_t* facilities, DCM_t* dcm) { CoordinationReply_t* coo_rep = &dcm->dcm.negotiation->choice.reply; - syslog_info("[facilities] [dc] received coordination reply with %d accepted trajectories", coo_rep->acceptedTrajectories.list.count); + syslog_info("[facilities] [dc] received coordination reply with %d accepted trajectories", coo_rep->acceptedTrajectoriesIds.list.count); return rv; }