]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
mod_http_cache: allow underscore in amazon s3 hostname
authorChris Rienzo <chris@rienzo.com>
Fri, 3 Jan 2014 21:21:29 +0000 (16:21 -0500)
committerChris Rienzo <chris@rienzo.com>
Fri, 3 Jan 2014 21:21:48 +0000 (16:21 -0500)
src/mod/applications/mod_http_cache/aws.c
src/mod/applications/mod_http_cache/test_aws/main.c

index 17d6a233ab42a5ef8dc9440c640b0ff07d5afcad..cb6db5cb5873305c6db05cc7f2d7e63dbc98ed9f 100644 (file)
@@ -44,7 +44,7 @@
 int aws_s3_is_s3_url(const char *url)
 {
        /* AWS bucket naming rules are complex... this match only supports virtual hosting of buckets */
-       return !zstr(url) && switch_regex_match(url, "^https?://[a-z0-9][-a-z0-9.]{1,61}[a-z0-9]\\.s3\\.amazonaws\\.com/.*$") == SWITCH_STATUS_SUCCESS;
+       return !zstr(url) && switch_regex_match(url, "^https?://[a-z0-9_][-a-z0-9._]{1,61}[a-z0-9_]\\.s3\\.amazonaws\\.com/.*$") == SWITCH_STATUS_SUCCESS;
 }
 
 /**
index 8610127bbeca8f7cb7eb6ac184b994b568f911c7..6c361ca8f1d6886d65660bd5252c03e118f8e5c2 100644 (file)
@@ -48,6 +48,7 @@ static void test_check_url(void)
        ASSERT_TRUE(aws_s3_is_s3_url("https://bucket.s3.amazonaws.com/object"));
        ASSERT_TRUE(aws_s3_is_s3_url("https://bucket.s3.amazonaws.com/recordings/1240fwjf8we.mp3"));
        ASSERT_TRUE(aws_s3_is_s3_url("https://bucket.s3.amazonaws.com/en/us/8000/1232345.mp3"));
+       ASSERT_TRUE(aws_s3_is_s3_url("https://bucket_with_underscore.s3.amazonaws.com/en/us/8000/1232345.mp3"));
        ASSERT_FALSE(aws_s3_is_s3_url("bucket.s3.amazonaws.com/object.ext"));
        ASSERT_FALSE(aws_s3_is_s3_url("https://s3.amazonaws.com/bucket/object"));
        ASSERT_FALSE(aws_s3_is_s3_url("http://s3.amazonaws.com/bucket/object"));