Compability with it2s-asn
This commit is contained in:
parent
8ae273cafe
commit
ded1ae5c9e
|
|
@ -102,7 +102,7 @@ static int mk_cam(facilities_t* facilities, uint8_t *cam_oer, uint32_t *cam_len)
|
||||||
CAM_t *cam = calloc(1, sizeof(CAM_t));
|
CAM_t *cam = calloc(1, sizeof(CAM_t));
|
||||||
|
|
||||||
cam->header.protocolVersion = 2;
|
cam->header.protocolVersion = 2;
|
||||||
cam->header.messageID = ItsPduHeader__messageID_cam;
|
cam->header.messageID = messageID_cam;
|
||||||
pthread_mutex_lock(&facilities->id.lock);
|
pthread_mutex_lock(&facilities->id.lock);
|
||||||
cam->header.stationID = facilities->id.station_id;
|
cam->header.stationID = facilities->id.station_id;
|
||||||
pthread_mutex_unlock(&facilities->id.lock);
|
pthread_mutex_unlock(&facilities->id.lock);
|
||||||
|
|
@ -785,7 +785,7 @@ void *ca_service(void *fc) {
|
||||||
pthread_mutex_lock(&facilities->id.lock);
|
pthread_mutex_lock(&facilities->id.lock);
|
||||||
uint64_t station_id = facilities->id.station_id;
|
uint64_t station_id = facilities->id.station_id;
|
||||||
pthread_mutex_unlock(&facilities->id.lock);
|
pthread_mutex_unlock(&facilities->id.lock);
|
||||||
itss_db_add(facilities->logging.dbms, station_id, bpr->id, &facilities->epv, true, ItsPduHeader__messageID_cam, NULL, bpr->data.buf, bpr->data.size);
|
itss_db_add(facilities->logging.dbms, station_id, bpr->id, &facilities->epv, true, messageID_cam, NULL, bpr->data.buf, bpr->data.size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (facilities->logging.recorder) {
|
if (facilities->logging.recorder) {
|
||||||
|
|
|
||||||
|
|
@ -100,21 +100,21 @@ static int transport_indication(facilities_t *facilities, void* responder, void*
|
||||||
case Port_cam:
|
case Port_cam:
|
||||||
its_msg_descriptor = &asn_DEF_CAM;
|
its_msg_descriptor = &asn_DEF_CAM;
|
||||||
its_msg = calloc(1, sizeof(CAM_t));
|
its_msg = calloc(1, sizeof(CAM_t));
|
||||||
its_msg_type = ItsPduHeader__messageID_cam;
|
its_msg_type = messageID_cam;
|
||||||
handled_msg = true;
|
handled_msg = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Port_denm:
|
case Port_denm:
|
||||||
its_msg_descriptor = &asn_DEF_DENM;
|
its_msg_descriptor = &asn_DEF_DENM;
|
||||||
its_msg = calloc(1, sizeof(DENM_t));
|
its_msg = calloc(1, sizeof(DENM_t));
|
||||||
its_msg_type = ItsPduHeader__messageID_denm;
|
its_msg_type = messageID_denm;
|
||||||
handled_msg = true;
|
handled_msg = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Port_ivim:
|
case Port_ivim:
|
||||||
its_msg_descriptor = &asn_DEF_IVIM;
|
its_msg_descriptor = &asn_DEF_IVIM;
|
||||||
its_msg = calloc(1, sizeof(IVIM_t));
|
its_msg = calloc(1, sizeof(IVIM_t));
|
||||||
its_msg_type = ItsPduHeader__messageID_ivim;
|
its_msg_type = messageID_ivim;
|
||||||
handled_msg = true;
|
handled_msg = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -128,7 +128,7 @@ static int transport_indication(facilities_t *facilities, void* responder, void*
|
||||||
case Port_saem:
|
case Port_saem:
|
||||||
its_msg_descriptor = &asn_DEF_SAEM;
|
its_msg_descriptor = &asn_DEF_SAEM;
|
||||||
its_msg = calloc(1, sizeof(SAEM_t));
|
its_msg = calloc(1, sizeof(SAEM_t));
|
||||||
its_msg_type = ItsPduHeader__messageID_saem;
|
its_msg_type = messageID_saem;
|
||||||
handled_msg = true;
|
handled_msg = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -297,6 +297,17 @@ static int transport_indication(facilities_t *facilities, void* responder, void*
|
||||||
|
|
||||||
if (srep->returnCode == SecurityReplyReturnCode_rejected) {
|
if (srep->returnCode == SecurityReplyReturnCode_rejected) {
|
||||||
syslog_err("[facilities] SecurityReply.tlsRecv rejected");
|
syslog_err("[facilities] SecurityReply.tlsRecv rejected");
|
||||||
|
|
||||||
|
SecurityRequest_t* sREQ = calloc(1, sizeof(SecurityRequest_t));
|
||||||
|
sREQ->present = SecurityRequest_PR_tlsShutdown;
|
||||||
|
sREQ->choice.tlsShutdown.connId = id;
|
||||||
|
b_sdu[0] = 4;
|
||||||
|
asn_enc_rval_t enc = oer_encode_to_buffer(&asn_DEF_SecurityRequest, NULL, sREQ, b_sdu+1, 2047);
|
||||||
|
syslog_debug("[facilities]->[security] SecurityRequest.tlsShutdown (%ldB)", enc.encoded+1);
|
||||||
|
zmq_send(security_socket, b_sdu, enc.encoded+1, 0);
|
||||||
|
int32_t rl = zmq_recv(security_socket, b_sdu, 2048, 0);
|
||||||
|
syslog_debug("[facilities]<-[security] SecurityReply.tlsShutdown (%dB)", rl);
|
||||||
|
|
||||||
rv = 1;
|
rv = 1;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,7 @@
|
||||||
#include <it2s-tender/time.h>
|
#include <it2s-tender/time.h>
|
||||||
#include <it2s-tender/syslog.h>
|
#include <it2s-tender/syslog.h>
|
||||||
|
|
||||||
#include <ivim/Pictogram-trafficSign.h>
|
#include <ivim/ISO14823Code.h>
|
||||||
#include <ivim/Pictogram-conditionsSign.h>
|
|
||||||
|
|
||||||
const ivi_diid_ssp_bm_t DIID_SSP_BM_MAP[] = {
|
const ivi_diid_ssp_bm_t DIID_SSP_BM_MAP[] = {
|
||||||
{"Vienna Convention Code for road sign", IVI_DIID_ViennaCodeConvention, 0x800000},
|
{"Vienna Convention Code for road sign", IVI_DIID_ViennaCodeConvention, 0x800000},
|
||||||
|
|
@ -123,13 +122,13 @@ static enum SERVICE_EVAL_R service_check(infrastructure_t* infrastructure, enum
|
||||||
switch (code->choice.iso14823.pictogramCode.serviceCategoryCode.present) {
|
switch (code->choice.iso14823.pictogramCode.serviceCategoryCode.present) {
|
||||||
case ISO14823Code__pictogramCode__serviceCategoryCode_PR_trafficSignPictogram:
|
case ISO14823Code__pictogramCode__serviceCategoryCode_PR_trafficSignPictogram:
|
||||||
switch (code->choice.iso14823.pictogramCode.serviceCategoryCode.choice.trafficSignPictogram) {
|
switch (code->choice.iso14823.pictogramCode.serviceCategoryCode.choice.trafficSignPictogram) {
|
||||||
case Pictogram_trafficSign_dangerWarning:
|
case ISO14823Code__pictogramCode__serviceCategoryCode__trafficSignPictogram_dangerWarning:
|
||||||
if (!permissions_check(IVI_DIID_TrafficSignPictogramDangerWarning, ssp, ssp_len)) {return SERVICE_BAD_PERMISSIONS;}
|
if (!permissions_check(IVI_DIID_TrafficSignPictogramDangerWarning, ssp, ssp_len)) {return SERVICE_BAD_PERMISSIONS;}
|
||||||
break;
|
break;
|
||||||
case Pictogram_trafficSign_regulatory:
|
case ISO14823Code__pictogramCode__serviceCategoryCode__trafficSignPictogram_regulatory:
|
||||||
if (!permissions_check(IVI_DIID_TrafficSignPictogramRegulatory, ssp, ssp_len)) {return SERVICE_BAD_PERMISSIONS;}
|
if (!permissions_check(IVI_DIID_TrafficSignPictogramRegulatory, ssp, ssp_len)) {return SERVICE_BAD_PERMISSIONS;}
|
||||||
break;
|
break;
|
||||||
case Pictogram_trafficSign_informative:
|
case ISO14823Code__pictogramCode__serviceCategoryCode__trafficSignPictogram_informative:
|
||||||
if (!permissions_check(IVI_DIID_TrafficSignPictogramInformative, ssp, ssp_len)) {return SERVICE_BAD_PERMISSIONS;}
|
if (!permissions_check(IVI_DIID_TrafficSignPictogramInformative, ssp, ssp_len)) {return SERVICE_BAD_PERMISSIONS;}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -140,10 +139,10 @@ static enum SERVICE_EVAL_R service_check(infrastructure_t* infrastructure, enum
|
||||||
|
|
||||||
case ISO14823Code__pictogramCode__serviceCategoryCode_PR_ambientOrRoadConditionPictogram:
|
case ISO14823Code__pictogramCode__serviceCategoryCode_PR_ambientOrRoadConditionPictogram:
|
||||||
switch (code->choice.iso14823.pictogramCode.serviceCategoryCode.choice.ambientOrRoadConditionPictogram) {
|
switch (code->choice.iso14823.pictogramCode.serviceCategoryCode.choice.ambientOrRoadConditionPictogram) {
|
||||||
case Pictogram_conditionsSign_ambientCondition:
|
case ISO14823Code__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram_ambientCondition:
|
||||||
if (!permissions_check(IVI_DIID_ServiceCategoryCodeAmbientOrRoadConditionPictogramAmbientCondition, ssp, ssp_len)) {return SERVICE_BAD_PERMISSIONS;}
|
if (!permissions_check(IVI_DIID_ServiceCategoryCodeAmbientOrRoadConditionPictogramAmbientCondition, ssp, ssp_len)) {return SERVICE_BAD_PERMISSIONS;}
|
||||||
break;
|
break;
|
||||||
case Pictogram_conditionsSign_roadCondition:
|
case ISO14823Code__pictogramCode__serviceCategoryCode__ambientOrRoadConditionPictogram_roadCondition:
|
||||||
if (!permissions_check(IVI_DIID_ServiceCategoryCodeAmbientOrRoadConditionPictogramRoadCondition, ssp, ssp_len)) {return SERVICE_BAD_PERMISSIONS;}
|
if (!permissions_check(IVI_DIID_ServiceCategoryCodeAmbientOrRoadConditionPictogramRoadCondition, ssp, ssp_len)) {return SERVICE_BAD_PERMISSIONS;}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1277,6 +1277,7 @@ void tolling_info_free(tolling_info_t* ti) {
|
||||||
}
|
}
|
||||||
|
|
||||||
tlsc_t* tolling_tlsc_new(tolling_t* tolling, itss_epv_t* epv, uint8_t ipv6[16], uint16_t port) {
|
tlsc_t* tolling_tlsc_new(tolling_t* tolling, itss_epv_t* epv, uint8_t ipv6[16], uint16_t port) {
|
||||||
|
syslog_debug("[tolling] new tlsc , nconns=%d", tolling->protocol.c.tls.n_tlsc);
|
||||||
if (tolling->protocol.c.tls.n_tlsc >= TOLLING_MAX_CONNS - 1) {
|
if (tolling->protocol.c.tls.n_tlsc >= TOLLING_MAX_CONNS - 1) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
@ -1291,6 +1292,7 @@ tlsc_t* tolling_tlsc_new(tolling_t* tolling, itss_epv_t* epv, uint8_t ipv6[16],
|
||||||
}
|
}
|
||||||
|
|
||||||
tlsc_t* tolling_tlsc_get(tolling_t* tolling, itss_epv_t* epv, uint8_t ipv6[16], uint16_t port) {
|
tlsc_t* tolling_tlsc_get(tolling_t* tolling, itss_epv_t* epv, uint8_t ipv6[16], uint16_t port) {
|
||||||
|
syslog_debug("[tolling] new get , nconns=%d", tolling->protocol.c.tls.n_tlsc);
|
||||||
tlsc_t* tlsc = NULL;
|
tlsc_t* tlsc = NULL;
|
||||||
for (int i = 0; i < tolling->protocol.c.tls.n_tlsc; ++i) {
|
for (int i = 0; i < tolling->protocol.c.tls.n_tlsc; ++i) {
|
||||||
if (!memcmp(tolling->protocol.c.tls.tls_conns[i]->ipv6, ipv6, 16) &&
|
if (!memcmp(tolling->protocol.c.tls.tls_conns[i]->ipv6, ipv6, 16) &&
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue