summaryrefslogtreecommitdiff
path: root/res/res_pjsip/config_transport.c
diff options
context:
space:
mode:
Diffstat (limited to 'res/res_pjsip/config_transport.c')
-rw-r--r--res/res_pjsip/config_transport.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/res/res_pjsip/config_transport.c b/res/res_pjsip/config_transport.c
index e2f0c7f43..d8ece1509 100644
--- a/res/res_pjsip/config_transport.c
+++ b/res/res_pjsip/config_transport.c
@@ -27,6 +27,7 @@
#include "asterisk/astobj2.h"
#include "asterisk/sorcery.h"
#include "asterisk/acl.h"
+#include "asterisk/utils.h"
#include "include/res_pjsip_private.h"
#include "asterisk/http_websocket.h"
@@ -224,8 +225,22 @@ static int transport_apply(const struct ast_sorcery *sorcery, void *obj)
ast_sorcery_object_get_id(obj));
return -1;
}
+ if (!ast_strlen_zero(transport->ca_list_file)) {
+ if (!ast_file_is_readable(transport->ca_list_file)) {
+ ast_log(LOG_ERROR, "Transport: %s: ca_list_file %s is either missing or not readable\n",
+ ast_sorcery_object_get_id(obj), transport->ca_list_file);
+ return -1;
+ }
+ }
transport->tls.ca_list_file = pj_str((char*)transport->ca_list_file);
#ifdef HAVE_PJ_SSL_CERT_LOAD_FROM_FILES2
+ if (!ast_strlen_zero(transport->ca_list_path)) {
+ if (!ast_file_is_readable(transport->ca_list_path)) {
+ ast_log(LOG_ERROR, "Transport: %s: ca_list_path %s is either missing or not readable\n",
+ ast_sorcery_object_get_id(obj), transport->ca_list_path);
+ return -1;
+ }
+ }
transport->tls.ca_list_path = pj_str((char*)transport->ca_list_path);
#else
if (!ast_strlen_zero(transport->ca_list_path)) {
@@ -233,7 +248,21 @@ static int transport_apply(const struct ast_sorcery *sorcery, void *obj)
"support the 'ca_list_path' option. Please upgrade to version 2.4 or later.\n");
}
#endif
+ if (!ast_strlen_zero(transport->cert_file)) {
+ if (!ast_file_is_readable(transport->cert_file)) {
+ ast_log(LOG_ERROR, "Transport: %s: cert_file %s is either missing or not readable\n",
+ ast_sorcery_object_get_id(obj), transport->cert_file);
+ return -1;
+ }
+ }
transport->tls.cert_file = pj_str((char*)transport->cert_file);
+ if (!ast_strlen_zero(transport->privkey_file)) {
+ if (!ast_file_is_readable(transport->privkey_file)) {
+ ast_log(LOG_ERROR, "Transport: %s: privkey_file %s is either missing or not readable\n",
+ ast_sorcery_object_get_id(obj), transport->privkey_file);
+ return -1;
+ }
+ }
transport->tls.privkey_file = pj_str((char*)transport->privkey_file);
transport->tls.password = pj_str((char*)transport->password);
set_qos(transport, &transport->tls.qos_params);