mirror of
https://github.com/outbackdingo/parodus.git
synced 2026-01-27 10:20:04 +00:00
Revert "Remove static char arrays from ParodusCfg structure. "
This commit is contained in:
@@ -36,43 +36,42 @@ char* getWebpaConveyHeader()
|
||||
int encodedDataSize = 1024;
|
||||
char * reconnect_reason = get_global_reconnect_reason();
|
||||
int i =0, j=0;
|
||||
ParodusCfg *cfg = get_parodus_cfg();
|
||||
|
||||
if(cfg->hw_model && strlen(cfg->hw_model)!=0)
|
||||
if(strlen(get_parodus_cfg()->hw_model)!=0)
|
||||
{
|
||||
cJSON_AddStringToObject(response, HW_MODELNAME, cfg->hw_model);
|
||||
cJSON_AddStringToObject(response, HW_MODELNAME, get_parodus_cfg()->hw_model);
|
||||
}
|
||||
|
||||
if(cfg->hw_serial_number && strlen(cfg->hw_serial_number)!=0)
|
||||
if(strlen(get_parodus_cfg()->hw_serial_number)!=0)
|
||||
{
|
||||
cJSON_AddStringToObject(response, HW_SERIALNUMBER, cfg->hw_serial_number);
|
||||
cJSON_AddStringToObject(response, HW_SERIALNUMBER, get_parodus_cfg()->hw_serial_number);
|
||||
}
|
||||
|
||||
if(cfg->hw_manufacturer && strlen(cfg->hw_manufacturer)!=0)
|
||||
if(strlen(get_parodus_cfg()->hw_manufacturer)!=0)
|
||||
{
|
||||
cJSON_AddStringToObject(response, HW_MANUFACTURER, cfg->hw_manufacturer);
|
||||
cJSON_AddStringToObject(response, HW_MANUFACTURER, get_parodus_cfg()->hw_manufacturer);
|
||||
}
|
||||
|
||||
if(cfg->fw_name && strlen(cfg->fw_name)!=0)
|
||||
if(strlen(get_parodus_cfg()->fw_name)!=0)
|
||||
{
|
||||
cJSON_AddStringToObject(response, FIRMWARE_NAME, cfg->fw_name);
|
||||
cJSON_AddStringToObject(response, FIRMWARE_NAME, get_parodus_cfg()->fw_name);
|
||||
}
|
||||
|
||||
cJSON_AddNumberToObject(response, BOOT_TIME, cfg->boot_time);
|
||||
cJSON_AddNumberToObject(response, BOOT_TIME, get_parodus_cfg()->boot_time);
|
||||
|
||||
if(cfg->webpa_protocol && strlen(cfg->webpa_protocol)!=0)
|
||||
if(strlen(get_parodus_cfg()->webpa_protocol)!=0)
|
||||
{
|
||||
cJSON_AddStringToObject(response, WEBPA_PROTOCOL, cfg->webpa_protocol);
|
||||
cJSON_AddStringToObject(response, WEBPA_PROTOCOL, get_parodus_cfg()->webpa_protocol);
|
||||
}
|
||||
|
||||
if(cfg->webpa_interface_used && strlen(cfg->webpa_interface_used)!=0)
|
||||
if(strlen(get_parodus_cfg()->webpa_interface_used)!=0)
|
||||
{
|
||||
cJSON_AddStringToObject(response, WEBPA_INTERFACE, cfg->webpa_interface_used);
|
||||
cJSON_AddStringToObject(response, WEBPA_INTERFACE, get_parodus_cfg()->webpa_interface_used);
|
||||
}
|
||||
|
||||
if(cfg->hw_last_reboot_reason && strlen(cfg->hw_last_reboot_reason)!=0)
|
||||
if(strlen(get_parodus_cfg()->hw_last_reboot_reason)!=0)
|
||||
{
|
||||
cJSON_AddStringToObject(response, HW_LAST_REBOOT_REASON, cfg->hw_last_reboot_reason);
|
||||
cJSON_AddStringToObject(response, HW_LAST_REBOOT_REASON, get_parodus_cfg()->hw_last_reboot_reason);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
247
src/config.c
247
src/config.c
@@ -28,7 +28,6 @@
|
||||
#include <cjwt/cjwt.h>
|
||||
|
||||
#define MAX_BUF_SIZE 128
|
||||
#define PROTOCOL_STR_LEN 1024
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* File Scoped Variables */
|
||||
@@ -38,7 +37,6 @@ static ParodusCfg parodusCfg;
|
||||
static unsigned int rsa_algorithms =
|
||||
(1<<alg_rs256) | (1<<alg_rs384) | (1<<alg_rs512);
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* External Functions */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
@@ -108,47 +106,30 @@ unsigned int get_algo_mask (const char *algo_str)
|
||||
#undef BUFLEN
|
||||
}
|
||||
|
||||
static FILE * open_input_file (const char *fname, int *file_size)
|
||||
static int open_input_file (const char *fname)
|
||||
{
|
||||
FILE * fd = fopen(fname, "r");
|
||||
if (NULL == fd)
|
||||
int fd = open(fname, O_RDONLY);
|
||||
if (fd<0)
|
||||
{
|
||||
ParodusError ("File %s open error\n", fname);
|
||||
abort ();
|
||||
}
|
||||
|
||||
fseek(fd, 0, SEEK_END);
|
||||
*file_size = ftell(fd);
|
||||
fseek(fd, 0, SEEK_SET);
|
||||
|
||||
return fd;
|
||||
}
|
||||
|
||||
void read_key_from_file (const char *fname, char **data)
|
||||
void read_key_from_file (const char *fname, char *buf, size_t buflen)
|
||||
{
|
||||
ssize_t nbytes;
|
||||
int file_size = 0;
|
||||
|
||||
FILE * fd = open_input_file(fname, &file_size);
|
||||
|
||||
if (NULL == (*data = (char *) malloc(sizeof(char) * file_size))) {
|
||||
ParodusError ("Read file Out of memory\n", fname);
|
||||
fclose(fd);
|
||||
abort ();
|
||||
}
|
||||
|
||||
nbytes = fread(*data, sizeof(char), file_size, fd);
|
||||
if (nbytes <= 0)
|
||||
int fd = open_input_file(fname);
|
||||
nbytes = read(fd, buf, buflen);
|
||||
if (nbytes < 0)
|
||||
{
|
||||
ParodusError ("Read file %s error\n", fname);
|
||||
free(*data);
|
||||
fclose(fd);
|
||||
close(fd);
|
||||
abort ();
|
||||
}
|
||||
fclose(fd);
|
||||
close(fd);
|
||||
ParodusInfo ("%d bytes read\n", nbytes);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
static void execute_token_script(char *token, char *name, size_t len, char *mac, char *serNum)
|
||||
@@ -328,12 +309,16 @@ int parseCommandLine(int argc,char **argv,ParodusCfg * cfg)
|
||||
return -1;
|
||||
}
|
||||
cfg->flags = 0;
|
||||
parStrncpy (cfg->webpa_url, "", sizeof(cfg->webpa_url));
|
||||
cfg->acquire_jwt = 0;
|
||||
cfg->jwt_algo = 0;
|
||||
parStrncpy (cfg->jwt_key, "", sizeof(cfg->jwt_key));
|
||||
optind = 1; /* We need this if parseCommandLine is called again */
|
||||
int option_index = 0;/* getopt_long stores the option index here. */
|
||||
while (1)
|
||||
{
|
||||
|
||||
/* getopt_long stores the option index here. */
|
||||
int option_index = 0;
|
||||
c = getopt_long (argc, argv, "m:s:f:d:r:n:b:u:t:o:i:l:p:e:D:j:a:k:c:T:J:46",
|
||||
long_options, &option_index);
|
||||
|
||||
@@ -344,45 +329,41 @@ int parseCommandLine(int argc,char **argv,ParodusCfg * cfg)
|
||||
switch (c)
|
||||
{
|
||||
case 'm':
|
||||
cfg->hw_model = strdup (optarg);
|
||||
parStrncpy(cfg->hw_model, optarg,sizeof(cfg->hw_model));
|
||||
ParodusInfo("hw-model is %s\n",cfg->hw_model);
|
||||
break;
|
||||
|
||||
case 's':
|
||||
cfg->hw_serial_number = strdup (optarg);
|
||||
parStrncpy(cfg->hw_serial_number,optarg,sizeof(cfg->hw_serial_number));
|
||||
ParodusInfo("hw_serial_number is %s\n",cfg->hw_serial_number);
|
||||
break;
|
||||
|
||||
case 'f':
|
||||
cfg->hw_manufacturer = strdup (optarg);
|
||||
parStrncpy(cfg->hw_manufacturer, optarg,sizeof(cfg->hw_manufacturer));
|
||||
ParodusInfo("hw_manufacturer is %s\n",cfg->hw_manufacturer);
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
{
|
||||
char mac[16];
|
||||
if (parse_mac_address (&mac[0], optarg) == 0) {
|
||||
cfg->hw_mac = strdup(mac);
|
||||
ParodusInfo ("hw_mac is %s\n",cfg->hw_mac);
|
||||
} else {
|
||||
ParodusError ("Bad mac address %s\n", optarg);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if (parse_mac_address (cfg->hw_mac, optarg) == 0) {
|
||||
ParodusInfo ("hw_mac is %s\n",cfg->hw_mac);
|
||||
} else {
|
||||
ParodusError ("Bad mac address %s\n", optarg);
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
#ifdef ENABLE_SESHAT
|
||||
case 'e':
|
||||
cfg->seshat_url = strdup (optarg);
|
||||
parStrncpy(cfg->seshat_url, optarg,sizeof(cfg->seshat_url));
|
||||
ParodusInfo("seshat_url is %s\n",cfg->seshat_url);
|
||||
break;
|
||||
#endif
|
||||
case 'r':
|
||||
cfg->hw_last_reboot_reason = strdup (optarg);
|
||||
parStrncpy(cfg->hw_last_reboot_reason, optarg,sizeof(cfg->hw_last_reboot_reason));
|
||||
ParodusInfo("hw_last_reboot_reason is %s\n",cfg->hw_last_reboot_reason);
|
||||
break;
|
||||
|
||||
case 'n':
|
||||
cfg->fw_name = strdup (optarg);
|
||||
parStrncpy(cfg->fw_name, optarg,sizeof(cfg->fw_name));
|
||||
ParodusInfo("fw_name is %s\n",cfg->fw_name);
|
||||
break;
|
||||
|
||||
@@ -394,7 +375,7 @@ int parseCommandLine(int argc,char **argv,ParodusCfg * cfg)
|
||||
break;
|
||||
|
||||
case 'u':
|
||||
cfg->webpa_url = strdup (optarg);
|
||||
parStrncpy(cfg->webpa_url, optarg,sizeof(cfg->webpa_url));
|
||||
if (server_is_http (cfg->webpa_url, NULL) < 0) {
|
||||
ParodusError ("Bad webpa url %s\n", optarg);
|
||||
return -1;
|
||||
@@ -417,25 +398,19 @@ int parseCommandLine(int argc,char **argv,ParodusCfg * cfg)
|
||||
break;
|
||||
|
||||
case 'i':
|
||||
cfg->webpa_interface_used = strdup (optarg);
|
||||
parStrncpy(cfg->webpa_interface_used, optarg,sizeof(cfg->webpa_interface_used));
|
||||
ParodusInfo("webpa_interface_used is %s\n",cfg->webpa_interface_used);
|
||||
break;
|
||||
|
||||
case 'l':
|
||||
if (NULL != cfg->local_url) {// free default url
|
||||
free(cfg->local_url);
|
||||
}
|
||||
cfg->local_url = strdup (optarg);
|
||||
parStrncpy(cfg->local_url, optarg,sizeof(cfg->local_url));
|
||||
ParodusInfo("parodus local_url is %s\n",cfg->local_url);
|
||||
break;
|
||||
case 'D':
|
||||
// like 'fabric' or 'test'
|
||||
// this parameter is used, along with the hw_mac parameter
|
||||
// to create the dns txt record id
|
||||
if (NULL != cfg->dns_txt_url) {// free default url
|
||||
free(cfg->dns_txt_url);
|
||||
}
|
||||
cfg->dns_txt_url = strdup (optarg);
|
||||
parStrncpy(cfg->dns_txt_url, optarg,sizeof(cfg->dns_txt_url));
|
||||
ParodusInfo("parodus dns-txt-url is %s\n",cfg->dns_txt_url);
|
||||
break;
|
||||
|
||||
@@ -456,22 +431,16 @@ int parseCommandLine(int argc,char **argv,ParodusCfg * cfg)
|
||||
ParodusInfo("jwt_algo is %u\n",cfg->jwt_algo);
|
||||
break;
|
||||
case 'k':
|
||||
if (NULL != cfg->jwt_key) {// free default jwt_key
|
||||
free(cfg->jwt_key);
|
||||
}
|
||||
read_key_from_file (optarg, &cfg->jwt_key);
|
||||
read_key_from_file (optarg, cfg->jwt_key, sizeof(cfg->jwt_key));
|
||||
ParodusInfo("jwt_key is %s\n",cfg->jwt_key);
|
||||
break;
|
||||
case 'p':
|
||||
cfg->partner_id = strdup (optarg);
|
||||
parStrncpy(cfg->partner_id, optarg,sizeof(cfg->partner_id));
|
||||
ParodusInfo("partner_id is %s\n",cfg->partner_id);
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
if (NULL != cfg->cert_path) {// free default cert_path
|
||||
free(cfg->cert_path);
|
||||
}
|
||||
cfg->cert_path = strdup (optarg);
|
||||
parStrncpy(cfg->cert_path, optarg,sizeof(cfg->cert_path));
|
||||
ParodusInfo("cert_path is %s\n",cfg->cert_path);
|
||||
break;
|
||||
|
||||
@@ -486,16 +455,16 @@ int parseCommandLine(int argc,char **argv,ParodusCfg * cfg)
|
||||
break;
|
||||
|
||||
case 'J':
|
||||
cfg->token_acquisition_script = strdup (optarg);
|
||||
parStrncpy(cfg->token_acquisition_script, optarg,sizeof(cfg->token_acquisition_script));
|
||||
break;
|
||||
|
||||
case 'T':
|
||||
cfg->token_read_script = strdup(optarg);
|
||||
parStrncpy(cfg->token_read_script, optarg,sizeof(cfg->token_read_script));
|
||||
break;
|
||||
|
||||
case '?':
|
||||
ParodusError("Unrecognized option %s Aborting ...\n", argv[optind]);
|
||||
return -1;
|
||||
/* getopt_long already printed an error message. */
|
||||
break;
|
||||
|
||||
default:
|
||||
ParodusError("Enter Valid commands..\n");
|
||||
@@ -503,7 +472,7 @@ int parseCommandLine(int argc,char **argv,ParodusCfg * cfg)
|
||||
}
|
||||
}
|
||||
|
||||
if (cfg->webpa_url && (0 == strlen (cfg->webpa_url))) {
|
||||
if (0 == strlen (cfg->webpa_url)) {
|
||||
ParodusError ("Missing webpa url argument\n");
|
||||
return -1;
|
||||
}
|
||||
@@ -513,13 +482,11 @@ int parseCommandLine(int argc,char **argv,ParodusCfg * cfg)
|
||||
ParodusError ("Missing jwt algorithm argument\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (cfg->jwt_algo & rsa_algorithms) {
|
||||
if (!cfg->jwt_key || (0 == strlen (cfg->jwt_key)) ) {
|
||||
ParodusError ("Missing jwt public key file argument\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if ((0 != (cfg->jwt_algo & rsa_algorithms)) &&
|
||||
(0 == strlen (cfg->jwt_key)) ) {
|
||||
ParodusError ("Missing jwt public key file argument\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -585,7 +552,7 @@ void getAuthToken(ParodusCfg *cfg)
|
||||
else
|
||||
{
|
||||
ParodusInfo("update cfg->webpa_auth_token in success case\n");
|
||||
cfg->webpa_auth_token = strdup(output);
|
||||
parStrncpy(cfg->webpa_auth_token, output, sizeof(cfg->webpa_auth_token));
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -596,7 +563,6 @@ void getAuthToken(ParodusCfg *cfg)
|
||||
|
||||
void setDefaultValuesToCfg(ParodusCfg *cfg)
|
||||
{
|
||||
char protocol_str[PROTOCOL_STR_LEN];
|
||||
if(cfg == NULL)
|
||||
{
|
||||
ParodusError("cfg is NULL\n");
|
||||
@@ -604,128 +570,125 @@ void setDefaultValuesToCfg(ParodusCfg *cfg)
|
||||
}
|
||||
|
||||
ParodusInfo("Setting default values to parodusCfg\n");
|
||||
cfg->local_url = strdup (PARODUS_UPSTREAM);
|
||||
parStrncpy(cfg->local_url, PARODUS_UPSTREAM, sizeof(cfg->local_url));
|
||||
|
||||
cfg->acquire_jwt = 0;
|
||||
|
||||
cfg->dns_txt_url = strdup (DNS_TXT_URL);
|
||||
parStrncpy(cfg->dns_txt_url, DNS_TXT_URL, sizeof(cfg->dns_txt_url));
|
||||
|
||||
cfg->jwt_key = strdup ("\0");
|
||||
parStrncpy(cfg->jwt_key, "\0", sizeof(cfg->jwt_key));
|
||||
|
||||
cfg->jwt_algo = 0;
|
||||
|
||||
cfg->cert_path = NULL;
|
||||
parStrncpy(cfg->cert_path, "\0", sizeof(cfg->cert_path));
|
||||
|
||||
cfg->flags = 0;
|
||||
|
||||
cfg->webpa_path_url = strdup (WEBPA_PATH_URL);
|
||||
parStrncpy(cfg->webpa_path_url, WEBPA_PATH_URL,sizeof(cfg->webpa_path_url));
|
||||
|
||||
snprintf(protocol_str, PROTOCOL_STR_LEN, "%s-%s", PROTOCOL_VALUE, GIT_COMMIT_TAG);
|
||||
cfg->webpa_protocol = strdup(protocol_str);
|
||||
snprintf(cfg->webpa_protocol, sizeof(cfg->webpa_protocol), "%s-%s", PROTOCOL_VALUE, GIT_COMMIT_TAG);
|
||||
ParodusInfo(" cfg->webpa_protocol is %s\n", cfg->webpa_protocol);
|
||||
|
||||
cfg->webpa_uuid = strdup ("1234567-345456546");
|
||||
parStrncpy(cfg->webpa_uuid, "1234567-345456546",sizeof(cfg->webpa_uuid));
|
||||
ParodusPrint("cfg->webpa_uuid is :%s\n", cfg->webpa_uuid);
|
||||
|
||||
}
|
||||
|
||||
void loadParodusCfg(ParodusCfg * config,ParodusCfg *cfg)
|
||||
{
|
||||
char protocol_str[PROTOCOL_STR_LEN];
|
||||
|
||||
if(config == NULL)
|
||||
{
|
||||
ParodusError("config is NULL\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if(config->hw_model && strlen (config->hw_model) !=0)
|
||||
if(strlen (config->hw_model) !=0)
|
||||
{
|
||||
cfg->hw_model = strdup (config->hw_model);
|
||||
parStrncpy(cfg->hw_model, config->hw_model, sizeof(cfg->hw_model));
|
||||
}
|
||||
else
|
||||
{
|
||||
ParodusPrint("hw_model is NULL. read from tmp file\n");
|
||||
}
|
||||
if( config->hw_serial_number && strlen(config->hw_serial_number) !=0)
|
||||
if( strlen(config->hw_serial_number) !=0)
|
||||
{
|
||||
cfg->hw_serial_number = strdup (config->hw_serial_number);
|
||||
parStrncpy(cfg->hw_serial_number, config->hw_serial_number, sizeof(cfg->hw_serial_number));
|
||||
}
|
||||
else
|
||||
{
|
||||
ParodusPrint("hw_serial_number is NULL. read from tmp file\n");
|
||||
}
|
||||
if(config->hw_manufacturer && strlen(config->hw_manufacturer) !=0)
|
||||
if(strlen(config->hw_manufacturer) !=0)
|
||||
{
|
||||
cfg->hw_manufacturer = strdup (config->hw_manufacturer);
|
||||
parStrncpy(cfg->hw_manufacturer, config->hw_manufacturer,sizeof(cfg->hw_manufacturer));
|
||||
}
|
||||
else
|
||||
{
|
||||
ParodusPrint("hw_manufacturer is NULL. read from tmp file\n");
|
||||
}
|
||||
if(config->hw_mac && strlen(config->hw_mac) !=0)
|
||||
if(strlen(config->hw_mac) !=0)
|
||||
{
|
||||
cfg->hw_mac = strdup (config->hw_mac);
|
||||
parStrncpy(cfg->hw_mac, config->hw_mac,sizeof(cfg->hw_mac));
|
||||
}
|
||||
else
|
||||
{
|
||||
ParodusPrint("hw_mac is NULL. read from tmp file\n");
|
||||
}
|
||||
if(config->hw_last_reboot_reason && strlen (config->hw_last_reboot_reason) !=0)
|
||||
if(strlen (config->hw_last_reboot_reason) !=0)
|
||||
{
|
||||
cfg->hw_last_reboot_reason = strdup (config->hw_last_reboot_reason);
|
||||
parStrncpy(cfg->hw_last_reboot_reason, config->hw_last_reboot_reason,sizeof(cfg->hw_last_reboot_reason));
|
||||
}
|
||||
else
|
||||
{
|
||||
ParodusPrint("hw_last_reboot_reason is NULL. read from tmp file\n");
|
||||
}
|
||||
if(config->fw_name && strlen(config->fw_name) !=0)
|
||||
if(strlen(config->fw_name) !=0)
|
||||
{
|
||||
cfg->fw_name = strdup (config->fw_name);
|
||||
parStrncpy(cfg->fw_name, config->fw_name,sizeof(cfg->fw_name));
|
||||
}
|
||||
else
|
||||
{
|
||||
ParodusPrint("fw_name is NULL. read from tmp file\n");
|
||||
}
|
||||
if( config->webpa_url && strlen(config->webpa_url) !=0)
|
||||
if( strlen(config->webpa_url) !=0)
|
||||
{
|
||||
cfg->webpa_url = strdup (config->webpa_url);
|
||||
parStrncpy(cfg->webpa_url, config->webpa_url,sizeof(cfg->webpa_url));
|
||||
}
|
||||
else
|
||||
{
|
||||
ParodusPrint("webpa_url is NULL. read from tmp file\n");
|
||||
}
|
||||
if(config->webpa_interface_used && strlen(config->webpa_interface_used )!=0)
|
||||
if(strlen(config->webpa_interface_used )!=0)
|
||||
{
|
||||
cfg->webpa_interface_used = strdup (config->webpa_interface_used);
|
||||
parStrncpy(cfg->webpa_interface_used, config->webpa_interface_used,sizeof(cfg->webpa_interface_used));
|
||||
}
|
||||
else
|
||||
{
|
||||
ParodusPrint("webpa_interface_used is NULL. read from tmp file\n");
|
||||
}
|
||||
if( config->local_url && strlen(config->local_url) !=0)
|
||||
if( strlen(config->local_url) !=0)
|
||||
{
|
||||
cfg->local_url = strdup (config->local_url);
|
||||
parStrncpy(cfg->local_url, config->local_url,sizeof(cfg->local_url));
|
||||
}
|
||||
else
|
||||
{
|
||||
ParodusInfo("parodus local_url is NULL. adding default url\n");
|
||||
cfg->local_url = strdup (PARODUS_UPSTREAM);
|
||||
parStrncpy(cfg->local_url, PARODUS_UPSTREAM, sizeof(cfg->local_url));
|
||||
|
||||
}
|
||||
|
||||
if( config->partner_id && strlen(config->partner_id) !=0)
|
||||
if( strlen(config->partner_id) !=0)
|
||||
{
|
||||
cfg->partner_id = strdup (config->partner_id);
|
||||
parStrncpy(cfg->partner_id, config->partner_id,sizeof(cfg->partner_id));
|
||||
}
|
||||
else
|
||||
{
|
||||
ParodusPrint("partner_id is NULL. read from tmp file\n");
|
||||
}
|
||||
#ifdef ENABLE_SESHAT
|
||||
if( config->seshat_url && strlen(config->seshat_url) !=0)
|
||||
if( strlen(config->seshat_url) !=0)
|
||||
{
|
||||
cfg->seshat_url = strdup (config->seshat_url);
|
||||
parStrncpy(cfg->seshat_url, config->seshat_url,sizeof(cfg->seshat_url));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -734,50 +697,50 @@ void loadParodusCfg(ParodusCfg * config,ParodusCfg *cfg)
|
||||
#endif
|
||||
cfg->acquire_jwt = config->acquire_jwt;
|
||||
|
||||
if( config->dns_txt_url && strlen(config->dns_txt_url) !=0)
|
||||
if( strlen(config->dns_txt_url) !=0)
|
||||
{
|
||||
cfg->dns_txt_url = strdup (config->dns_txt_url);
|
||||
parStrncpy(cfg->dns_txt_url, config->dns_txt_url, sizeof(cfg->dns_txt_url));
|
||||
}
|
||||
else
|
||||
{
|
||||
ParodusInfo("parodus dns-txt-url is NULL. adding default\n");
|
||||
cfg->dns_txt_url = strdup (DNS_TXT_URL);
|
||||
ParodusInfo("parodus dns-txt-url is NULL. adding default\n");
|
||||
parStrncpy(cfg->dns_txt_url, DNS_TXT_URL, sizeof(cfg->dns_txt_url));
|
||||
}
|
||||
|
||||
if(config->jwt_key && strlen(config->jwt_key )!=0)
|
||||
if(strlen(config->jwt_key )!=0)
|
||||
{
|
||||
cfg->jwt_key = strdup (config->jwt_key);
|
||||
parStrncpy(cfg->jwt_key, config->jwt_key,sizeof(cfg->jwt_key));
|
||||
}
|
||||
else
|
||||
{
|
||||
cfg->jwt_key = strdup ("\0");
|
||||
parStrncpy(cfg->jwt_key, "\0", sizeof(cfg->jwt_key));
|
||||
ParodusPrint("jwt_key is NULL. set to empty\n");
|
||||
}
|
||||
|
||||
cfg->jwt_algo = config->jwt_algo;
|
||||
|
||||
if(config->cert_path && strlen(config->cert_path )!=0)
|
||||
if(strlen(config->cert_path )!=0)
|
||||
{
|
||||
cfg->cert_path = strdup (config->cert_path);
|
||||
parStrncpy(cfg->cert_path, config->cert_path,sizeof(cfg->cert_path));
|
||||
}
|
||||
else
|
||||
{
|
||||
cfg->cert_path = strdup ("\0");
|
||||
parStrncpy(cfg->cert_path, "\0", sizeof(cfg->cert_path));
|
||||
ParodusPrint("cert_path is NULL. set to empty\n");
|
||||
}
|
||||
|
||||
if(config->token_acquisition_script && strlen(config->token_acquisition_script )!=0)
|
||||
if(strlen(config->token_acquisition_script )!=0)
|
||||
{
|
||||
cfg->token_acquisition_script = strdup (config->token_acquisition_script);
|
||||
parStrncpy(cfg->token_acquisition_script, config->token_acquisition_script,sizeof(cfg->token_acquisition_script));
|
||||
}
|
||||
else
|
||||
{
|
||||
ParodusPrint("token_acquisition_script is NULL. read from tmp file\n");
|
||||
}
|
||||
|
||||
if(config->token_read_script && strlen(config->token_read_script )!=0)
|
||||
if(strlen(config->token_read_script )!=0)
|
||||
{
|
||||
cfg->token_read_script = strdup (config->token_read_script);
|
||||
parStrncpy(cfg->token_read_script, config->token_read_script,sizeof(cfg->token_read_script));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -787,36 +750,12 @@ void loadParodusCfg(ParodusCfg * config,ParodusCfg *cfg)
|
||||
cfg->boot_time = config->boot_time;
|
||||
cfg->webpa_ping_timeout = config->webpa_ping_timeout;
|
||||
cfg->webpa_backoff_max = config->webpa_backoff_max;
|
||||
cfg->webpa_path_url = strdup (WEBPA_PATH_URL);
|
||||
snprintf(protocol_str, PROTOCOL_STR_LEN, "%s-%s", PROTOCOL_VALUE, GIT_COMMIT_TAG);
|
||||
cfg->webpa_protocol = strdup (protocol_str);
|
||||
parStrncpy(cfg->webpa_path_url, WEBPA_PATH_URL,sizeof(cfg->webpa_path_url));
|
||||
snprintf(cfg->webpa_protocol, sizeof(cfg->webpa_protocol), "%s-%s", PROTOCOL_VALUE, GIT_COMMIT_TAG);
|
||||
ParodusInfo("cfg->webpa_protocol is %s\n", cfg->webpa_protocol);
|
||||
cfg->webpa_uuid = strdup ("1234567-345456546");
|
||||
parStrncpy(cfg->webpa_uuid, "1234567-345456546",sizeof(cfg->webpa_uuid));
|
||||
ParodusPrint("cfg->webpa_uuid is :%s\n", cfg->webpa_uuid);
|
||||
|
||||
}
|
||||
|
||||
void clean_up_parodus_cfg(ParodusCfg *cfg)
|
||||
{
|
||||
if (cfg->hw_model == NULL) free(cfg->hw_model);
|
||||
if (cfg->hw_serial_number == NULL) free(cfg->hw_serial_number);
|
||||
if (cfg->hw_manufacturer == NULL) free(cfg->hw_manufacturer);
|
||||
if (cfg->hw_mac == NULL) free(cfg->hw_mac);
|
||||
if (cfg->hw_last_reboot_reason == NULL) free(cfg->hw_last_reboot_reason);
|
||||
if (cfg->fw_name == NULL) free(cfg->fw_name);
|
||||
if (cfg->webpa_url == NULL) free(cfg->webpa_url);
|
||||
if (cfg->webpa_path_url == NULL) free(cfg->webpa_path_url);
|
||||
if (cfg->webpa_interface_used == NULL) free(cfg->webpa_interface_used);
|
||||
if (cfg->webpa_protocol == NULL) free(cfg->webpa_protocol);
|
||||
if (cfg->webpa_uuid == NULL) free(cfg->webpa_uuid);
|
||||
if (cfg->local_url == NULL) free(cfg->local_url);
|
||||
if (cfg->partner_id == NULL) free(cfg->partner_id);
|
||||
#ifdef ENABLE_SESHAT
|
||||
if (cfg->seshat_url == NULL) free(cfg->seshat_url);
|
||||
#endif
|
||||
if (cfg->dns_txt_url == NULL) free(cfg->dns_txt_url);
|
||||
if (cfg->jwt_key == NULL) free(cfg->jwt_key);
|
||||
if (cfg->cert_path == NULL) free(cfg->cert_path);
|
||||
if (cfg->webpa_auth_token == NULL) free(cfg->webpa_auth_token);
|
||||
if (cfg->token_acquisition_script == NULL) free(cfg->token_acquisition_script);
|
||||
if (cfg->token_read_script == NULL) free(cfg->token_read_script);
|
||||
}
|
||||
|
||||
|
||||
52
src/config.h
52
src/config.h
@@ -59,41 +59,40 @@ extern "C" {
|
||||
|
||||
#define ALLOW_NON_RSA_ALG false
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Data Structures */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char *hw_model;
|
||||
char *hw_serial_number;
|
||||
char *hw_manufacturer;
|
||||
char *hw_mac;
|
||||
char *hw_last_reboot_reason;
|
||||
char *fw_name;
|
||||
char hw_model[64];
|
||||
char hw_serial_number[64];
|
||||
char hw_manufacturer[64];
|
||||
char hw_mac[64];
|
||||
char hw_last_reboot_reason[64];
|
||||
char fw_name[64];
|
||||
unsigned int boot_time;
|
||||
unsigned int webpa_ping_timeout;
|
||||
char *webpa_url;
|
||||
char *webpa_path_url;
|
||||
char webpa_url[124];
|
||||
char webpa_path_url[124];
|
||||
unsigned int webpa_backoff_max;
|
||||
char *webpa_interface_used;
|
||||
char *webpa_protocol;
|
||||
char *webpa_uuid;
|
||||
char webpa_interface_used[16];
|
||||
char webpa_protocol[32];
|
||||
char webpa_uuid[64];
|
||||
unsigned int flags;
|
||||
char *local_url;
|
||||
char *partner_id;
|
||||
char local_url[124];
|
||||
char partner_id[64];
|
||||
#ifdef ENABLE_SESHAT
|
||||
char *seshat_url;
|
||||
char seshat_url[128];
|
||||
#endif
|
||||
char *dns_txt_url;
|
||||
char dns_txt_url[64];
|
||||
unsigned int acquire_jwt;
|
||||
unsigned int jwt_algo; // bit mask set for each allowed algorithm
|
||||
char *jwt_key; // may be read in from a pem file
|
||||
char *cert_path;
|
||||
char *webpa_auth_token;
|
||||
char *token_acquisition_script;
|
||||
char *token_read_script;
|
||||
char jwt_key[4096]; // may be read in from a pem file
|
||||
char cert_path[64];
|
||||
char webpa_auth_token[4096];
|
||||
char token_acquisition_script[64];
|
||||
char token_read_script[64];
|
||||
} ParodusCfg;
|
||||
|
||||
#define FLAGS_IPV6_ONLY (1 << 0)
|
||||
@@ -122,17 +121,6 @@ void setDefaultValuesToCfg(ParodusCfg *cfg);
|
||||
void getAuthToken(ParodusCfg *cfg);
|
||||
// Accessor for the global config structure.
|
||||
ParodusCfg *get_parodus_cfg(void);
|
||||
|
||||
/*
|
||||
Called on program exit
|
||||
*/
|
||||
void clean_up_parodus_cfg(ParodusCfg *cfg);
|
||||
|
||||
/* File Utility Function */
|
||||
/* Mallocs memory for the entire file, caller will have to call free(*data) */
|
||||
void read_key_from_file (const char *fname, char **data);
|
||||
|
||||
|
||||
void set_parodus_cfg(ParodusCfg *);
|
||||
char *get_token_application(void) ;
|
||||
|
||||
|
||||
@@ -119,36 +119,32 @@ int createNopollConnection(noPollCtx *ctx)
|
||||
char user_agent[512]={'\0'};
|
||||
char * extra_headers = NULL;
|
||||
unsigned int fallback = FLAGS_IPV6_ONLY;
|
||||
ParodusCfg *cfg = get_parodus_cfg();
|
||||
|
||||
if(ctx == NULL) {
|
||||
return nopoll_false;
|
||||
}
|
||||
|
||||
ParodusPrint("BootTime In sec: %d\n", cfg->boot_time);
|
||||
ParodusInfo("Received reboot_reason as:%s\n", cfg->hw_last_reboot_reason);
|
||||
ParodusPrint("BootTime In sec: %d\n", get_parodus_cfg()->boot_time);
|
||||
ParodusInfo("Received reboot_reason as:%s\n", get_parodus_cfg()->hw_last_reboot_reason);
|
||||
ParodusInfo("Received reconnect_reason as:%s\n", reconnect_reason);
|
||||
|
||||
max_retry_sleep = (int) cfg->webpa_backoff_max;
|
||||
max_retry_sleep = (int) get_parodus_cfg()->webpa_backoff_max;
|
||||
ParodusPrint("max_retry_sleep is %d\n", max_retry_sleep );
|
||||
|
||||
snprintf(user_agent, sizeof(user_agent),"%s (%s; %s/%s;)",
|
||||
((cfg->webpa_protocol && (0 != strlen(cfg->webpa_protocol)) ) ?
|
||||
cfg->webpa_protocol : "unknown"),
|
||||
((cfg->fw_name && (0 != strlen(cfg->fw_name))) ? cfg->fw_name : "unknown"),
|
||||
((cfg->hw_model && (0 != strlen(cfg->hw_model))) ? cfg->hw_model : "unknown"),
|
||||
((cfg->hw_manufacturer && (0 != strlen(cfg->hw_manufacturer))) ?
|
||||
cfg->hw_manufacturer : "unknown")
|
||||
);
|
||||
((0 != strlen(get_parodus_cfg()->webpa_protocol)) ? get_parodus_cfg()->webpa_protocol : "unknown"),
|
||||
((0 != strlen(get_parodus_cfg()->fw_name)) ? get_parodus_cfg()->fw_name : "unknown"),
|
||||
((0 != strlen(get_parodus_cfg()->hw_model)) ? get_parodus_cfg()->hw_model : "unknown"),
|
||||
((0 != strlen(get_parodus_cfg()->hw_manufacturer)) ? get_parodus_cfg()->hw_manufacturer : "unknown"));
|
||||
|
||||
ParodusInfo("User-Agent: %s\n",user_agent);
|
||||
conveyHeader = getWebpaConveyHeader();
|
||||
parStrncpy(deviceMAC, cfg->hw_mac ? cfg->hw_mac : "000000000000", sizeof(deviceMAC));
|
||||
parStrncpy(deviceMAC, get_parodus_cfg()->hw_mac,sizeof(deviceMAC));
|
||||
snprintf(device_id, sizeof(device_id), "mac:%s", deviceMAC);
|
||||
ParodusInfo("Device_id %s\n",device_id);
|
||||
|
||||
extra_headers = build_extra_headers(
|
||||
( (cfg->webpa_auth_token&& (0 < strlen(cfg->webpa_auth_token))) ? cfg->webpa_auth_token : NULL),
|
||||
((0 < strlen(get_parodus_cfg()->webpa_auth_token)) ? get_parodus_cfg()->webpa_auth_token : NULL),
|
||||
device_id, user_agent, conveyHeader );
|
||||
|
||||
do
|
||||
@@ -163,13 +159,13 @@ int createNopollConnection(noPollCtx *ctx)
|
||||
//retry jwt validation on query dns failure
|
||||
if((jwt_status == INITIAL_CJWT_RETRY) || (jwt_status == TOKEN_ERR_QUERY_DNS_FAIL))
|
||||
{
|
||||
allow_insecure = parse_webpa_url (cfg->webpa_url,
|
||||
allow_insecure = parse_webpa_url (get_parodus_cfg()->webpa_url,
|
||||
server_Address, (int) sizeof(server_Address),
|
||||
port, (int) sizeof(port));
|
||||
if (allow_insecure < 0)
|
||||
return nopoll_false; // must have valid default url
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
if (cfg->acquire_jwt) {
|
||||
if (get_parodus_cfg()->acquire_jwt) {
|
||||
//query dns and validate JWT
|
||||
jwt_status = allow_insecure_conn(
|
||||
server_Address, (int) sizeof(server_Address),
|
||||
@@ -204,7 +200,7 @@ int createNopollConnection(noPollCtx *ctx)
|
||||
ParodusPrint("secure false\n");
|
||||
noPollConnOpts * opts;
|
||||
opts = createConnOpts(extra_headers, false);
|
||||
connection = nopoll_conn_new_opts (ctx, opts,server_Address,port,NULL,cfg->webpa_path_url,NULL,NULL);// WEBPA-787
|
||||
connection = nopoll_conn_new_opts (ctx, opts,server_Address,port,NULL,get_parodus_cfg()->webpa_path_url,NULL,NULL);// WEBPA-787
|
||||
}
|
||||
set_global_conn(connection);
|
||||
|
||||
@@ -215,10 +211,10 @@ int createNopollConnection(noPollCtx *ctx)
|
||||
ParodusError("Error connecting to server\n");
|
||||
ParodusError("RDK-10037 - WebPA Connection Lost\n");
|
||||
// Copy the server address from config to avoid retrying to the same failing talaria redirected node
|
||||
if (cfg->acquire_jwt == 0)
|
||||
if (get_parodus_cfg()->acquire_jwt == 0)
|
||||
{
|
||||
ParodusInfo("acquire_jwt is 0, retrying with config server address\n");
|
||||
allow_insecure = parse_webpa_url (cfg->webpa_url,
|
||||
allow_insecure = parse_webpa_url (get_parodus_cfg()->webpa_url,
|
||||
server_Address, (int) sizeof(server_Address),
|
||||
port, (int) sizeof(port));
|
||||
}
|
||||
@@ -232,7 +228,7 @@ int createNopollConnection(noPollCtx *ctx)
|
||||
else
|
||||
{
|
||||
ParodusError("acquire_jwt is 1 & unable to get jwt_server_url, retrying with config server address\n");
|
||||
allow_insecure = parse_webpa_url (cfg->webpa_url, server_Address, (int) sizeof(server_Address), port, (int) sizeof(port));
|
||||
allow_insecure = parse_webpa_url (get_parodus_cfg()->webpa_url, server_Address, (int) sizeof(server_Address), port, (int) sizeof(port));
|
||||
|
||||
}
|
||||
}
|
||||
@@ -270,10 +266,10 @@ int createNopollConnection(noPollCtx *ctx)
|
||||
if (allow_insecure < 0) {
|
||||
ParodusError ("Invalid redirectURL\n");
|
||||
|
||||
if (cfg->acquire_jwt == 0)
|
||||
if (get_parodus_cfg()->acquire_jwt == 0)
|
||||
{
|
||||
ParodusInfo("acquire_jwt is 0, retrying with config server address\n");
|
||||
allow_insecure = parse_webpa_url (cfg->webpa_url, server_Address, (int) sizeof(server_Address), port, (int) sizeof(port));
|
||||
allow_insecure = parse_webpa_url (get_parodus_cfg()->webpa_url, server_Address, (int) sizeof(server_Address), port, (int) sizeof(port));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -285,7 +281,7 @@ int createNopollConnection(noPollCtx *ctx)
|
||||
else
|
||||
{
|
||||
ParodusError("acquire_jwt is 1 & unable to get jwt_server_url, retrying with config server address\n");
|
||||
allow_insecure = parse_webpa_url (cfg->webpa_url, server_Address, (int) sizeof(server_Address), port, (int) sizeof(port));
|
||||
allow_insecure = parse_webpa_url (get_parodus_cfg()->webpa_url, server_Address, (int) sizeof(server_Address), port, (int) sizeof(port));
|
||||
|
||||
}
|
||||
}
|
||||
@@ -300,11 +296,11 @@ int createNopollConnection(noPollCtx *ctx)
|
||||
ParodusError("Received Unauthorized response with status: %d\n", status);
|
||||
//Get new token and update auth header
|
||||
|
||||
if (strlen(cfg->token_acquisition_script) >0) {
|
||||
createNewAuthToken(cfg->webpa_auth_token,sizeof(cfg->webpa_auth_token));
|
||||
if (strlen(get_parodus_cfg()->token_acquisition_script) >0) {
|
||||
createNewAuthToken(get_parodus_cfg()->webpa_auth_token,sizeof(get_parodus_cfg()->webpa_auth_token));
|
||||
}
|
||||
|
||||
extra_headers = build_extra_headers( (0 < strlen(cfg->webpa_auth_token) ? cfg->webpa_auth_token : NULL),
|
||||
extra_headers = build_extra_headers( (0 < strlen(get_parodus_cfg()->webpa_auth_token) ? get_parodus_cfg()->webpa_auth_token : NULL),
|
||||
device_id, user_agent, conveyHeader );
|
||||
|
||||
//reset c=2 to start backoffRetryTime as retrying
|
||||
@@ -316,10 +312,10 @@ int createNopollConnection(noPollCtx *ctx)
|
||||
ParodusError("RDK-10037 - WebPA Connection Lost\n");
|
||||
// Copy the server address and port from config to avoid retrying to the same failing talaria redirected node
|
||||
|
||||
if (cfg->acquire_jwt == 0)
|
||||
if (get_parodus_cfg()->acquire_jwt == 0)
|
||||
{
|
||||
ParodusInfo("acquire_jwt is 0, retrying with config server address\n");
|
||||
allow_insecure = parse_webpa_url (cfg->webpa_url, server_Address, (int) sizeof(server_Address), port, (int) sizeof(port));
|
||||
allow_insecure = parse_webpa_url (get_parodus_cfg()->webpa_url, server_Address, (int) sizeof(server_Address), port, (int) sizeof(port));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -331,7 +327,7 @@ int createNopollConnection(noPollCtx *ctx)
|
||||
else
|
||||
{
|
||||
ParodusError("acquire_jwt is 1 & unable to get jwt_server_url, retrying with config server address\n");
|
||||
allow_insecure = parse_webpa_url (cfg->webpa_url, server_Address, (int) sizeof(server_Address), port, (int) sizeof(port));
|
||||
allow_insecure = parse_webpa_url (get_parodus_cfg()->webpa_url, server_Address, (int) sizeof(server_Address), port, (int) sizeof(port));
|
||||
|
||||
}
|
||||
}
|
||||
@@ -390,10 +386,10 @@ int createNopollConnection(noPollCtx *ctx)
|
||||
c++;
|
||||
// Copy the server address and port from config to avoid retrying to the same failing talaria redirected node
|
||||
|
||||
if (cfg->acquire_jwt == 0)
|
||||
if (get_parodus_cfg()->acquire_jwt == 0)
|
||||
{
|
||||
ParodusInfo("acquire_jwt is 0, retrying with config server address\n");
|
||||
allow_insecure = parse_webpa_url (cfg->webpa_url, server_Address, (int) sizeof(server_Address), port, (int) sizeof(port));
|
||||
allow_insecure = parse_webpa_url (get_parodus_cfg()->webpa_url, server_Address, (int) sizeof(server_Address), port, (int) sizeof(port));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -405,7 +401,7 @@ int createNopollConnection(noPollCtx *ctx)
|
||||
else
|
||||
{
|
||||
ParodusError("acquire_jwt is 1 & unable to get jwt_server_url, retrying with config server address\n");
|
||||
allow_insecure = parse_webpa_url (cfg->webpa_url, server_Address, (int) sizeof(server_Address), port, (int) sizeof(port));
|
||||
allow_insecure = parse_webpa_url (get_parodus_cfg()->webpa_url, server_Address, (int) sizeof(server_Address), port, (int) sizeof(port));
|
||||
|
||||
}
|
||||
}
|
||||
@@ -475,18 +471,16 @@ static noPollConn * nopoll_tls_common_conn (noPollCtx * ctx,char * serverAddr,c
|
||||
unsigned int flags = 0;
|
||||
noPollConnOpts * opts;
|
||||
noPollConn *connection = NULL;
|
||||
ParodusCfg *cfg = get_parodus_cfg();
|
||||
|
||||
opts = createConnOpts(extra_headers, true);
|
||||
|
||||
flags = cfg->flags;
|
||||
flags = get_parodus_cfg()->flags;
|
||||
|
||||
if( FLAGS_IPV4_ONLY == (FLAGS_IPV4_ONLY & flags) ) {
|
||||
ParodusInfo("Connecting in Ipv4 mode\n");
|
||||
connection = nopoll_conn_tls_new (ctx, opts,serverAddr,serverPort,NULL,cfg->webpa_path_url,NULL,NULL);
|
||||
connection = nopoll_conn_tls_new (ctx, opts,serverAddr,serverPort,NULL,get_parodus_cfg()->webpa_path_url,NULL,NULL);
|
||||
} else if( FLAGS_IPV6_ONLY == (FLAGS_IPV6_ONLY & flags) ) {
|
||||
ParodusInfo("Connecting in Ipv6 mode\n");
|
||||
connection = nopoll_conn_tls_new6 (ctx, opts,serverAddr,serverPort,NULL,cfg->webpa_path_url,NULL,NULL);
|
||||
connection = nopoll_conn_tls_new6 (ctx, opts,serverAddr,serverPort,NULL,get_parodus_cfg()->webpa_path_url,NULL,NULL);
|
||||
} else {
|
||||
|
||||
connection = __internal_fallbackConn(ctx,opts,serverAddr,serverPort,extra_headers,fallback);
|
||||
@@ -497,12 +491,11 @@ static noPollConn * nopoll_tls_common_conn (noPollCtx * ctx,char * serverAddr,c
|
||||
static noPollConn * __internal_fallbackConn(noPollCtx * ctx,noPollConnOpts * opts,char * serverAddr,char *serverPort,char * extra_headers,unsigned int *fallback)
|
||||
{
|
||||
noPollConn *connection = NULL;
|
||||
ParodusCfg *cfg = get_parodus_cfg();
|
||||
|
||||
if(FLAGS_IPV6_ONLY == (FLAGS_IPV6_IPV4 & *fallback))
|
||||
{
|
||||
ParodusInfo("Try connecting with Ipv6 mode\n");
|
||||
connection = nopoll_conn_tls_new6 (ctx, opts,serverAddr,serverPort,NULL,cfg->webpa_path_url,NULL,NULL);
|
||||
connection = nopoll_conn_tls_new6 (ctx, opts,serverAddr,serverPort,NULL,get_parodus_cfg()->webpa_path_url,NULL,NULL);
|
||||
}
|
||||
if(FLAGS_IPV4_ONLY == (FLAGS_IPV6_IPV4 & *fallback) || !nopoll_conn_is_ok (connection) )
|
||||
{
|
||||
@@ -513,7 +506,7 @@ static noPollConn * __internal_fallbackConn(noPollCtx * ctx,noPollConnOpts * op
|
||||
toggleIPFlag(fallback);
|
||||
|
||||
opts = createConnOpts(extra_headers, true);
|
||||
connection = nopoll_conn_tls_new (ctx, opts,serverAddr,serverPort,NULL,cfg->webpa_path_url,NULL,NULL);
|
||||
connection = nopoll_conn_tls_new (ctx, opts,serverAddr,serverPort,NULL,get_parodus_cfg()->webpa_path_url,NULL,NULL);
|
||||
}
|
||||
|
||||
return connection;
|
||||
@@ -522,19 +515,18 @@ static noPollConn * __internal_fallbackConn(noPollCtx * ctx,noPollConnOpts * op
|
||||
static noPollConnOpts * createConnOpts (char * extra_headers, bool secure)
|
||||
{
|
||||
noPollConnOpts * opts;
|
||||
ParodusCfg *cfg = get_parodus_cfg();
|
||||
|
||||
opts = nopoll_conn_opts_new ();
|
||||
if(secure)
|
||||
{
|
||||
if(cfg->cert_path && (strlen(cfg->cert_path) > 0))
|
||||
if(strlen(get_parodus_cfg()->cert_path) > 0)
|
||||
{
|
||||
nopoll_conn_opts_set_ssl_certs(opts, NULL, NULL, NULL, cfg->cert_path);
|
||||
nopoll_conn_opts_set_ssl_certs(opts, NULL, NULL, NULL, get_parodus_cfg()->cert_path);
|
||||
}
|
||||
nopoll_conn_opts_ssl_peer_verify (opts, nopoll_true);
|
||||
nopoll_conn_opts_set_ssl_protocol (opts, NOPOLL_METHOD_TLSV1_2);
|
||||
}
|
||||
nopoll_conn_opts_set_interface (opts,cfg->webpa_interface_used);
|
||||
nopoll_conn_opts_set_interface (opts,get_parodus_cfg()->webpa_interface_used);
|
||||
nopoll_conn_opts_set_extra_headers (opts,extra_headers);
|
||||
return opts;
|
||||
}
|
||||
|
||||
@@ -132,7 +132,6 @@ static void sig_handler(int sig)
|
||||
else
|
||||
{
|
||||
ParodusInfo("Signal %d received!\n", sig);
|
||||
clean_up_parodus_cfg(get_parodus_cfg());
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ int validate_partner_id(wrp_msg_t *msg, partners_t **partnerIds)
|
||||
int matchFlag = 0, i = 0, count = 0;
|
||||
ParodusPrint("********* %s ********\n",__FUNCTION__);
|
||||
char *partnerId = get_parodus_cfg()->partner_id;
|
||||
if(partnerId == NULL || strlen(partnerId) <= 0)
|
||||
if(strlen(partnerId) <= 0)
|
||||
{
|
||||
ParodusPrint("partner_id is not available to validate\n");
|
||||
return 0;
|
||||
|
||||
@@ -28,7 +28,6 @@ endif (ENABLE_SESHAT)
|
||||
|
||||
if (FEATURE_DNS_QUERY)
|
||||
set (PARODUS_COMMON_LIBS ${PARODUS_COMMON_LIBS} -lucresolv -lresolv)
|
||||
add_definitions(-DJWT_KEY_FILE_PATH="${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
endif (FEATURE_DNS_QUERY)
|
||||
|
||||
if(NOT DISABLE_VALGRIND)
|
||||
|
||||
@@ -65,17 +65,18 @@ void test_set_global_conn()
|
||||
void test_set_parodus_cfg()
|
||||
{
|
||||
ParodusCfg cfg;
|
||||
cfg.hw_model= strdup ("TG1682");
|
||||
cfg.hw_serial_number= strdup ("Fer23u948590");
|
||||
cfg.hw_manufacturer = strdup ("ARRISGroup,Inc.");
|
||||
cfg.hw_mac = strdup ("123567892366");
|
||||
cfg.hw_last_reboot_reason = strdup ("unknown");
|
||||
cfg.fw_name = strdup ("2.364s2");
|
||||
cfg.webpa_path_url = strdup ("/api/v2/device");
|
||||
cfg.webpa_url = strdup ("fabric-cd.webpa.comcast.net");
|
||||
cfg.webpa_interface_used = strdup ("eth0");
|
||||
cfg.webpa_protocol = strdup ("WebPA-1.6");
|
||||
cfg.webpa_uuid = strdup ("1234567-345456546");
|
||||
|
||||
parStrncpy(cfg.hw_model, "TG1682", sizeof(cfg.hw_model));
|
||||
parStrncpy(cfg.hw_serial_number, "Fer23u948590", sizeof(cfg.hw_serial_number));
|
||||
parStrncpy(cfg.hw_manufacturer , "ARRISGroup,Inc.", sizeof(cfg.hw_manufacturer));
|
||||
parStrncpy(cfg.hw_mac , "123567892366", sizeof(cfg.hw_mac));
|
||||
parStrncpy(cfg.hw_last_reboot_reason , "unknown", sizeof(cfg.hw_last_reboot_reason));
|
||||
parStrncpy(cfg.fw_name , "2.364s2", sizeof(cfg.fw_name));
|
||||
parStrncpy(cfg.webpa_path_url , "/api/v2/device", sizeof(cfg.webpa_path_url));
|
||||
parStrncpy(cfg.webpa_url , "fabric-cd.webpa.comcast.net", sizeof(cfg.webpa_url));
|
||||
parStrncpy(cfg.webpa_interface_used , "eth0", sizeof(cfg.webpa_interface_used));
|
||||
parStrncpy(cfg.webpa_protocol , "WebPA-1.6", sizeof(cfg.webpa_protocol));
|
||||
parStrncpy(cfg.webpa_uuid , "1234567-345456546", sizeof(cfg.webpa_uuid));
|
||||
cfg.secureFlag = 1;
|
||||
cfg.boot_time = 423457;
|
||||
cfg.webpa_ping_timeout = 30;
|
||||
@@ -97,8 +98,6 @@ void test_set_parodus_cfg()
|
||||
CU_ASSERT_EQUAL(cfg.webpa_ping_timeout, get_parodus_cfg()->webpa_ping_timeout);
|
||||
CU_ASSERT_EQUAL(cfg.webpa_backoff_max, get_parodus_cfg()->webpa_backoff_max);
|
||||
CU_ASSERT_EQUAL(cfg.secureFlag, get_parodus_cfg()->secureFlag);
|
||||
|
||||
clean_up_parodus_cfg();
|
||||
}
|
||||
|
||||
void test_getWebpaConveyHeader()
|
||||
|
||||
@@ -57,17 +57,17 @@ void test_getWebpaConveyHeader()
|
||||
{
|
||||
ParodusCfg cfg;
|
||||
memset(&cfg, 0, sizeof(ParodusCfg));
|
||||
cfg.hw_model = strdup ("TG1682");
|
||||
cfg.hw_serial_number = strdup ("Fer23u948590");
|
||||
cfg.hw_manufacturer = strdup ("ARRISGroup,Inc.");
|
||||
cfg.hw_mac = strdup ("123567892366");
|
||||
cfg.hw_last_reboot_reason = strdup ("unknown");
|
||||
cfg.fw_name = strdup ("2.364s2");
|
||||
cfg.webpa_path_url = strdup ("/api/v2/device");
|
||||
cfg.webpa_url = strdup ("localhost");
|
||||
cfg.webpa_interface_used = strdup ("eth0");
|
||||
cfg.webpa_protocol = strdup ("WebPA-1.6");
|
||||
cfg.webpa_uuid = strdup ("1234567-345456546");
|
||||
parStrncpy(cfg.hw_model, "TG1682", sizeof(cfg.hw_model));
|
||||
parStrncpy(cfg.hw_serial_number, "Fer23u948590", sizeof(cfg.hw_serial_number));
|
||||
parStrncpy(cfg.hw_manufacturer , "ARRISGroup,Inc.", sizeof(cfg.hw_manufacturer));
|
||||
parStrncpy(cfg.hw_mac , "123567892366", sizeof(cfg.hw_mac));
|
||||
parStrncpy(cfg.hw_last_reboot_reason , "unknown", sizeof(cfg.hw_last_reboot_reason));
|
||||
parStrncpy(cfg.fw_name , "2.364s2", sizeof(cfg.fw_name));
|
||||
parStrncpy(cfg.webpa_path_url , "/api/v2/device", sizeof(cfg.webpa_path_url));
|
||||
parStrncpy(cfg.webpa_url , "localhost", sizeof(cfg.webpa_url));
|
||||
parStrncpy(cfg.webpa_interface_used , "eth0", sizeof(cfg.webpa_interface_used));
|
||||
parStrncpy(cfg.webpa_protocol , "WebPA-1.6", sizeof(cfg.webpa_protocol));
|
||||
parStrncpy(cfg.webpa_uuid , "1234567-345456546", sizeof(cfg.webpa_uuid));
|
||||
cfg.flags = 0;
|
||||
cfg.boot_time = 423457;
|
||||
cfg.webpa_ping_timeout = 30;
|
||||
@@ -80,7 +80,6 @@ void test_getWebpaConveyHeader()
|
||||
will_return(nopoll_base64_encode, nopoll_true);
|
||||
expect_function_call(nopoll_base64_encode);
|
||||
getWebpaConveyHeader();
|
||||
clean_up_parodus_cfg(&cfg);
|
||||
}
|
||||
|
||||
void err_getWebpaConveyHeader()
|
||||
|
||||
@@ -58,20 +58,20 @@ void test_setParodusConfig()
|
||||
ParodusCfg cfg;
|
||||
memset(&cfg,0,sizeof(cfg));
|
||||
|
||||
cfg.hw_model = strdup ("TG1682");
|
||||
cfg.hw_serial_number = strdup ("Fer23u948590");
|
||||
cfg.hw_manufacturer = strdup ("ARRISGroup,Inc.");
|
||||
cfg.hw_mac = strdup ("123567892366");
|
||||
cfg.hw_last_reboot_reason = strdup ("unknown");
|
||||
cfg.fw_name = strdup ("2.364s2");
|
||||
cfg.webpa_path_url = strdup ("/v1");
|
||||
cfg.webpa_url = strdup ("http://127.0.0.1");
|
||||
cfg.webpa_interface_used = strdup ("eth0");
|
||||
cfg.webpa_protocol = strdup ("WebPA-1.6");
|
||||
cfg.webpa_uuid = strdup ("1234567-345456546");
|
||||
cfg.partner_id = strdup ("mycom");
|
||||
parStrncpy(cfg.hw_model, "TG1682", sizeof(cfg.hw_model));
|
||||
parStrncpy(cfg.hw_serial_number, "Fer23u948590", sizeof(cfg.hw_serial_number));
|
||||
parStrncpy(cfg.hw_manufacturer , "ARRISGroup,Inc.", sizeof(cfg.hw_manufacturer));
|
||||
parStrncpy(cfg.hw_mac , "123567892366", sizeof(cfg.hw_mac));
|
||||
parStrncpy(cfg.hw_last_reboot_reason , "unknown", sizeof(cfg.hw_last_reboot_reason));
|
||||
parStrncpy(cfg.fw_name , "2.364s2", sizeof(cfg.fw_name));
|
||||
parStrncpy(cfg.webpa_path_url , "/v1", sizeof(cfg.webpa_path_url));
|
||||
parStrncpy(cfg.webpa_url , "http://127.0.0.1", sizeof(cfg.webpa_url));
|
||||
parStrncpy(cfg.webpa_interface_used , "eth0", sizeof(cfg.webpa_interface_used));
|
||||
parStrncpy(cfg.webpa_protocol , "WebPA-1.6", sizeof(cfg.webpa_protocol));
|
||||
parStrncpy(cfg.webpa_uuid , "1234567-345456546", sizeof(cfg.webpa_uuid));
|
||||
parStrncpy(cfg.partner_id , "mycom", sizeof(cfg.partner_id));
|
||||
#ifdef ENABLE_SESHAT
|
||||
cfg.seshat_url = strdup ("ipc://tmp/seshat_service.url");
|
||||
parStrncpy(cfg.seshat_url, "ipc://tmp/seshat_service.url", sizeof(cfg.seshat_url));
|
||||
#endif
|
||||
cfg.flags = 0;
|
||||
cfg.boot_time = 423457;
|
||||
@@ -79,9 +79,9 @@ void test_setParodusConfig()
|
||||
cfg.webpa_backoff_max = 255;
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
cfg.acquire_jwt = 1;
|
||||
cfg.dns_txt_url = strdup ("test");
|
||||
parStrncpy(cfg.dns_txt_url, "test",sizeof(cfg.dns_txt_url));
|
||||
cfg.jwt_algo = 1025;
|
||||
cfg.jwt_key = strdup ("key.txt");
|
||||
parStrncpy(cfg.jwt_key, "key.txt",sizeof(cfg.jwt_key));
|
||||
#endif
|
||||
set_parodus_cfg(&cfg);
|
||||
|
||||
@@ -111,8 +111,6 @@ void test_setParodusConfig()
|
||||
assert_int_equal( (int) cfg.jwt_algo, (int) temp->jwt_algo);
|
||||
assert_string_equal(cfg.jwt_key, temp->jwt_key);
|
||||
#endif
|
||||
|
||||
clean_up_parodus_cfg(&cfg);
|
||||
}
|
||||
|
||||
void test_getParodusConfig()
|
||||
@@ -120,43 +118,20 @@ void test_getParodusConfig()
|
||||
ParodusCfg cfg;
|
||||
memset(&cfg,0,sizeof(cfg));
|
||||
|
||||
cfg.hw_model = strdup ("TG1682133");
|
||||
parStrncpy(cfg.hw_model, "TG1682133",sizeof(cfg.hw_model));
|
||||
set_parodus_cfg(&cfg);
|
||||
|
||||
ParodusCfg *temp = get_parodus_cfg();
|
||||
|
||||
assert_string_equal(cfg.hw_model, temp->hw_model);
|
||||
|
||||
free(cfg.hw_model);
|
||||
}
|
||||
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
const char *jwt_key_file_path = JWT_KEY_FILE_PATH;
|
||||
#else
|
||||
const char *jwt_key_file_path = "foo";
|
||||
#endif
|
||||
|
||||
static FILE * open_output_file (const char *fname)
|
||||
static int open_output_file (const char *fname)
|
||||
{
|
||||
FILE *fd;
|
||||
char *file_path;
|
||||
int error;
|
||||
|
||||
file_path = (char *) malloc(strlen(fname) + strlen(jwt_key_file_path) + 1);
|
||||
if (NULL == file_path) {
|
||||
ParodusError("open_output_file() malloc failed\n");
|
||||
}
|
||||
|
||||
strcpy(file_path, jwt_key_file_path);
|
||||
strcat(file_path, fname);
|
||||
|
||||
errno = 0;
|
||||
fd = fopen(file_path, "w+");
|
||||
error = errno;
|
||||
|
||||
if (NULL == fd)
|
||||
int fd = open(fname, O_WRONLY | O_CREAT, 0666);
|
||||
if (fd<0)
|
||||
{
|
||||
ParodusError ("File %s open error (%s)\n", file_path, strerror(error));
|
||||
ParodusError ("File %s open error\n", fname);
|
||||
abort ();
|
||||
}
|
||||
return fd;
|
||||
@@ -164,21 +139,17 @@ static FILE * open_output_file (const char *fname)
|
||||
|
||||
void write_key_to_file (const char *fname, const char *buf)
|
||||
{
|
||||
ssize_t nbytes = -1;
|
||||
ssize_t nbytes;
|
||||
ssize_t buflen = strlen (buf);
|
||||
FILE *fd = open_output_file(fname);
|
||||
|
||||
if (fd) {
|
||||
nbytes = fwrite(buf, sizeof(char), buflen, fd);
|
||||
}
|
||||
|
||||
int fd = open_output_file(fname);
|
||||
nbytes = write(fd, buf, buflen);
|
||||
if (nbytes < 0)
|
||||
{
|
||||
ParodusError ("Write file %s error\n", fname);
|
||||
fclose(fd);
|
||||
close(fd);
|
||||
abort ();
|
||||
}
|
||||
fclose(fd);
|
||||
close(fd);
|
||||
ParodusInfo ("%d bytes written\n", nbytes);
|
||||
}
|
||||
|
||||
@@ -214,34 +185,18 @@ void test_parseCommandLine()
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
"--acquire-jwt=1",
|
||||
"--dns-txt-url=mydns.mycom.net",
|
||||
"--jwt-algo=RS256",
|
||||
"--jwt-public-key-file=../../tests/jwt_key.tst", /* POSITION DEPENDENT */
|
||||
"--jwt-public-key-file=../../tests/jwt_key.tst",
|
||||
"--jwt-algo=RS256",
|
||||
#endif
|
||||
NULL
|
||||
};
|
||||
int argc = (sizeof (command) / sizeof (char *)) - 1;
|
||||
|
||||
ParodusCfg parodusCfg;
|
||||
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
char *file_path;
|
||||
#define JWT_PUBLIC "--jwt-public-key-file="
|
||||
|
||||
file_path = (char *) malloc(strlen(JWT_PUBLIC) + strlen("/jwt_key.tst") +
|
||||
strlen(jwt_key_file_path) + 1);
|
||||
if (NULL == file_path) {
|
||||
ParodusError("open_output_file() malloc failed\n");
|
||||
}
|
||||
|
||||
strcpy(file_path, JWT_PUBLIC);
|
||||
strcat(file_path, jwt_key_file_path);
|
||||
strcat(file_path, "/jwt_key.tst");
|
||||
command[argc-1] = file_path;
|
||||
#endif
|
||||
|
||||
memset(&parodusCfg,0,sizeof(parodusCfg));
|
||||
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
write_key_to_file ("/jwt_key.tst", jwt_key);
|
||||
write_key_to_file ("../../tests/jwt_key.tst", jwt_key);
|
||||
#endif
|
||||
create_token_script("/tmp/token.sh");
|
||||
assert_int_equal (parseCommandLine(argc,command,&parodusCfg), 0);
|
||||
@@ -274,7 +229,6 @@ void test_parseCommandLine()
|
||||
assert_string_equal(parodusCfg.dns_txt_url, "mydns.mycom.net");
|
||||
assert_int_equal( (int) parodusCfg.jwt_algo, 1024);
|
||||
assert_string_equal ( get_parodus_cfg()->jwt_key, jwt_key);
|
||||
free(file_path);
|
||||
#endif
|
||||
|
||||
}
|
||||
@@ -338,30 +292,30 @@ void test_loadParodusCfg()
|
||||
Cfg = (ParodusCfg*)malloc(sizeof(ParodusCfg));
|
||||
char protocol[32] = {'\0'};
|
||||
|
||||
Cfg->hw_model = strdup ("TG1682");
|
||||
Cfg->hw_serial_number = strdup ("Fer23u948590");
|
||||
Cfg->hw_manufacturer = strdup ("ARRISGroup,Inc.");
|
||||
Cfg->hw_mac = strdup ("123567892366");
|
||||
Cfg->hw_last_reboot_reason = strdup ("unknown");
|
||||
Cfg->fw_name = strdup ("2.364s2");
|
||||
Cfg->webpa_path_url = strdup ("/v1");
|
||||
Cfg->webpa_url = strdup ("http://127.0.0.1");
|
||||
Cfg->webpa_interface_used = strdup ("eth0");
|
||||
parStrncpy(Cfg->hw_model, "TG1682", sizeof(Cfg->hw_model));
|
||||
parStrncpy(Cfg->hw_serial_number, "Fer23u948590", sizeof(Cfg->hw_serial_number));
|
||||
parStrncpy(Cfg->hw_manufacturer , "ARRISGroup,Inc.", sizeof(Cfg->hw_manufacturer));
|
||||
parStrncpy(Cfg->hw_mac , "123567892366", sizeof(Cfg->hw_mac));
|
||||
parStrncpy(Cfg->hw_last_reboot_reason , "unknown", sizeof(Cfg->hw_last_reboot_reason));
|
||||
parStrncpy(Cfg->fw_name , "2.364s2", sizeof(Cfg->fw_name));
|
||||
parStrncpy(Cfg->webpa_path_url , "/v1", sizeof(Cfg->webpa_path_url));
|
||||
parStrncpy(Cfg->webpa_url , "http://127.0.0.1", sizeof(Cfg->webpa_url));
|
||||
parStrncpy(Cfg->webpa_interface_used , "eth0", sizeof(Cfg->webpa_interface_used));
|
||||
snprintf(protocol, sizeof(protocol), "%s-%s", PROTOCOL_VALUE, GIT_COMMIT_TAG);
|
||||
Cfg->webpa_protocol = strdup (protocol);
|
||||
Cfg->local_url = strdup ("tcp://10.0.0.1:6000");
|
||||
Cfg->partner_id = strdup ("shaw");
|
||||
parStrncpy(Cfg->webpa_protocol , protocol, sizeof(Cfg->webpa_protocol));
|
||||
parStrncpy(Cfg->local_url , "tcp://10.0.0.1:6000", sizeof(Cfg->local_url));
|
||||
parStrncpy(Cfg->partner_id , "shaw", sizeof(Cfg->partner_id));
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
Cfg->acquire_jwt = 1;
|
||||
Cfg->dns_txt_url = strdup ("mydns");
|
||||
parStrncpy(Cfg->dns_txt_url, "mydns",sizeof(Cfg->dns_txt_url));
|
||||
Cfg->jwt_algo = 1025;
|
||||
Cfg->jwt_key = strdup ("AGdyuwyhwl2ow2ydsoioiygkshwdthuwd");
|
||||
parStrncpy(Cfg->jwt_key, "AGdyuwyhwl2ow2ydsoioiygkshwdthuwd",sizeof(Cfg->jwt_key));
|
||||
#endif
|
||||
Cfg->token_acquisition_script = strdup ("/tmp/token.sh");
|
||||
Cfg->token_read_script = strdup ("/tmp/token.sh");
|
||||
Cfg->cert_path = strdup ("/etc/ssl.crt");
|
||||
parStrncpy(Cfg->token_acquisition_script , "/tmp/token.sh", sizeof(Cfg->token_acquisition_script));
|
||||
parStrncpy(Cfg->token_read_script , "/tmp/token.sh", sizeof(Cfg->token_read_script));
|
||||
parStrncpy(Cfg->cert_path, "/etc/ssl.crt",sizeof(Cfg->cert_path));
|
||||
#ifdef ENABLE_SESHAT
|
||||
Cfg->seshat_url = strdup ("ipc://tmp/seshat_service.url");
|
||||
parStrncpy(Cfg->seshat_url, "ipc://tmp/seshat_service.url", sizeof(Cfg->seshat_url));
|
||||
#endif
|
||||
memset(&tmpcfg,0,sizeof(ParodusCfg));
|
||||
loadParodusCfg(Cfg,&tmpcfg);
|
||||
@@ -385,7 +339,6 @@ void test_loadParodusCfg()
|
||||
#ifdef ENABLE_SESHAT
|
||||
assert_string_equal(tmpcfg.seshat_url, "ipc://tmp/seshat_service.url");
|
||||
#endif
|
||||
clean_up_parodus_cfg(Cfg);
|
||||
free(Cfg);
|
||||
}
|
||||
|
||||
@@ -399,12 +352,14 @@ void test_loadParodusCfgNull()
|
||||
|
||||
loadParodusCfg(cfg,&temp);
|
||||
|
||||
assert_string_equal(temp.hw_model, "");
|
||||
assert_string_equal(temp.hw_serial_number, "");
|
||||
assert_string_equal(temp.hw_manufacturer, "");
|
||||
assert_int_equal( (int) temp.flags,0);
|
||||
assert_string_equal( temp.webpa_path_url, WEBPA_PATH_URL);
|
||||
assert_string_equal( temp.webpa_uuid,"1234567-345456546");
|
||||
assert_string_equal( temp.local_url, PARODUS_UPSTREAM);
|
||||
|
||||
clean_up_parodus_cfg(cfg);
|
||||
free(cfg);
|
||||
}
|
||||
|
||||
@@ -414,20 +369,18 @@ void err_loadParodusCfg()
|
||||
loadParodusCfg(NULL,&cfg);
|
||||
}
|
||||
|
||||
/* This test makes no sense ;-)
|
||||
void test_parodusGitVersion()
|
||||
{
|
||||
FILE *fp;
|
||||
char *version = (char *) malloc(256);
|
||||
char version[32] = {'\0'};
|
||||
char *command = "git describe --tags --always";
|
||||
int n;
|
||||
size_t len;
|
||||
fp = popen(command,"r");
|
||||
memset(version, 0, 2048);
|
||||
while(fgets(version, 2048, fp) !=NULL)
|
||||
while(fgets(version, 32, fp) !=NULL)
|
||||
{
|
||||
len = strlen(version);
|
||||
if (len > 0)
|
||||
if (len > 0 && version[len-1] == '\n')
|
||||
{
|
||||
version[--len] = '\0';
|
||||
}
|
||||
@@ -438,9 +391,7 @@ void test_parodusGitVersion()
|
||||
printf ("GIT_COMMIT_TAG: %s\n", GIT_COMMIT_TAG);
|
||||
n = strcmp( version, GIT_COMMIT_TAG);
|
||||
assert_int_equal(n, 0);
|
||||
free(version);
|
||||
}
|
||||
*/
|
||||
|
||||
void test_setDefaultValuesToCfg()
|
||||
{
|
||||
@@ -454,13 +405,10 @@ void test_setDefaultValuesToCfg()
|
||||
assert_string_equal(cfg->jwt_key, "\0");
|
||||
assert_int_equal( (int)cfg->jwt_algo, 0);
|
||||
#endif
|
||||
assert_true(cfg->cert_path == NULL);
|
||||
assert_string_equal(cfg->cert_path, "\0");
|
||||
assert_int_equal((int)cfg->flags, 0);
|
||||
assert_string_equal(cfg->webpa_path_url, WEBPA_PATH_URL);
|
||||
assert_string_equal(cfg->webpa_uuid, "1234567-345456546");
|
||||
|
||||
clean_up_parodus_cfg(cfg);
|
||||
free(cfg);
|
||||
}
|
||||
|
||||
void err_setDefaultValuesToCfg()
|
||||
@@ -563,7 +511,7 @@ int main(void)
|
||||
cmocka_unit_test(test_parseCommandLine),
|
||||
cmocka_unit_test(test_parseCommandLineNull),
|
||||
cmocka_unit_test(err_parseCommandLine),
|
||||
// cmocka_unit_test(test_parodusGitVersion),
|
||||
cmocka_unit_test(test_parodusGitVersion),
|
||||
cmocka_unit_test(test_setDefaultValuesToCfg),
|
||||
cmocka_unit_test(err_setDefaultValuesToCfg),
|
||||
};
|
||||
|
||||
@@ -241,17 +241,17 @@ void test_createSocketConnection2()
|
||||
noPollCtx *ctx;
|
||||
ParodusCfg cfg;
|
||||
memset(&cfg,0,sizeof(ParodusCfg));
|
||||
cfg.hw_model = strdup ("TG1682");
|
||||
cfg.hw_serial_number = strdup ("Fer23u948590");
|
||||
cfg.hw_manufacturer = strdup ("ARRISGroup,Inc.");
|
||||
cfg.hw_mac = strdup ("123567892366");
|
||||
cfg.hw_last_reboot_reason = strdup ("unknown");
|
||||
cfg.fw_name = strdup ("2.364s2");
|
||||
cfg.webpa_path_url = strdup ("/v1");
|
||||
cfg.webpa_url = strdup ("localhost");
|
||||
cfg.webpa_interface_used = strdup ("eth0");
|
||||
cfg.webpa_protocol = strdup ("WebPA-1.6");
|
||||
cfg.webpa_uuid = strdup ("1234567-345456546");
|
||||
parStrncpy(cfg.hw_model, "TG1682", sizeof(cfg.hw_model));
|
||||
parStrncpy(cfg.hw_serial_number, "Fer23u948590", sizeof(cfg.hw_serial_number));
|
||||
parStrncpy(cfg.hw_manufacturer , "ARRISGroup,Inc.", sizeof(cfg.hw_manufacturer));
|
||||
parStrncpy(cfg.hw_mac , "123567892366", sizeof(cfg.hw_mac));
|
||||
parStrncpy(cfg.hw_last_reboot_reason , "unknown", sizeof(cfg.hw_last_reboot_reason));
|
||||
parStrncpy(cfg.fw_name , "2.364s2", sizeof(cfg.fw_name));
|
||||
parStrncpy(cfg.webpa_path_url , "/v1", sizeof(cfg.webpa_path_url));
|
||||
parStrncpy(cfg.webpa_url , "localhost", sizeof(cfg.webpa_url));
|
||||
parStrncpy(cfg.webpa_interface_used , "eth0", sizeof(cfg.webpa_interface_used));
|
||||
parStrncpy(cfg.webpa_protocol , "WebPA-1.6", sizeof(cfg.webpa_protocol));
|
||||
parStrncpy(cfg.webpa_uuid , "1234567-345456546", sizeof(cfg.webpa_uuid));
|
||||
cfg.webpa_ping_timeout = 1;
|
||||
set_parodus_cfg(&cfg);
|
||||
|
||||
@@ -291,7 +291,6 @@ void test_createSocketConnection2()
|
||||
expect_function_call(nopoll_ctx_unref);
|
||||
expect_function_call(nopoll_cleanup_library);
|
||||
createSocketConnection(NULL);
|
||||
clean_up_parodus_cfg(&cfg);
|
||||
}
|
||||
|
||||
void err_createSocketConnection()
|
||||
|
||||
@@ -235,7 +235,7 @@ void test_createSecureConnection()
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
cfg->acquire_jwt = 1;
|
||||
#endif
|
||||
cfg->webpa_url = strdup (SECURE_WEBPA_URL);
|
||||
parStrncpy(cfg->webpa_url , SECURE_WEBPA_URL, sizeof(cfg->webpa_url));
|
||||
set_parodus_cfg(cfg);
|
||||
|
||||
assert_non_null(ctx);
|
||||
@@ -283,7 +283,6 @@ void test_createSecureConnection()
|
||||
|
||||
int ret = createNopollConnection(ctx);
|
||||
assert_int_equal(ret, nopoll_true);
|
||||
clean_up_parodus_cfg(cfg);
|
||||
free(cfg);
|
||||
if (g_jwt_server_ip !=NULL)
|
||||
{
|
||||
@@ -306,7 +305,7 @@ void test_createConnection()
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
cfg->acquire_jwt = 1;
|
||||
#endif
|
||||
cfg->webpa_url = strdup (UNSECURE_WEBPA_URL);
|
||||
parStrncpy(cfg->webpa_url , UNSECURE_WEBPA_URL, sizeof(cfg->webpa_url));
|
||||
set_parodus_cfg(cfg);
|
||||
assert_non_null(ctx);
|
||||
|
||||
@@ -340,7 +339,6 @@ void test_createConnection()
|
||||
|
||||
int ret = createNopollConnection(ctx);
|
||||
assert_int_equal(ret, nopoll_true);
|
||||
clean_up_parodus_cfg(cfg);
|
||||
free(cfg);
|
||||
if (g_jwt_server_ip !=NULL)
|
||||
{
|
||||
@@ -363,7 +361,7 @@ void test_createConnectionConnNull()
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
cfg->acquire_jwt = 1;
|
||||
#endif
|
||||
cfg->webpa_url = strdup (SECURE_WEBPA_URL);
|
||||
parStrncpy(cfg->webpa_url , SECURE_WEBPA_URL,sizeof(cfg->webpa_url));
|
||||
set_parodus_cfg(cfg);
|
||||
|
||||
assert_non_null(ctx);
|
||||
@@ -495,7 +493,6 @@ void test_createConnectionConnNull()
|
||||
expect_function_call(setMessageHandlers);
|
||||
|
||||
createNopollConnection(ctx);
|
||||
clean_up_parodus_cfg(cfg);
|
||||
free(cfg);
|
||||
if (g_jwt_server_ip !=NULL)
|
||||
{
|
||||
@@ -518,7 +515,7 @@ void test_createConnNull_JWT_NULL()
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
cfg->acquire_jwt = 1;
|
||||
#endif
|
||||
cfg->webpa_url = strdup (SECURE_WEBPA_URL);
|
||||
parStrncpy(cfg->webpa_url , SECURE_WEBPA_URL,sizeof(cfg->webpa_url));
|
||||
set_parodus_cfg(cfg);
|
||||
|
||||
assert_non_null(ctx);
|
||||
@@ -635,7 +632,6 @@ void test_createConnNull_JWT_NULL()
|
||||
expect_function_call(setMessageHandlers);
|
||||
|
||||
createNopollConnection(ctx);
|
||||
clean_up_parodus_cfg(cfg);
|
||||
free(cfg);
|
||||
if (g_jwt_server_ip !=NULL)
|
||||
{
|
||||
@@ -658,7 +654,7 @@ void test_createConnectionConnNotOk()
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
cfg->acquire_jwt = 1;
|
||||
#endif
|
||||
cfg->webpa_url = strdup (UNSECURE_WEBPA_URL);
|
||||
parStrncpy(cfg->webpa_url , UNSECURE_WEBPA_URL, sizeof(cfg->webpa_url));
|
||||
set_parodus_cfg(cfg);
|
||||
assert_non_null(ctx);
|
||||
|
||||
@@ -733,7 +729,6 @@ void test_createConnectionConnNotOk()
|
||||
|
||||
int ret = createNopollConnection(ctx);
|
||||
assert_int_equal(ret, nopoll_true);
|
||||
clean_up_parodus_cfg(cfg);
|
||||
free(cfg);
|
||||
if (g_jwt_server_ip !=NULL)
|
||||
{
|
||||
@@ -756,7 +751,7 @@ void test_createConnNotOk_JWT_NULL()
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
cfg->acquire_jwt = 1;
|
||||
#endif
|
||||
cfg->webpa_url = strdup (UNSECURE_WEBPA_URL);
|
||||
parStrncpy(cfg->webpa_url , UNSECURE_WEBPA_URL, sizeof(cfg->webpa_url));
|
||||
set_parodus_cfg(cfg);
|
||||
assert_non_null(ctx);
|
||||
|
||||
@@ -831,7 +826,6 @@ void test_createConnNotOk_JWT_NULL()
|
||||
|
||||
int ret = createNopollConnection(ctx);
|
||||
assert_int_equal(ret, nopoll_true);
|
||||
clean_up_parodus_cfg(cfg);
|
||||
free(cfg);
|
||||
if (g_jwt_server_ip !=NULL)
|
||||
{
|
||||
@@ -854,7 +848,7 @@ void test_createConnectionConnRedirect()
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
cfg->acquire_jwt = 1;
|
||||
#endif
|
||||
cfg->webpa_url = strdup (UNSECURE_WEBPA_URL);
|
||||
parStrncpy(cfg->webpa_url , UNSECURE_WEBPA_URL, sizeof(cfg->webpa_url));
|
||||
set_parodus_cfg(cfg);
|
||||
assert_non_null(ctx);
|
||||
|
||||
@@ -927,7 +921,6 @@ void test_createConnectionConnRedirect()
|
||||
|
||||
int ret = createNopollConnection(ctx);
|
||||
assert_int_equal(ret, nopoll_true);
|
||||
clean_up_parodus_cfg(cfg);
|
||||
free(cfg);
|
||||
if (g_jwt_server_ip !=NULL)
|
||||
{
|
||||
@@ -948,7 +941,7 @@ void test_createIPv4Connection()
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
cfg->acquire_jwt = 1;
|
||||
#endif
|
||||
cfg->webpa_url = strdup (SECURE_WEBPA_URL);
|
||||
parStrncpy(cfg->webpa_url , SECURE_WEBPA_URL, sizeof(cfg->webpa_url));
|
||||
set_parodus_cfg(cfg);
|
||||
|
||||
assert_non_null(ctx);
|
||||
@@ -981,7 +974,6 @@ void test_createIPv4Connection()
|
||||
|
||||
int ret = createNopollConnection(ctx);
|
||||
assert_int_equal(ret, nopoll_true);
|
||||
clean_up_parodus_cfg(cfg);
|
||||
free(cfg);
|
||||
nopoll_ctx_unref (ctx);
|
||||
}
|
||||
@@ -998,7 +990,7 @@ void test_createIPv6Connection()
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
cfg->acquire_jwt = 1;
|
||||
#endif
|
||||
cfg->webpa_url = strdup (SECURE_WEBPA_URL);
|
||||
parStrncpy(cfg->webpa_url , SECURE_WEBPA_URL, sizeof(cfg->webpa_url));
|
||||
set_parodus_cfg(cfg);
|
||||
|
||||
assert_non_null(ctx);
|
||||
@@ -1032,7 +1024,6 @@ void test_createIPv6Connection()
|
||||
|
||||
int ret = createNopollConnection(ctx);
|
||||
assert_int_equal(ret, nopoll_true);
|
||||
clean_up_parodus_cfg(cfg);
|
||||
free(cfg);
|
||||
nopoll_ctx_unref (ctx);
|
||||
}
|
||||
@@ -1050,7 +1041,7 @@ void test_createIPv6toIPv4Connection()
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
cfg->acquire_jwt = 1;
|
||||
#endif
|
||||
cfg->webpa_url = strdup (SECURE_WEBPA_URL);
|
||||
parStrncpy(cfg->webpa_url , SECURE_WEBPA_URL, sizeof(cfg->webpa_url));
|
||||
set_parodus_cfg(cfg);
|
||||
|
||||
assert_non_null(ctx);
|
||||
@@ -1110,7 +1101,6 @@ void test_createIPv6toIPv4Connection()
|
||||
|
||||
int ret = createNopollConnection(ctx);
|
||||
assert_int_equal(ret, nopoll_true);
|
||||
clean_up_parodus_cfg(cfg);
|
||||
free(cfg);
|
||||
nopoll_ctx_unref (ctx);
|
||||
}
|
||||
@@ -1127,7 +1117,7 @@ void test_createFallbackRedirectionConn()
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
cfg->acquire_jwt = 1;
|
||||
#endif
|
||||
cfg->webpa_url = strdup (SECURE_WEBPA_URL);
|
||||
parStrncpy(cfg->webpa_url , SECURE_WEBPA_URL, sizeof(cfg->webpa_url));
|
||||
set_parodus_cfg(cfg);
|
||||
|
||||
assert_non_null(ctx);
|
||||
@@ -1212,7 +1202,6 @@ void test_createFallbackRedirectionConn()
|
||||
|
||||
int ret = createNopollConnection(ctx);
|
||||
assert_int_equal(ret, nopoll_true);
|
||||
clean_up_parodus_cfg(cfg);
|
||||
free(cfg);
|
||||
nopoll_ctx_unref (ctx);
|
||||
}
|
||||
@@ -1229,7 +1218,7 @@ void test_createIPv6FallbackRedirectConn()
|
||||
#ifdef FEATURE_DNS_QUERY
|
||||
cfg->acquire_jwt = 1;
|
||||
#endif
|
||||
cfg->webpa_url = strdup (SECURE_WEBPA_URL);
|
||||
parStrncpy(cfg->webpa_url , SECURE_WEBPA_URL, sizeof(cfg->webpa_url));
|
||||
set_parodus_cfg(cfg);
|
||||
|
||||
assert_non_null(ctx);
|
||||
@@ -1291,7 +1280,6 @@ void test_createIPv6FallbackRedirectConn()
|
||||
|
||||
int ret = createNopollConnection(ctx);
|
||||
assert_int_equal(ret, nopoll_true);
|
||||
clean_up_parodus_cfg(cfg);
|
||||
free(cfg);
|
||||
nopoll_ctx_unref (ctx);
|
||||
}
|
||||
|
||||
@@ -51,13 +51,12 @@ void test_validate_partner_id_for_req()
|
||||
|
||||
ParodusCfg cfg;
|
||||
memset(&cfg, 0, sizeof(ParodusCfg));
|
||||
cfg.partner_id = strdup ("comcast");
|
||||
parStrncpy(cfg.partner_id, "comcast", sizeof(cfg.partner_id));
|
||||
|
||||
will_return(get_parodus_cfg, (intptr_t)&cfg);
|
||||
expect_function_call(get_parodus_cfg);
|
||||
int ret = validate_partner_id(msg, NULL);
|
||||
assert_int_equal(ret, 1);
|
||||
free(cfg.partner_id);
|
||||
free(msg);
|
||||
}
|
||||
|
||||
@@ -69,13 +68,12 @@ void test_validate_partner_id_for_req_listNULL()
|
||||
|
||||
ParodusCfg cfg;
|
||||
memset(&cfg, 0, sizeof(ParodusCfg));
|
||||
cfg.partner_id = strdup ("comcast");
|
||||
parStrncpy(cfg.partner_id, "comcast", sizeof(cfg.partner_id));
|
||||
|
||||
will_return(get_parodus_cfg, (intptr_t)&cfg);
|
||||
expect_function_call(get_parodus_cfg);
|
||||
int ret = validate_partner_id(msg, NULL);
|
||||
assert_int_equal(ret, 1);
|
||||
free(cfg.partner_id);
|
||||
free(msg);
|
||||
}
|
||||
|
||||
@@ -105,13 +103,12 @@ void err_validate_partner_id_for_req()
|
||||
|
||||
ParodusCfg cfg;
|
||||
memset(&cfg, 0, sizeof(ParodusCfg));
|
||||
cfg.partner_id = strdup ("comcast");
|
||||
parStrncpy(cfg.partner_id, "comcast", sizeof(cfg.partner_id));
|
||||
|
||||
will_return(get_parodus_cfg, (intptr_t)&cfg);
|
||||
expect_function_call(get_parodus_cfg);
|
||||
int ret = validate_partner_id(msg, NULL);
|
||||
assert_int_equal(ret, -1);
|
||||
free(cfg.partner_id);
|
||||
free(msg);
|
||||
}
|
||||
|
||||
@@ -125,7 +122,7 @@ void test_validate_partner_id_for_event()
|
||||
|
||||
ParodusCfg cfg;
|
||||
memset(&cfg, 0, sizeof(ParodusCfg));
|
||||
cfg.partner_id = strdup ("comcast");
|
||||
parStrncpy(cfg.partner_id, "comcast", sizeof(cfg.partner_id));
|
||||
|
||||
will_return(get_parodus_cfg, (intptr_t)&cfg);
|
||||
expect_function_call(get_parodus_cfg);
|
||||
@@ -134,7 +131,6 @@ void test_validate_partner_id_for_event()
|
||||
int ret = validate_partner_id(msg, &list);
|
||||
assert_int_equal(ret, 1);
|
||||
free(list);
|
||||
free(cfg.partner_id);
|
||||
free(msg);
|
||||
}
|
||||
|
||||
@@ -146,7 +142,7 @@ void test_validate_partner_id_for_event_listNULL()
|
||||
|
||||
ParodusCfg cfg;
|
||||
memset(&cfg, 0, sizeof(ParodusCfg));
|
||||
cfg.partner_id = strdup ("comcast");
|
||||
parStrncpy(cfg.partner_id, "comcast", sizeof(cfg.partner_id));
|
||||
|
||||
will_return(get_parodus_cfg, (intptr_t)&cfg);
|
||||
expect_function_call(get_parodus_cfg);
|
||||
@@ -161,7 +157,6 @@ void test_validate_partner_id_for_event_listNULL()
|
||||
free(list->partner_ids[i]);
|
||||
}
|
||||
free(list);
|
||||
free(cfg.partner_id);
|
||||
free(msg);
|
||||
}
|
||||
|
||||
@@ -195,7 +190,7 @@ void test_validate_partner_id_for_event_withoutId()
|
||||
|
||||
ParodusCfg cfg;
|
||||
memset(&cfg, 0, sizeof(ParodusCfg));
|
||||
cfg.partner_id = strdup ("comcast");
|
||||
parStrncpy(cfg.partner_id, "comcast", sizeof(cfg.partner_id));
|
||||
|
||||
will_return(get_parodus_cfg, (intptr_t)&cfg);
|
||||
expect_function_call(get_parodus_cfg);
|
||||
@@ -212,7 +207,6 @@ void test_validate_partner_id_for_event_withoutId()
|
||||
}
|
||||
free(list);
|
||||
free(msg);
|
||||
free(cfg.partner_id);
|
||||
free(partner_ids);
|
||||
}
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ int allow_insecure_conn(void)
|
||||
/*----------------------------------------------------------------------------*/
|
||||
void test_all_pass()
|
||||
{
|
||||
g_config.local_url = strdup(URL);
|
||||
parStrncpy(g_config.local_url, URL, sizeof(g_config.local_url));
|
||||
|
||||
will_return(init_lib_seshat, 0);
|
||||
expect_function_call(init_lib_seshat);
|
||||
@@ -104,7 +104,6 @@ void test_all_pass()
|
||||
expect_function_call(shutdown_seshat_lib);
|
||||
|
||||
assert_true(__registerWithSeshat());
|
||||
free(g_config.local_url);
|
||||
memset(&g_config, '\0', sizeof(g_config));
|
||||
}
|
||||
|
||||
@@ -152,7 +151,7 @@ void test_discover_fail()
|
||||
|
||||
void test_discover_pass_but_lru_expected_fail()
|
||||
{
|
||||
g_config.local_url = strdup(URL);
|
||||
parStrncpy(g_config.local_url, URL, sizeof(g_config.local_url));
|
||||
|
||||
will_return(init_lib_seshat, 0);
|
||||
expect_function_call(init_lib_seshat);
|
||||
@@ -169,8 +168,6 @@ void test_discover_pass_but_lru_expected_fail()
|
||||
expect_function_call(shutdown_seshat_lib);
|
||||
|
||||
assert_false(__registerWithSeshat());
|
||||
|
||||
free(g_config.local_url);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
@@ -142,7 +142,6 @@ cjwt_t jwt2; // secure, payload good, but expired
|
||||
cjwt_t jwt3; // insecure
|
||||
cjwt_t jwt4; // missing endpoint
|
||||
|
||||
|
||||
// internal functions in token.c to be tested
|
||||
extern int analyze_jwt (const cjwt_t *jwt, char *url_buf, int url_buflen,
|
||||
char *port_buf, int port_buflen);
|
||||
@@ -155,10 +154,10 @@ extern int get_rr_seq_num (const char *rr_ptr, int rrlen);
|
||||
extern int get_rr_seq_table (ns_msg *msg_handle, int num_rr_recs, rr_rec_t *seq_table);
|
||||
extern int assemble_jwt_from_dns (ns_msg *msg_handle, int num_rr_recs, char *jwt_ans);
|
||||
extern int query_dns(const char* dns_txt_record_id,char *jwt_ans);
|
||||
extern void read_key_from_file (const char *fname, char *buf, size_t buflen);
|
||||
extern const char *get_tok (const char *src, int delim, char *result, int resultsize);
|
||||
extern unsigned int get_algo_mask (const char *algo_str);
|
||||
|
||||
|
||||
int setup_test_jwts (void)
|
||||
{
|
||||
memset (&jwt1, 0, sizeof(cjwt_t));
|
||||
@@ -606,11 +605,11 @@ void test_allow_insecure_conn ()
|
||||
char port_buf[6] = "8080";
|
||||
ParodusCfg *cfg = get_parodus_cfg();
|
||||
|
||||
cfg->hw_mac = strdup ("aabbccddeeff");
|
||||
cfg->dns_txt_url = strdup ("test.mydns.mycom.net");
|
||||
parStrncpy (cfg->hw_mac, "aabbccddeeff", sizeof(cfg->hw_mac));
|
||||
parStrncpy (cfg->dns_txt_url, "test.mydns.mycom.net", sizeof(cfg->dns_txt_url));
|
||||
cfg->jwt_algo = 1025;
|
||||
|
||||
read_key_from_file ("../../tests/pubkey4.pem", &cfg->jwt_key);
|
||||
read_key_from_file ("../../tests/pubkey4.pem", cfg->jwt_key, 4096);
|
||||
|
||||
will_return (__res_ninit, 0);
|
||||
expect_function_call (__res_ninit);
|
||||
@@ -620,8 +619,8 @@ void test_allow_insecure_conn ()
|
||||
port_buf, sizeof(port_buf));
|
||||
assert_int_equal (insecure, 0);
|
||||
|
||||
free(cfg->dns_txt_url);
|
||||
cfg->dns_txt_url = strdup ("err5.mydns.mycom.net");
|
||||
parStrncpy (cfg->hw_mac, "aabbccddeeff", sizeof(cfg->hw_mac));
|
||||
parStrncpy (cfg->dns_txt_url, "err5.mydns.mycom.net", sizeof(cfg->dns_txt_url));
|
||||
|
||||
will_return (__res_ninit, 0);
|
||||
expect_function_call (__res_ninit);
|
||||
@@ -631,11 +630,10 @@ void test_allow_insecure_conn ()
|
||||
port_buf, sizeof(port_buf));
|
||||
assert_int_equal (insecure, TOKEN_ERR_QUERY_DNS_FAIL);
|
||||
|
||||
free(cfg->dns_txt_url);
|
||||
cfg->dns_txt_url = strdup ("test.mydns.mycom.net");
|
||||
parStrncpy (cfg->hw_mac, "aabbccddeeff", sizeof(cfg->hw_mac));
|
||||
parStrncpy (cfg->dns_txt_url, "test.mydns.mycom.net", sizeof(cfg->dns_txt_url));
|
||||
cfg->jwt_algo = 1024;
|
||||
free(cfg->jwt_key);
|
||||
cfg->jwt_key = strdup ("xxxxxxxxxx");
|
||||
parStrncpy (cfg->jwt_key, "xxxxxxxxxx", sizeof(cfg->jwt_key));
|
||||
|
||||
will_return (__res_ninit, 0);
|
||||
expect_function_call (__res_ninit);
|
||||
@@ -645,11 +643,10 @@ void test_allow_insecure_conn ()
|
||||
port_buf, sizeof(port_buf));
|
||||
assert_int_equal (insecure, TOKEN_ERR_JWT_DECODE_FAIL);
|
||||
|
||||
free(cfg->dns_txt_url);
|
||||
cfg->dns_txt_url = strdup ("test.mydns.mycom.net");
|
||||
parStrncpy (cfg->hw_mac, "aabbccddeeff", sizeof(cfg->hw_mac));
|
||||
parStrncpy (cfg->dns_txt_url, "test.mydns.mycom.net", sizeof(cfg->dns_txt_url));
|
||||
cfg->jwt_algo = 4097;
|
||||
free(cfg->jwt_key);
|
||||
read_key_from_file ("../../tests/pubkey4.pem", &cfg->jwt_key);
|
||||
read_key_from_file ("../../tests/pubkey4.pem", cfg->jwt_key, 4096);
|
||||
|
||||
will_return (__res_ninit, 0);
|
||||
expect_function_call (__res_ninit);
|
||||
@@ -658,7 +655,7 @@ void test_allow_insecure_conn ()
|
||||
insecure = allow_insecure_conn (cfg->dns_txt_url, sizeof(cfg->dns_txt_url),
|
||||
port_buf, sizeof(port_buf));
|
||||
assert_int_equal (insecure, TOKEN_ERR_ALGO_NOT_ALLOWED);
|
||||
clean_up_parodus_cfg(cfg);
|
||||
|
||||
}
|
||||
|
||||
void test_get_tok()
|
||||
|
||||
Reference in New Issue
Block a user