diff --git a/src/mod/applications/mod_httapi/mod_httapi.c b/src/mod/applications/mod_httapi/mod_httapi.c index 7c56f60517..5c782fe090 100644 --- a/src/mod/applications/mod_httapi/mod_httapi.c +++ b/src/mod/applications/mod_httapi/mod_httapi.c @@ -2694,12 +2694,23 @@ static switch_status_t http_file_file_open(switch_file_handle_t *handle, const c { http_file_context_t *context; char *parsed = NULL, *pdup = NULL; + const char *pa = NULL; + int is_https = 0; switch_status_t status; + if (!strncmp(path, "http://", 7)) { + pa = path + 7; + } else if (!strncmp(path, "https://", 8)) { + pa = path + 8; + is_https = 1; + } else { + pa = path; + } + context = switch_core_alloc(handle->memory_pool, sizeof(*context)); context->pool = handle->memory_pool; - pdup = switch_core_strdup(context->pool, path); + pdup = switch_core_strdup(context->pool, pa); switch_event_create_brackets(pdup, '(', ')', ',', &context->url_params, &parsed, SWITCH_FALSE); @@ -2710,12 +2721,15 @@ static switch_status_t http_file_file_open(switch_file_handle_t *handle, const c if ((var = switch_event_get_header(context->url_params, "cache")) && !switch_true(var)) { context->expires = 1; } - } - if (parsed) path = parsed; + if (parsed) pa = parsed; - context->dest_url = switch_core_sprintf(context->pool, "http://%s", path); + if (is_https) { + context->dest_url = switch_core_sprintf(context->pool, "https://%s", pa); + } else { + context->dest_url = switch_core_sprintf(context->pool, "http://%s", pa); + } if (switch_test_flag(handle, SWITCH_FILE_FLAG_WRITE)) { char *ext;