diff --git a/src/mod/applications/mod_httapi/mod_httapi.c b/src/mod/applications/mod_httapi/mod_httapi.c index 0dbb722f5e..887dae3891 100644 --- a/src/mod/applications/mod_httapi/mod_httapi.c +++ b/src/mod/applications/mod_httapi/mod_httapi.c @@ -2276,7 +2276,9 @@ static char *load_cache_data(http_file_context_t *context, const char *url) if ((p = strchr(meta_buffer, ':'))) { *p++ = '\0'; - context->expires = (time_t) atol(meta_buffer); + if (context->expires != 1) { + context->expires = (time_t) atol(meta_buffer); + } context->metadata = switch_core_strdup(context->pool, p); } } @@ -2522,7 +2524,7 @@ static switch_status_t locate_url_file(http_file_context_t *context, const char load_cache_data(context, url); - if (context->expires && now < context->expires) { + if (context->expires > 1 && now < context->expires) { return SWITCH_STATUS_SUCCESS; } @@ -2614,7 +2616,13 @@ static switch_status_t http_file_file_open(switch_file_handle_t *handle, const c switch_event_create_brackets(pdup, '(', ')', ',', &context->url_params, &parsed, SWITCH_FALSE); if (context->url_params) { + const char *var; context->ua = switch_event_get_header(context->url_params, "ua"); + + if ((var = switch_event_get_header(context->url_params, "cache")) && !switch_true(var)) { + context->expires = 1; + } + } if (parsed) path = parsed;