From abdc4bf09120cbba4d8685489d7e46128696bd40 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 15 Mar 2013 15:24:55 -0500 Subject: [PATCH] add some more mime types for wav and mp3 --- src/include/switch_utils.h | 1 + src/mod/applications/mod_httapi/mod_httapi.c | 5 +++-- src/switch_utils.c | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/include/switch_utils.h b/src/include/switch_utils.h index 89b60ed82d..f3e5d33a18 100644 --- a/src/include/switch_utils.h +++ b/src/include/switch_utils.h @@ -898,6 +898,7 @@ SWITCH_DECLARE(const char *) switch_cut_path(const char *in); SWITCH_DECLARE(char *) switch_string_replace(const char *string, const char *search, const char *replace); SWITCH_DECLARE(switch_status_t) switch_string_match(const char *string, size_t string_len, const char *search, size_t search_len); +SWITCH_DECLARE(int) switch_strcasecmp_any(const char *str, ...); /*! \brief Quote shell argument diff --git a/src/mod/applications/mod_httapi/mod_httapi.c b/src/mod/applications/mod_httapi/mod_httapi.c index fd84b8e86b..9026333004 100644 --- a/src/mod/applications/mod_httapi/mod_httapi.c +++ b/src/mod/applications/mod_httapi/mod_httapi.c @@ -2601,9 +2601,10 @@ static switch_status_t locate_url_file(http_file_context_t *context, const char if ((!context->url_params || !switch_event_get_header(context->url_params, "ext")) && headers && (ct = switch_event_get_header(headers, "content-type"))) { - if (!strcasecmp(ct, "audio/mpeg")) { + if (switch_strcasecmp_any(ct, "audio/mpeg", "audio/x-mpeg", "audio/mp3", "audio/x-mp3", "audio/mpeg3", + "audio/x-mpeg3", "audio/mpg", "audio/x-mpg", "audio/x-mpegaudio")) { newext = "mp3"; - } else if (!strcasecmp(ct, "audio/wav")) { + } else if (switch_strcasecmp_any(ct, "audio/wav", "audio/x-wave", "audio/wav")) { newext = "wav"; } } diff --git a/src/switch_utils.c b/src/switch_utils.c index 3051f156cf..efbc335486 100644 --- a/src/switch_utils.c +++ b/src/switch_utils.c @@ -122,6 +122,26 @@ SWITCH_DECLARE(switch_status_t) switch_frame_free(switch_frame_t **frame) return SWITCH_STATUS_SUCCESS; } +SWITCH_DECLARE(int) switch_strcasecmp_any(const char *str, ...) +{ + va_list ap; + const char *next_str = 0; + int r = 0; + + va_start(ap, str); + + while ((next_str = va_arg(ap, const char *))) { + if (!strcasecmp(str, next_str)) { + r = 1; + break; + } + } + + va_end(ap); + + return r; +} + SWITCH_DECLARE(char *) switch_find_parameter(const char *str, const char *param, switch_memory_pool_t *pool) {