mirror of
https://github.com/open62541/open62541.git
synced 2025-06-03 04:00:21 +00:00

Since default build is without amalgamation, we should assume that and only ifdefs is amalgamation is enabled
43 lines
1.3 KiB
C
43 lines
1.3 KiB
C
/* This work is licensed under a Creative Commons CCZero 1.0 Universal License.
|
|
* See http://creativecommons.org/publicdomain/zero/1.0/ for more information. */
|
|
|
|
|
|
#ifdef UA_ENABLE_AMALGAMATION
|
|
# include <open62541.h>
|
|
#else
|
|
# include "ua_types.h"
|
|
# include "ua_types_generated_handling.h"
|
|
#endif
|
|
|
|
/* loadFile parses the certificate file.
|
|
*
|
|
* @param path specifies the file name given in argv[]
|
|
* @return Returns the file content after parsing */
|
|
static UA_INLINE UA_ByteString
|
|
loadFile(const char *const path) {
|
|
UA_ByteString fileContents = UA_STRING_NULL;
|
|
|
|
/* Open the file */
|
|
FILE *fp = fopen(path, "rb");
|
|
if(!fp) {
|
|
errno = 0; /* We read errno also from the tcp layer... */
|
|
return fileContents;
|
|
}
|
|
|
|
/* Get the file length, allocate the data and read */
|
|
fseek(fp, 0, SEEK_END);
|
|
fileContents.length = (size_t)ftell(fp);
|
|
fileContents.data = (UA_Byte *)UA_malloc(fileContents.length * sizeof(UA_Byte));
|
|
if(fileContents.data) {
|
|
fseek(fp, 0, SEEK_SET);
|
|
size_t read = fread(fileContents.data, sizeof(UA_Byte), fileContents.length, fp);
|
|
if(read != fileContents.length)
|
|
UA_ByteString_clear(&fileContents);
|
|
} else {
|
|
fileContents.length = 0;
|
|
}
|
|
fclose(fp);
|
|
|
|
return fileContents;
|
|
}
|