]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
mod_http_cache: support amazon s3 region URLs
authorChris Rienzo <chris.rienzo@grasshopper.com>
Fri, 10 Jan 2014 15:06:06 +0000 (10:06 -0500)
committerChris Rienzo <chris.rienzo@grasshopper.com>
Fri, 10 Jan 2014 15:06:06 +0000 (10:06 -0500)
src/mod/applications/mod_http_cache/aws.c
src/mod/applications/mod_http_cache/test_aws/main.c

index cb6db5cb5873305c6db05cc7f2d7e63dbc98ed9f..bea30144db1a0ee58c3600e7d67f3f425572e7b1 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?://\\w[\\w.]{1,61}\\w\\.s3([-\\w]+)?\\.amazonaws\\.com/.*$") == SWITCH_STATUS_SUCCESS;
 }
 
 /**
index 6c361ca8f1d6886d65660bd5252c03e118f8e5c2..f9ed1dcfbf9450f947260b225b9c9692cc0b3b01 100644 (file)
@@ -41,6 +41,9 @@ static void test_signature(void)
  */
 static void test_check_url(void)
 {
+       ASSERT_TRUE(aws_s3_is_s3_url("http://bucket.s3-us-west-1.amazonaws.com/object.ext"));
+       ASSERT_TRUE(aws_s3_is_s3_url("https://bucket.s3-us-west-1.amazonaws.com/object.ext"));
+       ASSERT_TRUE(aws_s3_is_s3_url("http://bucket.s3.amazonaws.com/object.ext"));
        ASSERT_TRUE(aws_s3_is_s3_url("http://bucket.s3.amazonaws.com/object.ext"));
        ASSERT_TRUE(aws_s3_is_s3_url("http://bucket.s3.amazonaws.com/object"));
        ASSERT_TRUE(aws_s3_is_s3_url("http://red.bucket.s3.amazonaws.com/object.ext"));