diff --git a/config.c b/config.c index c3b8884..a30e4cc 100644 --- a/config.c +++ b/config.c @@ -511,6 +511,17 @@ int get_global_config(struct config *conf) { FREE(conf->acs_ssl_capath); } + if((error = uci_get_value(UCI_ACS_INSECURE_ENABLE,&value)) == CWMP_OK) + { + if(value != NULL) + { + if ((strcasecmp(value,"true")==0) || (strcmp(value,"1")==0)) + { + conf->insecure_enable = true; + } + value = NULL; + } + } if((error = uci_get_value(UCI_ACS_SSL_VERSION,&value)) == CWMP_OK) { if(value != NULL) diff --git a/http.c b/http.c index d6e2ae5..5ffffcb 100644 --- a/http.c +++ b/http.c @@ -191,6 +191,10 @@ http_send_message(struct cwmp *cwmp, char *msg_out, char **msg_in) if (cwmp->conf.acs_ssl_capath) curl_easy_setopt(curl, CURLOPT_CAPATH, cwmp->conf.acs_ssl_capath); + if (cwmp->conf.insecure_enable) { + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false); + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0); + } *msg_in = (char *) calloc (1, sizeof(char)); diff --git a/inc/cwmp.h b/inc/cwmp.h index 0bd62c0..3eac581 100644 --- a/inc/cwmp.h +++ b/inc/cwmp.h @@ -41,6 +41,7 @@ #define UCI_ACS_PASSWD_PATH "cwmp.acs.passwd" #define UCI_ACS_PARAMETERKEY_PATH "cwmp.acs.ParameterKey" #define UCI_ACS_SSL_CAPATH "cwmp.acs.ssl_capath" +#define UCI_ACS_INSECURE_ENABLE "cwmp.acs.insecure_enable" #define UCI_ACS_SSL_VERSION "cwmp.acs.ssl_version" #define UCI_LOG_SEVERITY_PATH "cwmp.cpe.log_severity" #define UCI_CPE_USERID_PATH "cwmp.cpe.userid" @@ -138,6 +139,7 @@ typedef struct config { int period; time_t time; bool periodic_enable; + bool insecure_enable; } config; typedef struct env {