]> git.saurik.com Git - apt.git/blobdiff - methods/http.cc
quote plus in filenames to work around a bug in the S3 server
[apt.git] / methods / http.cc
index b7e7660048273948fc9ab3381680dcd556fba853..fddf8a78e096bc94a645dd938303d6bccdf09152 100644 (file)
@@ -685,8 +685,12 @@ void HttpMethod::SendReq(FetchItem *Itm,CircleBuf &Out)
       pass it on, HTTP/1.1 says the connection should default to keep alive
       and we expect the proxy to do this */
    if (Proxy.empty() == true || Proxy.Host.empty())
+   {
+      // see LP bugs #1003633 and #1086997. The "+" is encoded as a workaround
+      // for a amazon S3 bug
       sprintf(Buf,"GET %s HTTP/1.1\r\nHost: %s\r\nConnection: keep-alive\r\n",
-             QuoteString(Uri.Path,"~ ").c_str(),ProperHost.c_str());
+             QuoteString(Uri.Path,"+~ ").c_str(),ProperHost.c_str());
+   }
    else
    {
       /* Generate a cache control header if necessary. We place a max