author | Junio C Hamano <gitster@pobox.com> | |
Thu, 9 Dec 2010 18:36:04 +0000 (10:36 -0800) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Thu, 9 Dec 2010 18:36:04 +0000 (10:36 -0800) |
* tc/smart-http-post-redirect:
smart-http: Don't change POST to GET when following redirect
smart-http: Don't change POST to GET when following redirect
http.c | patch | blob | history | |
t/lib-httpd/apache.conf | patch | blob | history | |
t/t5551-http-fetch.sh | patch | blob | history |
index 0a5011f615bdfade0b69682b177dc97471ac20a3..17bcf19c5001d309bdbf524e7d3817cf3482a3c3 100644 (file)
--- a/http.c
+++ b/http.c
}
curl_easy_setopt(result, CURLOPT_FOLLOWLOCATION, 1);
+#if LIBCURL_VERSION_NUM >= 0x071301
+ curl_easy_setopt(result, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
+#elif LIBCURL_VERSION_NUM >= 0x071101
+ curl_easy_setopt(result, CURLOPT_POST301, 1);
+#endif
if (getenv("GIT_CURL_VERBOSE"))
curl_easy_setopt(result, CURLOPT_VERBOSE, 1);
index 4961505d1dd99da529b43abd42522e6a005961b1..f41c7c674c497825d714a0fe9be3c9bc0a0f30c6 100644 (file)
--- a/t/lib-httpd/apache.conf
+++ b/t/lib-httpd/apache.conf
<IfModule !mod_env.c>
LoadModule env_module modules/mod_env.so
</IfModule>
+<IfModule !mod_rewrite.c>
+ LoadModule rewrite_module modules/mod_rewrite.so
+</IFModule>
Alias /dumb/ www/
Options ExecCGI
</Files>
+RewriteEngine on
+RewriteRule ^/smart-redir-perm/(.*)$ /smart/$1 [R=301]
+RewriteRule ^/smart-redir-temp/(.*)$ /smart/$1 [R=302]
+
<IfDefine SSL>
LoadModule ssl_module modules/mod_ssl.so
diff --git a/t/t5551-http-fetch.sh b/t/t5551-http-fetch.sh
index fd19121372aecc0806e17e62d639855f391045d3..26d355725f5e8d317c71cb466ea091ec8f741d63 100755 (executable)
--- a/t/t5551-http-fetch.sh
+++ b/t/t5551-http-fetch.sh
test_cmp exp act
'
+test_expect_success 'follow redirects (301)' '
+ git clone $HTTPD_URL/smart-redir-perm/repo.git --quiet repo-p
+'
+
+test_expect_success 'follow redirects (302)' '
+ git clone $HTTPD_URL/smart-redir-temp/repo.git --quiet repo-t
+'
+
stop_httpd
test_done