From 286339aa341a2491aa548bcb08add8af59307a1a Mon Sep 17 00:00:00 2001 From: Sean Bright <sean.bright@gmail.com> Date: Wed, 3 Oct 2018 08:56:34 -0400 Subject: [PATCH] http.c: Reload TLS even if http.conf hasn't changed There is currently no way to indicate to Asterisk that TLS certificates and/or keys have been updated other than by modifying http.conf or restarting Asterisk. There is already code in main/tcptls.c that determines if a reload is actually necessary based on the hashes of the certicate and dependent files, so this change merely gives us a way to request a reload without explicitly modifying http.conf. Change-Id: Ie795420dcc7eb3d91336820688a29adbcc321276 --- main/http.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/main/http.c b/main/http.c index 5d0b89e0ca..dcf90ae1c3 100644 --- a/main/http.c +++ b/main/http.c @@ -2066,7 +2066,15 @@ static int __ast_http_load(int reload) int http_tls_was_enabled = 0; cfg = ast_config_load2("http.conf", "http", config_flags); - if (!cfg || cfg == CONFIG_STATUS_FILEUNCHANGED || cfg == CONFIG_STATUS_FILEINVALID) { + if (!cfg || cfg == CONFIG_STATUS_FILEINVALID) { + return 0; + } + + /* Even if the http.conf hasn't been updated, the TLS certs/keys may have been */ + if (cfg == CONFIG_STATUS_FILEUNCHANGED) { + if (http_tls_cfg.enabled && ast_ssl_setup(https_desc.tls_cfg)) { + ast_tcptls_server_start(&https_desc); + } return 0; } -- GitLab