|
@@ -6313,13 +6313,13 @@ int sendAuthorizeRequest(int gun_index)
|
|
|
OCPP_getIdTagFromLocalCache((char *)ShmSysConfigAndInfo->SysConfig.UserId);
|
|
|
|
|
|
// Query from list
|
|
|
- if((strcmp(idTagQuery.idTagstr,"") == 0) || (strcmp(idTagQuery.idTagstatus,"Accepted") != 0) )
|
|
|
+ if((strcmp(idTagQuery.idTagstr,"") == 0) || (strstr(idTagQuery.idTagstatus,"Accepted") == NULL) )
|
|
|
{
|
|
|
DEBUG_INFO("Authorize from list.\n");
|
|
|
OCPP_getIdTagFromLocalList((char *)ShmSysConfigAndInfo->SysConfig.UserId);
|
|
|
}
|
|
|
|
|
|
- if((strcmp(idTagQuery.idTagstr,"") == 0) || (strcmp(idTagQuery.idTagstatus,"Accepted") != 0) )
|
|
|
+ if((strcmp(idTagQuery.idTagstr,"") == 0) || (strstr(idTagQuery.idTagstatus,"Accepted") == NULL) )
|
|
|
{
|
|
|
if(strcmp(idTagQuery.idTagstr,"") == 0)
|
|
|
{
|
|
@@ -12486,7 +12486,7 @@ int handleDataTransferRequest(char *uuid, char *payload)
|
|
|
|
|
|
if(json_object_object_get(data, "ConnectorId") != NULL)
|
|
|
{
|
|
|
- gun_index = json_object_get_int(json_object_object_get(data, "ConnectorId"));
|
|
|
+ gun_index = json_object_get_int(json_object_object_get(data, "ConnectorId"))-1;
|
|
|
if(json_object_object_get(data, "occupancySN") != NULL)
|
|
|
{
|
|
|
sprintf((char *)ShmOCPP16Data->TcciCustomData.OccupancyFeeDisplay[gun_index].occupancySN, "%s", json_object_get_string(json_object_object_get(data,"occupancySN")));
|
|
@@ -14771,6 +14771,7 @@ int handleSendLocalListRequest(char *uuid, char *payload)
|
|
|
|
|
|
// Parsing payload
|
|
|
SendLocalList = json_tokener_parse(payload);
|
|
|
+
|
|
|
if(!is_error(SendLocalList))
|
|
|
{
|
|
|
// Required data
|
|
@@ -14825,17 +14826,17 @@ int handleSendLocalListRequest(char *uuid, char *payload)
|
|
|
memset(ShmOCPP16Data->SendLocalList.LocalAuthorizationList, 0 , sizeof(struct StructLocalAuthorizationList)*1);
|
|
|
for(int idx=0;idx<json_object_array_length(json_object_object_get(SendLocalList, "localAuthorizationList"));idx++)
|
|
|
{
|
|
|
- sprintf((char*)ShmOCPP16Data->SendLocalList.LocalAuthorizationList[0].IdTag, "%s", json_object_get_string(json_object_object_get(json_object_array_get_idx(json_object_object_get(SendLocalList, "localAuthorizationList"), idx), "idTag")));
|
|
|
+ sprintf((char*)ShmOCPP16Data->SendLocalList.LocalAuthorizationList[0].IdTag, "%s", stringtrimspace((char *)json_object_get_string(json_object_object_get(json_object_array_get_idx(json_object_object_get(SendLocalList, "localAuthorizationList"), idx), "idTag"))));
|
|
|
|
|
|
if(json_object_object_get(json_object_array_get_idx(json_object_object_get(SendLocalList, "localAuthorizationList"), idx), "idTagInfo") != NULL)
|
|
|
{
|
|
|
- sprintf((char*)ShmOCPP16Data->SendLocalList.LocalAuthorizationList[0].IdTagInfo.Status, "%s", json_object_get_string(json_object_object_get(json_object_object_get(json_object_array_get_idx(json_object_object_get(SendLocalList, "localAuthorizationList"), idx), "idTagInfo"), "status")));
|
|
|
+ sprintf((char*)ShmOCPP16Data->SendLocalList.LocalAuthorizationList[0].IdTagInfo.Status, "%s", stringtrimspace((char *)json_object_get_string(json_object_object_get(json_object_object_get(json_object_array_get_idx(json_object_object_get(SendLocalList, "localAuthorizationList"), idx), "idTagInfo"), "status"))));
|
|
|
|
|
|
if(json_object_object_get(json_object_object_get(json_object_array_get_idx(json_object_object_get(SendLocalList, "localAuthorizationList"), idx), "idTagInfo"), "expiryDate") != NULL)
|
|
|
- sprintf((char*)ShmOCPP16Data->SendLocalList.LocalAuthorizationList[0].IdTagInfo.ExpiryDate, "%s", json_object_get_string(json_object_object_get(json_object_object_get(json_object_array_get_idx(json_object_object_get(SendLocalList, "localAuthorizationList"), idx), "idTagInfo"), "expiryDate")));
|
|
|
+ sprintf((char*)ShmOCPP16Data->SendLocalList.LocalAuthorizationList[0].IdTagInfo.ExpiryDate, "%s", stringtrimspace((char *)json_object_get_string(json_object_object_get(json_object_object_get(json_object_array_get_idx(json_object_object_get(SendLocalList, "localAuthorizationList"), idx), "idTagInfo"), "expiryDate"))));
|
|
|
|
|
|
if(json_object_object_get(json_object_object_get(json_object_array_get_idx(json_object_object_get(SendLocalList, "localAuthorizationList"), idx), "idTagInfo"), "parentIdTag") != NULL)
|
|
|
- sprintf((char*)ShmOCPP16Data->SendLocalList.LocalAuthorizationList[0].IdTagInfo.ParentIdTag, "%s", json_object_get_string(json_object_object_get(json_object_object_get(json_object_array_get_idx(json_object_object_get(SendLocalList, "localAuthorizationList"), idx), "idTagInfo"), "parentIdTag")));
|
|
|
+ sprintf((char*)ShmOCPP16Data->SendLocalList.LocalAuthorizationList[0].IdTagInfo.ParentIdTag, "%s", stringtrimspace((char *)json_object_get_string(json_object_object_get(json_object_object_get(json_object_array_get_idx(json_object_object_get(SendLocalList, "localAuthorizationList"), idx), "idTagInfo"), "parentIdTag"))));
|
|
|
}
|
|
|
|
|
|
// Add to db
|
|
@@ -16331,15 +16332,20 @@ int handleCertificateSignedRequest(char *uuid, char *payload)
|
|
|
}
|
|
|
json_object_put(CertificateSigned);
|
|
|
|
|
|
- FILE *fp = fopen(CERTIFICATE_CP, "w");
|
|
|
+ FILE *fp = fopen("/Storage/OCPP/tempCP.pem", "w");
|
|
|
fprintf(fp, "%s", ShmOCPP16Data->CertificateSigned.certificateChain);
|
|
|
fclose(fp);
|
|
|
system("/bin/fsync -d /dev/mtdblock13;/bin/sync &");
|
|
|
|
|
|
ShmOCPP16Data->MsMsg.bits.CertificateSignedReq = 1;
|
|
|
|
|
|
- if(certVerify(PRIVATE_KEY_CP, CERTIFICATE_CP) == PASS)
|
|
|
+ if(certVerify(PRIVATE_KEY_CP, "/Storage/OCPP/tempCP.pem") == PASS)
|
|
|
+ {
|
|
|
sprintf((char*)ShmOCPP16Data->CertificateSigned.Response_status, "Accepted");
|
|
|
+ system("rm -f /Storage/OCPP/certCP_fallback.pem");
|
|
|
+ rename(CERTIFICATE_CP, "/Storage/OCPP/certCP_fallback.pem");
|
|
|
+ rename("/Storage/OCPP/tempCP.pem", CERTIFICATE_CP);
|
|
|
+ }
|
|
|
else
|
|
|
{
|
|
|
sprintf((char*)ShmOCPP16Data->CertificateSigned.Response_status, "Rejected");
|