@@ -609,7 +609,7 @@ string S3fsCurl::LookupMimeType(string name)
609609 }
610610
611611 // neither the last extension nor the second-to-last extension
612- // matched a mimeType, return the default mime type
612+ // matched a mimeType, return the default mime type
613613 return result;
614614}
615615
@@ -618,7 +618,7 @@ bool S3fsCurl::LocateBundle(void)
618618 // See if environment variable CURL_CA_BUNDLE is set
619619 // if so, check it, if it is a good path, then set the
620620 // curl_ca_bundle variable to it
621- char *CURL_CA_BUNDLE;
621+ char *CURL_CA_BUNDLE;
622622
623623 if (0 == S3fsCurl::curl_ca_bundle.size ()){
624624 CURL_CA_BUNDLE = getenv (" CURL_CA_BUNDLE" );
@@ -630,7 +630,7 @@ bool S3fsCurl::LocateBundle(void)
630630 return false ;
631631 }
632632 BF.close ();
633- S3fsCurl::curl_ca_bundle.assign (CURL_CA_BUNDLE);
633+ S3fsCurl::curl_ca_bundle.assign (CURL_CA_BUNDLE);
634634 return true ;
635635 }
636636 }
@@ -651,10 +651,10 @@ bool S3fsCurl::LocateBundle(void)
651651 // dnl /usr/local/share/certs/ca-root.crt FreeBSD
652652 // dnl /etc/ssl/cert.pem OpenBSD
653653 // dnl /etc/ssl/certs/ (ca path) SUSE
654- ifstream BF (" /etc/pki/tls/certs/ca-bundle.crt" );
654+ ifstream BF (" /etc/pki/tls/certs/ca-bundle.crt" );
655655 if (BF.good ()){
656656 BF.close ();
657- S3fsCurl::curl_ca_bundle.assign (" /etc/pki/tls/certs/ca-bundle.crt" );
657+ S3fsCurl::curl_ca_bundle.assign (" /etc/pki/tls/certs/ca-bundle.crt" );
658658 }else {
659659 S3FS_PRN_ERR (" %s: /etc/pki/tls/certs/ca-bundle.crt is not readable" , program_name.c_str ());
660660 return false ;
@@ -927,7 +927,7 @@ bool S3fsCurl::SetSseKmsid(const char* kmsid)
927927}
928928
929929// [NOTE]
930- // Because SSE is set by some options and environment,
930+ // Because SSE is set by some options and environment,
931931// this function check the integrity of the SSE data finally.
932932bool S3fsCurl::FinalCheckSse (void )
933933{
@@ -956,7 +956,7 @@ bool S3fsCurl::FinalCheckSse(void)
956956 }
957957 return true ;
958958}
959-
959+
960960bool S3fsCurl::LoadEnvSseCKeys (void )
961961{
962962 char * envkeys = getenv (" OSSSSECKEYS" );
@@ -1048,7 +1048,7 @@ bool S3fsCurl::checkSTSCredentialUpdate(void) {
10481048 if (time (NULL ) <= S3fsCurl::COSAccessTokenExpire) {
10491049 return true ;
10501050 }
1051-
1051+
10521052 // if return value is not equal 1, means wrong format key
10531053 if (check_for_cos_format () != 1 ) {
10541054 return false ;
@@ -1282,7 +1282,11 @@ S3fsCurl* S3fsCurl::ParallelGetObjectRetryCallback(S3fsCurl* s3fscurl)
12821282
12831283 // duplicate request(setup new curl object)
12841284 S3fsCurl* newcurl = new S3fsCurl (s3fscurl->IsUseAhbe ());
1285- if (0 != (result = newcurl->PreGetObjectRequest (s3fscurl->path .c_str (), s3fscurl->partdata .fd ,
1285+ std::string path = s3fscurl->path ;
1286+ if (path.size () >= mount_prefix.size () && path.substr (0 , mount_prefix.size ()) == mount_prefix) {
1287+ path = path.substr (mount_prefix.size ());
1288+ }
1289+ if (0 != (result = newcurl->PreGetObjectRequest (path.c_str (), s3fscurl->partdata .fd ,
12861290 s3fscurl->partdata .startpos , s3fscurl->partdata .size , s3fscurl->b_ssetype , s3fscurl->b_ssevalue )))
12871291 {
12881292 S3FS_PRN_ERR (" failed downloading part setup(%d)" , result);
@@ -1461,7 +1465,7 @@ int S3fsCurl::CurlDebugFunc(CURL* hcurl, curl_infotype type, char* data, size_t
14611465// -------------------------------------------------------------------
14621466// Methods for S3fsCurl
14631467// -------------------------------------------------------------------
1464- S3fsCurl::S3fsCurl (bool ahbe) :
1468+ S3fsCurl::S3fsCurl (bool ahbe) :
14651469 hCurl(NULL ), path(" " ), base_path(" " ), saved_path(" " ), url(" " ), requestHeaders(NULL ),
14661470 bodydata(NULL ), headdata(NULL ), LastResponseCode(-1 ), postdata(NULL ), postdata_remaining(0 ), is_use_ahbe(ahbe),
14671471 retry_count(0 ), b_infile(NULL ), b_postdata(NULL ), b_postdata_remaining(0 ), b_partdata_startpos(0 ), b_partdata_size(0 ),
@@ -1704,7 +1708,7 @@ bool S3fsCurl::RemakeHandle(void)
17041708
17051709 case REQTYPE_CHKBUCKET:
17061710 curl_easy_setopt (hCurl, CURLOPT_URL, url.c_str ());
1707- // XXX
1711+ // XXX
17081712 // curl_easy_setopt(hCurl, CURLOPT_FAILONERROR, true);
17091713 curl_easy_setopt (hCurl, CURLOPT_WRITEDATA, (void *)bodydata);
17101714 curl_easy_setopt (hCurl, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
@@ -1805,8 +1809,8 @@ int S3fsCurl::RequestPerform(void)
18051809 for (int retrycnt = S3fsCurl::retries; 0 < retrycnt; retrycnt--){
18061810 // Requests
18071811 // XXX
1808- // curl_easy_setopt(hCurl, CURLOPT_HEADERDATA, (void*)&responseHeaders);
1809- // curl_easy_setopt(hCurl, CURLOPT_HEADERFUNCTION, HeaderCallback);
1812+ // curl_easy_setopt(hCurl, CURLOPT_HEADERDATA, (void*)&responseHeaders);
1813+ // curl_easy_setopt(hCurl, CURLOPT_HEADERFUNCTION, HeaderCallback);
18101814 CURLcode curlCode = curl_easy_perform (hCurl);
18111815
18121816 // Check result
@@ -1824,7 +1828,7 @@ int S3fsCurl::RequestPerform(void)
18241828 if (500 <= LastResponseCode){
18251829 S3FS_PRN_INFO3 (" HTTP response code %ld" , LastResponseCode);
18261830 sleep (4 );
1827- break ;
1831+ break ;
18281832 }
18291833
18301834 // Service response codes which are >= 400 && < 500
@@ -1854,38 +1858,38 @@ int S3fsCurl::RequestPerform(void)
18541858 case CURLE_WRITE_ERROR:
18551859 S3FS_PRN_ERR (" ### CURLE_WRITE_ERROR" );
18561860 sleep (2 );
1857- break ;
1861+ break ;
18581862
18591863 case CURLE_OPERATION_TIMEDOUT:
18601864 S3FS_PRN_ERR (" ### CURLE_OPERATION_TIMEDOUT" );
18611865 sleep (2 );
1862- break ;
1866+ break ;
18631867
18641868 case CURLE_COULDNT_RESOLVE_HOST:
18651869 S3FS_PRN_ERR (" ### CURLE_COULDNT_RESOLVE_HOST" );
18661870 sleep (2 );
1867- break ;
1871+ break ;
18681872
18691873 case CURLE_COULDNT_CONNECT:
18701874 S3FS_PRN_ERR (" ### CURLE_COULDNT_CONNECT" );
18711875 sleep (4 );
1872- break ;
1876+ break ;
18731877
18741878 case CURLE_GOT_NOTHING:
18751879 S3FS_PRN_ERR (" ### CURLE_GOT_NOTHING" );
18761880 sleep (4 );
1877- break ;
1881+ break ;
18781882
18791883 case CURLE_ABORTED_BY_CALLBACK:
18801884 S3FS_PRN_ERR (" ### CURLE_ABORTED_BY_CALLBACK" );
18811885 sleep (4 );
18821886 S3fsCurl::curl_times[hCurl] = time (0 );
1883- break ;
1887+ break ;
18841888
18851889 case CURLE_PARTIAL_FILE:
18861890 S3FS_PRN_ERR (" ### CURLE_PARTIAL_FILE" );
18871891 sleep (4 );
1888- break ;
1892+ break ;
18891893
18901894 case CURLE_SEND_ERROR:
18911895 S3FS_PRN_ERR (" ### CURLE_SEND_ERROR" );
@@ -1945,7 +1949,7 @@ int S3fsCurl::RequestPerform(void)
19451949 }
19461950 S3FS_PRN_INFO3 (" HTTP response code =%ld" , LastResponseCode);
19471951
1948- // Let's try to retrieve the
1952+ // Let's try to retrieve the
19491953 if (404 == LastResponseCode){
19501954 return -ENOENT;
19511955 }
@@ -1983,7 +1987,7 @@ int S3fsCurl::RequestPerform(void)
19831987string S3fsCurl::CalcSignature (string method, string strMD5, string content_type, string date, string resource)
19841988{
19851989 string Signature;
1986-
1990+
19871991 if (0 < S3fsCurl::CAM_role.size ()) {
19881992 if (!S3fsCurl::checkSTSCredentialUpdate ()) {
19891993 S3FS_PRN_ERR (" Something error occurred in checking CAM STS Credential" );
@@ -2015,7 +2019,7 @@ string S3fsCurl::CalcSignature(string method, string strMD5, string content_type
20152019 FormatString += get_canonical_headers (requestHeaders); // \n has been append
20162020
20172021 S3FS_PRN_INFO (" Format string is : %s" , FormatString.c_str ());
2018-
2022+
20192023 const unsigned char * sdata = reinterpret_cast <const unsigned char *>(FormatString.data ());
20202024 int sdata_len = FormatString.size ();
20212025 unsigned char * md = NULL ;
@@ -2330,7 +2334,7 @@ int S3fsCurl::PutHeadRequest(const char* tpath, headers_t& meta, bool is_copy)
23302334 } else if (STANDARD_IA == GetStorageClass ()){
23312335 requestHeaders = curl_slist_sort_insert (requestHeaders, " x-cos-storage-class" , " STANDARD_IA" );
23322336 }
2333-
2337+
23342338 string date = get_date_rfc850 ();
23352339 requestHeaders = curl_slist_sort_insert (requestHeaders, " Date" , date.c_str ());
23362340
@@ -2753,7 +2757,7 @@ int S3fsCurl::CompleteMultipartPostRequest(const char* tpath, string& upload_id,
27532757 postContent += " <PartNumber>" + str (cnt + 1 ) + " </PartNumber>\n " ;
27542758 postContent += " <ETag>\" " + parts[cnt] + " \" </ETag>\n " ;
27552759 postContent += " </Part>\n " ;
2756- }
2760+ }
27572761 postContent += " </CompleteMultipartUpload>\n " ;
27582762
27592763 // set postdata
@@ -2996,7 +3000,7 @@ int S3fsCurl::UploadMultipartPostRequest(const char* tpath, int part_num, string
29963000 // request
29973001 if (0 == (result = RequestPerform ())){
29983002 // check etag
2999- // cos's no check etag
3003+ // cos's no check etag
30003004 // if(NULL != strstr(headdata->str(), upper(partdata.etag).c_str())){
30013005 // get etag from response header
30023006 S3FS_PRN_ERR (" headdata is : %s" , headdata->str ());
@@ -3302,12 +3306,12 @@ int S3fsCurl::MultipartRenameRequest(const char* from, const char* to, headers_t
33023306}
33033307
33043308// -------------------------------------------------------------------
3305- // Class S3fsMultiCurl
3309+ // Class S3fsMultiCurl
33063310// -------------------------------------------------------------------
33073311#define MAX_MULTI_HEADREQ 20 // default: max request count in readdir curl_multi.
33083312
33093313// -------------------------------------------------------------------
3310- // Class method for S3fsMultiCurl
3314+ // Class method for S3fsMultiCurl
33113315// -------------------------------------------------------------------
33123316int S3fsMultiCurl::max_multireq = MAX_MULTI_HEADREQ;
33133317
@@ -3319,7 +3323,7 @@ int S3fsMultiCurl::SetMaxMultiRequest(int max)
33193323}
33203324
33213325// -------------------------------------------------------------------
3322- // method for S3fsMultiCurl
3326+ // method for S3fsMultiCurl
33233327// -------------------------------------------------------------------
33243328S3fsMultiCurl::S3fsMultiCurl () : hMulti(NULL ), SuccessCallback(NULL ), RetryCallback(NULL )
33253329{
@@ -3368,14 +3372,14 @@ S3fsMultiSuccessCallback S3fsMultiCurl::SetSuccessCallback(S3fsMultiSuccessCallb
33683372 SuccessCallback = function;
33693373 return old;
33703374}
3371-
3375+
33723376S3fsMultiRetryCallback S3fsMultiCurl::SetRetryCallback (S3fsMultiRetryCallback function)
33733377{
33743378 S3fsMultiRetryCallback old = RetryCallback;
33753379 RetryCallback = function;
33763380 return old;
33773381}
3378-
3382+
33793383bool S3fsMultiCurl::SetS3fsCurlObject (S3fsCurl* s3fscurl)
33803384{
33813385 if (hMulti){
0 commit comments