Correct typos

This commit is contained in:
Andrew Gaul 2014-04-04 22:11:55 -07:00
parent edd0a11fb5
commit d375bca0d0
9 changed files with 111 additions and 111 deletions

View File

@ -89,7 +89,7 @@ If there are some keys after first line, those are used downloading object which
So that, you can keep all SSE-C keys in file, that is SSE-C key history. So that, you can keep all SSE-C keys in file, that is SSE-C key history.
If you specify "custom"("c") without file path, you need to set custom key by load_sse_c option or AWSSSECKEYS environment.(AWSSSECKEYS environment has some SSE-C keys with ":" separator.) If you specify "custom"("c") without file path, you need to set custom key by load_sse_c option or AWSSSECKEYS environment.(AWSSSECKEYS environment has some SSE-C keys with ":" separator.)
This option is used to decide the SSE type. This option is used to decide the SSE type.
So that if you do not want to encrypt a object at uploading, but you need to decrypt encrypted object at downloaing, you can use load_sse_c option instead of this option. So that if you do not want to encrypt a object at uploading, but you need to decrypt encrypted object at downloading, you can use load_sse_c option instead of this option.
For setting SSE-KMS, specify "use_sse=kmsid" or "use_sse=kmsid:<kms id>". For setting SSE-KMS, specify "use_sse=kmsid" or "use_sse=kmsid:<kms id>".
You can use "k" for short "kmsid". You can use "k" for short "kmsid".
If you san specify SSE-KMS type with your <kms id> in AWS KMS, you can set it after "kmsid:"(or "k:"). If you san specify SSE-KMS type with your <kms id> in AWS KMS, you can set it after "kmsid:"(or "k:").
@ -211,8 +211,8 @@ If you set this option, you can use the extended attribute.
For example, encfs and ecryptfs need to support the extended attribute. For example, encfs and ecryptfs need to support the extended attribute.
Notice: if s3fs handles the extended attribute, s3fs can not work to copy command with preserve=mode. Notice: if s3fs handles the extended attribute, s3fs can not work to copy command with preserve=mode.
.TP .TP
\fB\-o\fR noxmlns - disable registing xml name space. \fB\-o\fR noxmlns - disable registering xml name space.
disable registing xml name space for response of ListBucketResult and ListVersionsResult etc. Default name space is looked up from "http://s3.amazonaws.com/doc/2006-03-01". disable registering xml name space for response of ListBucketResult and ListVersionsResult etc. Default name space is looked up from "http://s3.amazonaws.com/doc/2006-03-01".
This option should not be specified now, because s3fs looks up xmlns automatically after v1.66. This option should not be specified now, because s3fs looks up xmlns automatically after v1.66.
.TP .TP
\fB\-o\fR nocopyapi - for other incomplete compatibility object storage. \fB\-o\fR nocopyapi - for other incomplete compatibility object storage.
@ -222,10 +222,10 @@ If you set this option, s3fs do not use PUT with "x-amz-copy-source"(copy api).
\fB\-o\fR norenameapi - for other incomplete compatibility object storage. \fB\-o\fR norenameapi - for other incomplete compatibility object storage.
For a distributed object storage which is compatibility S3 API without PUT(copy api). For a distributed object storage which is compatibility S3 API without PUT(copy api).
This option is a subset of nocopyapi option. The nocopyapi option does not use copy-api for all command(ex. chmod, chown, touch, mv, etc), but this option does not use copy-api for only rename command(ex. mv). This option is a subset of nocopyapi option. The nocopyapi option does not use copy-api for all command(ex. chmod, chown, touch, mv, etc), but this option does not use copy-api for only rename command(ex. mv).
If this option is specified with nocopapi, the s3fs ignores it. If this option is specified with nocopyapi, then s3fs ignores it.
.TP .TP
\fB\-o\fR use_path_request_style (use legacy API calling style) \fB\-o\fR use_path_request_style (use legacy API calling style)
Enble compatibility with S3-like APIs which do not support the virtual-host request style, by using the older path request style. Enable compatibility with S3-like APIs which do not support the virtual-host request style, by using the older path request style.
.TP .TP
\fB\-o\fR noua (suppress User-Agent header) \fB\-o\fR noua (suppress User-Agent header)
Usually s3fs outputs of the User-Agent in "s3fs/<version> (commit hash <hash>; <using ssl library name>)" format. Usually s3fs outputs of the User-Agent in "s3fs/<version> (commit hash <hash>; <using ssl library name>)" format.

View File

@ -128,8 +128,8 @@ typedef std::map<std::string, std::string, header_nocase_cmp> headers_t;
// //
// Header "x-amz-meta-xattr" is for extended attributes. // Header "x-amz-meta-xattr" is for extended attributes.
// This header is url encoded string which is json formated. // This header is url encoded string which is json formatted.
// x-amz-meta-xattr:urlencod({"xattr-1":"base64(value-1)","xattr-2":"base64(value-2)","xattr-3":"base64(value-3)"}) // x-amz-meta-xattr:urlencode({"xattr-1":"base64(value-1)","xattr-2":"base64(value-2)","xattr-3":"base64(value-3)"})
// //
typedef struct xattr_value{ typedef struct xattr_value{
unsigned char* pvalue; unsigned char* pvalue;
@ -147,7 +147,7 @@ typedef struct xattr_value{
typedef std::map<std::string, PXATTRVAL> xattrs_t; typedef std::map<std::string, PXATTRVAL> xattrs_t;
// //
// Global valiables // Global variables
// //
extern bool foreground; extern bool foreground;
extern bool nomultipart; extern bool nomultipart;

View File

@ -58,7 +58,7 @@ static const std::string empty_payload_hash = "e3b0c44298fc1c149afbf4c8996fb9242
// Utilities // Utilities
//------------------------------------------------------------------- //-------------------------------------------------------------------
// [TODO] // [TODO]
// This function uses tempolary file, but should not use it. // This function uses temporary file, but should not use it.
// For not using it, we implement function in each auth file(openssl, nss. gnutls). // For not using it, we implement function in each auth file(openssl, nss. gnutls).
// //
static bool make_md5_from_string(const char* pstr, string& md5) static bool make_md5_from_string(const char* pstr, string& md5)
@ -308,7 +308,7 @@ void CurlHandlerPool::ReturnHandler(CURL* h)
#define MULTIPART_SIZE 10485760 // 10MB #define MULTIPART_SIZE 10485760 // 10MB
#define MAX_MULTI_COPY_SOURCE_SIZE 524288000 // 500MB #define MAX_MULTI_COPY_SOURCE_SIZE 524288000 // 500MB
#define IAM_EXPIRE_MERGIN (20 * 60) // update timming #define IAM_EXPIRE_MERGIN (20 * 60) // update timing
#define IAM_CRED_URL "http://169.254.169.254/latest/meta-data/iam/security-credentials/" #define IAM_CRED_URL "http://169.254.169.254/latest/meta-data/iam/security-credentials/"
#define IAMCRED_ACCESSKEYID "AccessKeyId" #define IAMCRED_ACCESSKEYID "AccessKeyId"
#define IAMCRED_SECRETACCESSKEY "SecretAccessKey" #define IAMCRED_SECRETACCESSKEY "SecretAccessKey"
@ -1264,7 +1264,7 @@ int S3fsCurl::ParallelMultipartUploadRequest(const char* tpath, headers_t& meta,
// Multi request // Multi request
if(0 != (result = curlmulti.Request())){ if(0 != (result = curlmulti.Request())){
S3FS_PRN_ERR("error occuered in multi request(errno=%d).", result); S3FS_PRN_ERR("error occurred in multi request(errno=%d).", result);
break; break;
} }
@ -1350,7 +1350,7 @@ int S3fsCurl::ParallelGetObjectRequest(const char* tpath, int fd, off_t start, s
// Multi request // Multi request
if(0 != (result = curlmulti.Request())){ if(0 != (result = curlmulti.Request())){
S3FS_PRN_ERR("error occuered in multi request(errno=%d).", result); S3FS_PRN_ERR("error occurred in multi request(errno=%d).", result);
break; break;
} }
@ -2100,7 +2100,7 @@ string S3fsCurl::CalcSignatureV2(const string& method, const string& strMD5, con
if(0 < S3fsCurl::IAM_role.size()){ if(0 < S3fsCurl::IAM_role.size()){
if(!S3fsCurl::CheckIAMCredentialUpdate()){ if(!S3fsCurl::CheckIAMCredentialUpdate()){
S3FS_PRN_ERR("Something error occurred in checking IAM credential."); S3FS_PRN_ERR("Something error occurred in checking IAM credential.");
return Signature; // returns empty string, then it occures error. return Signature; // returns empty string, then it occurs error.
} }
requestHeaders = curl_slist_sort_insert(requestHeaders, "x-amz-security-token", S3fsCurl::AWSAccessToken.c_str()); requestHeaders = curl_slist_sort_insert(requestHeaders, "x-amz-security-token", S3fsCurl::AWSAccessToken.c_str());
} }
@ -2142,7 +2142,7 @@ string S3fsCurl::CalcSignature(const string& method, const string& canonical_uri
if(0 < S3fsCurl::IAM_role.size()){ if(0 < S3fsCurl::IAM_role.size()){
if(!S3fsCurl::CheckIAMCredentialUpdate()){ if(!S3fsCurl::CheckIAMCredentialUpdate()){
S3FS_PRN_ERR("Something error occurred in checking IAM credential."); S3FS_PRN_ERR("Something error occurred in checking IAM credential.");
return Signature; // returns empty string, then it occures error. return Signature; // returns empty string, then it occurs error.
} }
requestHeaders = curl_slist_sort_insert(requestHeaders, "x-amz-security-token", S3fsCurl::AWSAccessToken.c_str()); requestHeaders = curl_slist_sort_insert(requestHeaders, "x-amz-security-token", S3fsCurl::AWSAccessToken.c_str());
} }
@ -2322,7 +2322,7 @@ int S3fsCurl::DeleteRequest(const char* tpath)
// //
// Get AccessKeyId/SecretAccessKey/AccessToken/Expiration by IAM role, // Get AccessKeyId/SecretAccessKey/AccessToken/Expiration by IAM role,
// and Set these value to class valiable. // and Set these value to class variable.
// //
int S3fsCurl::GetIAMCredentials(void) int S3fsCurl::GetIAMCredentials(void)
{ {
@ -2352,7 +2352,7 @@ int S3fsCurl::GetIAMCredentials(void)
int result = RequestPerform(); int result = RequestPerform();
// analizing response // analyzing response
if(0 == result && !S3fsCurl::SetIAMCredentials(bodydata->str())){ if(0 == result && !S3fsCurl::SetIAMCredentials(bodydata->str())){
S3FS_PRN_ERR("Something error occurred, could not get IAM credential."); S3FS_PRN_ERR("Something error occurred, could not get IAM credential.");
} }
@ -2389,7 +2389,7 @@ bool S3fsCurl::LoadIAMRoleFromMetaData(void)
int result = RequestPerform(); int result = RequestPerform();
// analizing response // analyzing response
if(0 == result && !S3fsCurl::SetIAMRoleFromMetaData(bodydata->str())){ if(0 == result && !S3fsCurl::SetIAMRoleFromMetaData(bodydata->str())){
S3FS_PRN_ERR("Something error occurred, could not get IAM role name."); S3FS_PRN_ERR("Something error occurred, could not get IAM role name.");
result = -EIO; result = -EIO;
@ -2677,7 +2677,7 @@ int S3fsCurl::PutRequest(const char* tpath, headers_t& meta, int fd)
} }
b_infile = file; b_infile = file;
}else{ }else{
// This case is creating zero byte obejct.(calling by create_file_object()) // This case is creating zero byte object.(calling by create_file_object())
S3FS_PRN_INFO3("create zero byte file object."); S3FS_PRN_INFO3("create zero byte file object.");
} }
@ -3917,7 +3917,7 @@ int S3fsMultiCurl::MultiRead(void)
isRetry = true; isRetry = true;
} }
}else{ }else{
S3FS_PRN_ERR("failed a request(Unknown respons code: %s)", s3fscurl->url.c_str()); S3FS_PRN_ERR("failed a request(Unknown response code: %s)", s3fscurl->url.c_str());
} }
}else{ }else{
S3FS_PRN_WARN("failed to read(remaining: %d code: %d msg: %s), so retry this.", S3FS_PRN_WARN("failed to read(remaining: %d code: %d msg: %s), so retry this.",
@ -4052,7 +4052,7 @@ struct curl_slist* curl_slist_sort_insert(struct curl_slist* list, const char* k
return list; return list;
} }
// key & value are trimed and lower(only key) // key & value are trimmed and lower (only key)
string strkey = trim(string(key)); string strkey = trim(string(key));
string strval = trim(string(value ? value : "")); string strval = trim(string(value ? value : ""));
string strnew = key + string(": ") + strval; string strnew = key + string(": ") + strval;

View File

@ -159,7 +159,7 @@ typedef std::map<std::string, std::string> iamcredmap_t;
typedef std::map<std::string, std::string> sseckeymap_t; typedef std::map<std::string, std::string> sseckeymap_t;
typedef std::list<sseckeymap_t> sseckeylist_t; typedef std::list<sseckeymap_t> sseckeylist_t;
// strage class(rrs) // storage class(rrs)
enum storage_class_t { enum storage_class_t {
STANDARD, STANDARD,
STANDARD_IA, STANDARD_IA,
@ -328,7 +328,7 @@ class S3fsCurl
static int ParallelGetObjectRequest(const char* tpath, int fd, off_t start, ssize_t size); static int ParallelGetObjectRequest(const char* tpath, int fd, off_t start, ssize_t size);
static bool CheckIAMCredentialUpdate(void); static bool CheckIAMCredentialUpdate(void);
// class methods(valiables) // class methods(variables)
static std::string LookupMimeType(const std::string& name); static std::string LookupMimeType(const std::string& name);
static bool SetCheckCertificate(bool isCertCheck); static bool SetCheckCertificate(bool isCertCheck);
static bool SetDnsCache(bool isCache); static bool SetDnsCache(bool isCache);
@ -407,7 +407,7 @@ class S3fsCurl
int MultipartUploadRequest(const std::string& upload_id, const char* tpath, int fd, off_t offset, size_t size, etaglist_t& list); int MultipartUploadRequest(const std::string& upload_id, const char* tpath, int fd, off_t offset, size_t size, etaglist_t& list);
int MultipartRenameRequest(const char* from, const char* to, headers_t& meta, off_t size); int MultipartRenameRequest(const char* from, const char* to, headers_t& meta, off_t size);
// methods(valiables) // methods(variables)
CURL* GetCurlHandle(void) const { return hCurl; } CURL* GetCurlHandle(void) const { return hCurl; }
std::string GetPath(void) const { return path; } std::string GetPath(void) const { return path; }
std::string GetBasePath(void) const { return base_path; } std::string GetBasePath(void) const { return base_path; }

View File

@ -745,7 +745,7 @@ int FdEntity::OpenMirrorFile(void)
return -EIO; return -EIO;
} }
// make tmporary directory // make temporary directory
string bupdir; string bupdir;
if(!FdManager::MakeCachePath(NULL, bupdir, true, true)){ if(!FdManager::MakeCachePath(NULL, bupdir, true, true)){
S3FS_PRN_ERR("could not make bup cache directory path or create it."); S3FS_PRN_ERR("could not make bup cache directory path or create it.");
@ -952,7 +952,7 @@ int FdEntity::Open(headers_t* pmeta, ssize_t size, time_t time)
} }
// [NOTE] // [NOTE]
// This method is called from olny nocopapi functions. // This method is called from only nocopyapi functions.
// So we do not check disk space for this option mode, if there is no enough // So we do not check disk space for this option mode, if there is no enough
// disk space this method will be failed. // disk space this method will be failed.
// //
@ -1232,7 +1232,7 @@ int FdEntity::NoCacheLoadAndPost(off_t start, size_t size)
if(0 != size && static_cast<size_t>(start + size) <= static_cast<size_t>((*iter)->offset)){ if(0 != size && static_cast<size_t>(start + size) <= static_cast<size_t>((*iter)->offset)){
break; break;
} }
// download earch multipart size(default 10MB) in unit // download each multipart size(default 10MB) in unit
for(size_t oneread = 0, totalread = ((*iter)->offset < start ? start : 0); totalread < (*iter)->bytes; totalread += oneread){ for(size_t oneread = 0, totalread = ((*iter)->offset < start ? start : 0); totalread < (*iter)->bytes; totalread += oneread){
int upload_fd = fd; int upload_fd = fd;
off_t offset = (*iter)->offset + totalread; off_t offset = (*iter)->offset + totalread;
@ -1434,7 +1434,7 @@ int FdEntity::RowFlush(const char* tpath, bool force_sync)
// check disk space // check disk space
if(FdManager::IsSafeDiskSpace(NULL, restsize)){ if(FdManager::IsSafeDiskSpace(NULL, restsize)){
// enough disk space // enough disk space
// Load all unitialized area // Load all uninitialized area
if(0 != (result = Load())){ if(0 != (result = Load())){
S3FS_PRN_ERR("failed to upload all area(errno=%d)", result); S3FS_PRN_ERR("failed to upload all area(errno=%d)", result);
return static_cast<ssize_t>(result); return static_cast<ssize_t>(result);
@ -1448,7 +1448,7 @@ int FdEntity::RowFlush(const char* tpath, bool force_sync)
} }
} }
}else{ }else{
// alreay start miltipart uploading // already start multipart uploading
} }
} }
@ -1627,7 +1627,7 @@ ssize_t FdEntity::Write(const char* bytes, off_t start, size_t size)
if(FdManager::IsSafeDiskSpace(NULL, restsize)){ if(FdManager::IsSafeDiskSpace(NULL, restsize)){
// enough disk space // enough disk space
// Load unitialized area which starts from 0 to (start + size) before writing. // Load uninitialized area which starts from 0 to (start + size) before writing.
if(0 < start && 0 != (result = Load(0, static_cast<size_t>(start)))){ if(0 < start && 0 != (result = Load(0, static_cast<size_t>(start)))){
S3FS_PRN_ERR("failed to load uninitialized area before writing(errno=%d)", result); S3FS_PRN_ERR("failed to load uninitialized area before writing(errno=%d)", result);
return static_cast<ssize_t>(result); return static_cast<ssize_t>(result);
@ -1647,7 +1647,7 @@ ssize_t FdEntity::Write(const char* bytes, off_t start, size_t size)
mp_size = 0; mp_size = 0;
} }
}else{ }else{
// alreay start miltipart uploading // already start multipart uploading
} }
// Writing // Writing
@ -1705,7 +1705,7 @@ ssize_t FdEntity::Write(const char* bytes, off_t start, size_t size)
#define NOCACHE_PATH_PREFIX_FORM " __S3FS_UNEXISTED_PATH_%lx__ / " // important space words for simply #define NOCACHE_PATH_PREFIX_FORM " __S3FS_UNEXISTED_PATH_%lx__ / " // important space words for simply
//------------------------------------------------ //------------------------------------------------
// FdManager class valiable // FdManager class variable
//------------------------------------------------ //------------------------------------------------
FdManager FdManager::singleton; FdManager FdManager::singleton;
pthread_mutex_t FdManager::fd_manager_lock; pthread_mutex_t FdManager::fd_manager_lock;
@ -1832,7 +1832,7 @@ bool FdManager::MakeRandomTempPath(const char* path, string& tmppath)
{ {
char szBuff[64]; char szBuff[64];
sprintf(szBuff, NOCACHE_PATH_PREFIX_FORM, random()); // warry for performance, but maybe don't warry. sprintf(szBuff, NOCACHE_PATH_PREFIX_FORM, random()); // worry for performance, but maybe don't worry.
tmppath = szBuff; tmppath = szBuff;
tmppath += path ? path : ""; tmppath += path ? path : "";
return true; return true;
@ -1941,7 +1941,7 @@ FdEntity* FdManager::GetFdEntity(const char* path, int existfd)
if(-1 != existfd){ if(-1 != existfd){
for(iter = fent.begin(); iter != fent.end(); ++iter){ for(iter = fent.begin(); iter != fent.end(); ++iter){
if((*iter).second && (*iter).second->GetFd() == existfd){ if((*iter).second && (*iter).second->GetFd() == existfd){
// found opend fd in map // found opened fd in map
if(0 == strcmp((*iter).second->GetPath(), path)){ if(0 == strcmp((*iter).second->GetPath(), path)){
return (*iter).second; return (*iter).second;
} }
@ -1983,7 +1983,7 @@ FdEntity* FdManager::Open(const char* path, headers_t* pmeta, ssize_t size, time
// using cache // using cache
fent[string(path)] = ent; fent[string(path)] = ent;
}else{ }else{
// not using cache, so the key of fdentity is set not really existsing path. // not using cache, so the key of fdentity is set not really existing path.
// (but not strictly unexisting path.) // (but not strictly unexisting path.)
// //
// [NOTE] // [NOTE]
@ -2018,7 +2018,7 @@ FdEntity* FdManager::ExistOpen(const char* path, int existfd, bool ignore_existf
for(fdent_map_t::iterator iter = fent.begin(); iter != fent.end(); ++iter){ for(fdent_map_t::iterator iter = fent.begin(); iter != fent.end(); ++iter){
if((*iter).second && (*iter).second->IsOpen() && (ignore_existfd || ((*iter).second->GetFd() == existfd))){ if((*iter).second && (*iter).second->IsOpen() && (ignore_existfd || ((*iter).second->GetFd() == existfd))){
// found opend fd in map // found opened fd in map
if(0 == strcmp((*iter).second->GetPath(), path)){ if(0 == strcmp((*iter).second->GetPath(), path)){
ent = (*iter).second; ent = (*iter).second;
ent->Dup(); ent->Dup();

View File

@ -74,7 +74,7 @@ using namespace std;
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Structs // Structs
//------------------------------------------------------------------- //-------------------------------------------------------------------
typedef struct uncomplete_multipart_info{ typedef struct incomplete_multipart_info{
string key; string key;
string id; string id;
string date; string date;
@ -83,7 +83,7 @@ typedef struct uncomplete_multipart_info{
typedef std::list<UNCOMP_MP_INFO> uncomp_mp_list_t; typedef std::list<UNCOMP_MP_INFO> uncomp_mp_list_t;
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Global valiables // Global variables
//------------------------------------------------------------------- //-------------------------------------------------------------------
bool foreground = false; bool foreground = false;
bool nomultipart = false; bool nomultipart = false;
@ -97,7 +97,7 @@ s3fs_log_level debug_level = S3FS_LOG_CRIT;
const char* s3fs_log_nest[S3FS_LOG_NEST_MAX] = {"", " ", " ", " "}; const char* s3fs_log_nest[S3FS_LOG_NEST_MAX] = {"", " ", " ", " "};
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Static valiables // Static variables
//------------------------------------------------------------------- //-------------------------------------------------------------------
static uid_t mp_uid = 0; // owner of mount point(only not specified uid opt) static uid_t mp_uid = 0; // owner of mount point(only not specified uid opt)
static gid_t mp_gid = 0; // group of mount point(only not specified gid opt) static gid_t mp_gid = 0; // group of mount point(only not specified gid opt)
@ -177,7 +177,7 @@ static int check_for_aws_format(void);
static int check_passwd_file_perms(void); static int check_passwd_file_perms(void);
static int read_passwd_file(void); static int read_passwd_file(void);
static int get_access_keys(void); static int get_access_keys(void);
static int set_moutpoint_attribute(struct stat& mpst); static int set_mountpoint_attribute(struct stat& mpst);
static int set_bucket(const char* arg); static int set_bucket(const char* arg);
static int my_fuse_opt_proc(void* data, const char* arg, int key, struct fuse_args* outargs); static int my_fuse_opt_proc(void* data, const char* arg, int key, struct fuse_args* outargs);
@ -321,7 +321,7 @@ static int chk_dir_object_type(const char* path, string& newpath, string& nowpat
newpath += "/"; newpath += "/";
} }
// Alwayes check "dir/" at first. // Always check "dir/" at first.
if(0 == (result = get_object_attribute(newpath.c_str(), NULL, pmeta, false, &isforce))){ if(0 == (result = get_object_attribute(newpath.c_str(), NULL, pmeta, false, &isforce))){
// Found "dir/" cache --> Check for "_$folder$", "no dir object" // Found "dir/" cache --> Check for "_$folder$", "no dir object"
nowcache = newpath; nowcache = newpath;
@ -349,7 +349,7 @@ static int chk_dir_object_type(const char* path, string& newpath, string& nowpat
if(0 == (result = get_object_attribute(nowpath.c_str(), NULL, pmeta, false, &isforce))){ if(0 == (result = get_object_attribute(nowpath.c_str(), NULL, pmeta, false, &isforce))){
// Found "dir" cache --> this case is only "dir" type. // Found "dir" cache --> this case is only "dir" type.
// Because, if object is "_$folder$" or "no dir object", the cache is "dir/" type. // Because, if object is "_$folder$" or "no dir object", the cache is "dir/" type.
// (But "no dir objet" is checked here.) // (But "no dir object" is checked here.)
nowcache = nowpath; nowcache = nowpath;
if(isforce){ if(isforce){
(*pType) = DIRTYPE_NOOBJ; (*pType) = DIRTYPE_NOOBJ;
@ -359,7 +359,7 @@ static int chk_dir_object_type(const char* path, string& newpath, string& nowpat
} }
}else{ }else{
// Not found cache --> check for "_$folder$" and "no dir object". // Not found cache --> check for "_$folder$" and "no dir object".
nowcache = ""; // This case is no cahce. nowcache = ""; // This case is no cache.
nowpath += "_$folder$"; nowpath += "_$folder$";
if(is_special_name_folder_object(nowpath.c_str())){ if(is_special_name_folder_object(nowpath.c_str())){
// "_$folder$" type. // "_$folder$" type.
@ -469,7 +469,7 @@ static int get_object_attribute(const char* path, struct stat* pstbuf, headers_t
strpath = strpath.substr(0, strpath.length() - 1); strpath = strpath.substr(0, strpath.length() - 1);
} }
if(-ENOTEMPTY == directory_empty(strpath.c_str())){ if(-ENOTEMPTY == directory_empty(strpath.c_str())){
// found "no dir obejct". // found "no dir object".
strpath += "/"; strpath += "/";
forcedir = true; forcedir = true;
if(pisforce){ if(pisforce){
@ -563,7 +563,7 @@ static int check_object_access(const char* path, int mask, struct stat* pstbuf)
return -EIO; return -EIO;
} }
if(0 != (result = get_object_attribute(path, pst))){ if(0 != (result = get_object_attribute(path, pst))){
// If there is not tha target file(object), reusult is -ENOENT. // If there is not the target file(object), result is -ENOENT.
return result; return result;
} }
if(0 == pcxt->uid){ if(0 == pcxt->uid){
@ -598,7 +598,7 @@ static int check_object_access(const char* path, int mask, struct stat* pstbuf)
if(pcxt->gid == obj_gid){ if(pcxt->gid == obj_gid){
base_mask |= S_IRWXG; base_mask |= S_IRWXG;
} }
if(1 == is_uid_inculde_group(pcxt->uid, obj_gid)){ if(1 == is_uid_include_group(pcxt->uid, obj_gid)){
base_mask |= S_IRWXG; base_mask |= S_IRWXG;
} }
mode &= base_mask; mode &= base_mask;
@ -637,7 +637,7 @@ static int check_object_owner(const char* path, struct stat* pstbuf)
return -EIO; return -EIO;
} }
if(0 != (result = get_object_attribute(path, pst))){ if(0 != (result = get_object_attribute(path, pst))){
// If there is not tha target file(object), reusult is -ENOENT. // If there is not the target file(object), result is -ENOENT.
return result; return result;
} }
// check owner // check owner
@ -744,12 +744,12 @@ static FdEntity* get_local_fent(const char* path, bool is_load)
bool force_tmpfile = S_ISREG(stobj.st_mode) ? false : true; bool force_tmpfile = S_ISREG(stobj.st_mode) ? false : true;
if(NULL == (ent = FdManager::get()->Open(path, &meta, static_cast<ssize_t>(stobj.st_size), mtime, force_tmpfile, true))){ if(NULL == (ent = FdManager::get()->Open(path, &meta, static_cast<ssize_t>(stobj.st_size), mtime, force_tmpfile, true))){
S3FS_PRN_ERR("Coult not open file. errno(%d)", errno); S3FS_PRN_ERR("Could not open file. errno(%d)", errno);
return NULL; return NULL;
} }
// load // load
if(is_load && !ent->OpenAndLoadAll(&meta)){ if(is_load && !ent->OpenAndLoadAll(&meta)){
S3FS_PRN_ERR("Coult not load file. errno(%d)", errno); S3FS_PRN_ERR("Could not load file. errno(%d)", errno);
FdManager::get()->Close(ent); FdManager::get()->Close(ent);
return NULL; return NULL;
} }
@ -771,7 +771,7 @@ static int put_headers(const char* path, headers_t& meta, bool is_copy)
// files larger than 5GB must be modified via the multipart interface // files larger than 5GB must be modified via the multipart interface
// *** If there is not target object(a case of move command), // *** If there is not target object(a case of move command),
// get_object_attribute() returns error with initilizing buf. // get_object_attribute() returns error with initializing buf.
(void)get_object_attribute(path, &buf); (void)get_object_attribute(path, &buf);
if(buf.st_size >= FIVE_GB){ if(buf.st_size >= FIVE_GB){
@ -815,7 +815,7 @@ static int s3fs_getattr(const char* path, struct stat* stbuf)
if(0 != (result = check_object_access(path, F_OK, stbuf))){ if(0 != (result = check_object_access(path, F_OK, stbuf))){
return result; return result;
} }
// If has already opened fd, the st_size shuld be instead. // If has already opened fd, the st_size should be instead.
// (See: Issue 241) // (See: Issue 241)
if(stbuf){ if(stbuf){
FdEntity* ent; FdEntity* ent;
@ -1130,7 +1130,7 @@ static int s3fs_rmdir(const char* path)
} }
} }
// If there is no "dir" and "dir/" object(this case is made by s3cmd/s3sync), // If there is no "dir" and "dir/" object(this case is made by s3cmd/s3sync),
// the cache key is "dir/". So we get error only onece(delete "dir/"). // the cache key is "dir/". So we get error only once(delete "dir/").
// check for "_$folder$" object. // check for "_$folder$" object.
// This processing is necessary for other S3 clients compatibility. // This processing is necessary for other S3 clients compatibility.
@ -1205,11 +1205,11 @@ static int rename_object(const char* from, const char* to)
S3FS_PRN_INFO1("[from=%s][to=%s]", from , to); S3FS_PRN_INFO1("[from=%s][to=%s]", from , to);
if(0 != (result = check_parent_object_access(to, W_OK | X_OK))){ if(0 != (result = check_parent_object_access(to, W_OK | X_OK))){
// not permmit writing "to" object parent dir. // not permit writing "to" object parent dir.
return result; return result;
} }
if(0 != (result = check_parent_object_access(from, W_OK | X_OK))){ if(0 != (result = check_parent_object_access(from, W_OK | X_OK))){
// not permmit removing "from" object parent dir. // not permit removing "from" object parent dir.
return result; return result;
} }
if(0 != (result = get_object_attribute(from, NULL, &meta))){ if(0 != (result = get_object_attribute(from, NULL, &meta))){
@ -1240,11 +1240,11 @@ static int rename_object_nocopy(const char* from, const char* to)
S3FS_PRN_INFO1("[from=%s][to=%s]", from , to); S3FS_PRN_INFO1("[from=%s][to=%s]", from , to);
if(0 != (result = check_parent_object_access(to, W_OK | X_OK))){ if(0 != (result = check_parent_object_access(to, W_OK | X_OK))){
// not permmit writing "to" object parent dir. // not permit writing "to" object parent dir.
return result; return result;
} }
if(0 != (result = check_parent_object_access(from, W_OK | X_OK))){ if(0 != (result = check_parent_object_access(from, W_OK | X_OK))){
// not permmit removing "from" object parent dir. // not permit removing "from" object parent dir.
return result; return result;
} }
@ -1288,11 +1288,11 @@ static int rename_large_object(const char* from, const char* to)
S3FS_PRN_INFO1("[from=%s][to=%s]", from , to); S3FS_PRN_INFO1("[from=%s][to=%s]", from , to);
if(0 != (result = check_parent_object_access(to, W_OK | X_OK))){ if(0 != (result = check_parent_object_access(to, W_OK | X_OK))){
// not permmit writing "to" object parent dir. // not permit writing "to" object parent dir.
return result; return result;
} }
if(0 != (result = check_parent_object_access(from, W_OK | X_OK))){ if(0 != (result = check_parent_object_access(from, W_OK | X_OK))){
// not permmit removing "from" object parent dir. // not permit removing "from" object parent dir.
return result; return result;
} }
if(0 != (result = get_object_attribute(from, &buf, &meta, false))){ if(0 != (result = get_object_attribute(from, &buf, &meta, false))){
@ -1471,11 +1471,11 @@ static int s3fs_rename(const char* from, const char* to)
S3FS_PRN_INFO("[from=%s][to=%s]", from, to); S3FS_PRN_INFO("[from=%s][to=%s]", from, to);
if(0 != (result = check_parent_object_access(to, W_OK | X_OK))){ if(0 != (result = check_parent_object_access(to, W_OK | X_OK))){
// not permmit writing "to" object parent dir. // not permit writing "to" object parent dir.
return result; return result;
} }
if(0 != (result = check_parent_object_access(from, W_OK | X_OK))){ if(0 != (result = check_parent_object_access(from, W_OK | X_OK))){
// not permmit removing "from" object parent dir. // not permit removing "from" object parent dir.
return result; return result;
} }
if(0 != (result = get_object_attribute(from, &buf, NULL))){ if(0 != (result = get_object_attribute(from, &buf, NULL))){
@ -1595,7 +1595,7 @@ static int s3fs_chmod_nocopy(const char* path, mode_t mode)
S3FS_PRN_INFO1("[path=%s][mode=%04o]", path, mode); S3FS_PRN_INFO1("[path=%s][mode=%04o]", path, mode);
if(0 == strcmp(path, "/")){ if(0 == strcmp(path, "/")){
S3FS_PRN_ERR("Could not change mode for maount point."); S3FS_PRN_ERR("Could not change mode for mount point.");
return -EIO; return -EIO;
} }
if(0 != (result = check_parent_object_access(path, X_OK))){ if(0 != (result = check_parent_object_access(path, X_OK))){
@ -1675,7 +1675,7 @@ static int s3fs_chown(const char* path, uid_t uid, gid_t gid)
S3FS_PRN_INFO("[path=%s][uid=%u][gid=%u]", path, (unsigned int)uid, (unsigned int)gid); S3FS_PRN_INFO("[path=%s][uid=%u][gid=%u]", path, (unsigned int)uid, (unsigned int)gid);
if(0 == strcmp(path, "/")){ if(0 == strcmp(path, "/")){
S3FS_PRN_ERR("Could not change owner for maount point."); S3FS_PRN_ERR("Could not change owner for mount point.");
return -EIO; return -EIO;
} }
if(0 != (result = check_parent_object_access(path, X_OK))){ if(0 != (result = check_parent_object_access(path, X_OK))){
@ -1756,7 +1756,7 @@ static int s3fs_chown_nocopy(const char* path, uid_t uid, gid_t gid)
S3FS_PRN_INFO1("[path=%s][uid=%u][gid=%u]", path, (unsigned int)uid, (unsigned int)gid); S3FS_PRN_INFO1("[path=%s][uid=%u][gid=%u]", path, (unsigned int)uid, (unsigned int)gid);
if(0 == strcmp(path, "/")){ if(0 == strcmp(path, "/")){
S3FS_PRN_ERR("Could not change owner for maount point."); S3FS_PRN_ERR("Could not change owner for mount point.");
return -EIO; return -EIO;
} }
if(0 != (result = check_parent_object_access(path, X_OK))){ if(0 != (result = check_parent_object_access(path, X_OK))){
@ -1846,7 +1846,7 @@ static int s3fs_utimens(const char* path, const struct timespec ts[2])
S3FS_PRN_INFO("[path=%s][mtime=%jd]", path, (intmax_t)(ts[1].tv_sec)); S3FS_PRN_INFO("[path=%s][mtime=%jd]", path, (intmax_t)(ts[1].tv_sec));
if(0 == strcmp(path, "/")){ if(0 == strcmp(path, "/")){
S3FS_PRN_ERR("Could not change mtime for maount point."); S3FS_PRN_ERR("Could not change mtime for mount point.");
return -EIO; return -EIO;
} }
if(0 != (result = check_parent_object_access(path, X_OK))){ if(0 != (result = check_parent_object_access(path, X_OK))){
@ -2389,20 +2389,20 @@ static int readdir_multi_head(const char* path, S3ObjList& head, void* buf, fuse
// Multi request // Multi request
if(0 != (result = curlmulti.Request())){ if(0 != (result = curlmulti.Request())){
// If result is -EIO, it is somthing error occurred. // If result is -EIO, it is something error occurred.
// This case includes that the object is encrypting(SSE) and s3fs does not have keys. // This case includes that the object is encrypting(SSE) and s3fs does not have keys.
// So s3fs set result to 0 in order to continue the process. // So s3fs set result to 0 in order to continue the process.
if(-EIO == result){ if(-EIO == result){
S3FS_PRN_WARN("error occuered in multi request(errno=%d), but continue...", result); S3FS_PRN_WARN("error occurred in multi request(errno=%d), but continue...", result);
result = 0; result = 0;
}else{ }else{
S3FS_PRN_ERR("error occuered in multi request(errno=%d).", result); S3FS_PRN_ERR("error occurred in multi request(errno=%d).", result);
break; break;
} }
} }
// populate fuse buffer // populate fuse buffer
// here is best posision, because a case is cache size < files in directory // here is best position, because a case is cache size < files in directory
// //
for(iter = fillerlist.begin(); fillerlist.end() != iter; ++iter){ for(iter = fillerlist.begin(); fillerlist.end() != iter; ++iter){
struct stat st; struct stat st;
@ -2528,7 +2528,7 @@ static int list_bucket(const char* path, S3ObjList& head, const char* delimiter,
xmlFree(tmpch); xmlFree(tmpch);
}else{ }else{
// If did not specify "delimiter", s3 did not return "NextMarker". // If did not specify "delimiter", s3 did not return "NextMarker".
// On this case, can use lastest name for next marker. // On this case, can use last name for next marker.
// //
string lastname; string lastname;
if(!head.GetLastName(lastname)){ if(!head.GetLastName(lastname)){
@ -3132,7 +3132,7 @@ static int s3fs_getxattr(const char* path, const char* name, char* value, size_t
return result; return result;
} }
// get headders // get headers
if(0 != (result = get_object_attribute(path, NULL, &meta))){ if(0 != (result = get_object_attribute(path, NULL, &meta))){
return result; return result;
} }
@ -3196,7 +3196,7 @@ static int s3fs_listxattr(const char* path, char* list, size_t size)
return result; return result;
} }
// get headders // get headers
if(0 != (result = get_object_attribute(path, NULL, &meta))){ if(0 != (result = get_object_attribute(path, NULL, &meta))){
return result; return result;
} }
@ -3376,7 +3376,7 @@ static void* s3fs_init(struct fuse_conn_info* conn)
// cache(remove cache dirs at first) // cache(remove cache dirs at first)
if(is_remove_cache && (!CacheFileStat::DeleteCacheFileStatDirectory() || !FdManager::DeleteCacheDirectory())){ if(is_remove_cache && (!CacheFileStat::DeleteCacheFileStatDirectory() || !FdManager::DeleteCacheDirectory())){
S3FS_PRN_DBG("Could not inilialize cache directory."); S3FS_PRN_DBG("Could not initialize cache directory.");
} }
// ssl init // ssl init
@ -3674,7 +3674,7 @@ static int s3fs_utility_mode(void)
S3FS_PRN_EXIT("Could not get list multipart upload."); S3FS_PRN_EXIT("Could not get list multipart upload.");
result = EXIT_FAILURE; result = EXIT_FAILURE;
}else{ }else{
// perse result(uncomplete multipart upload information) // parse result(incomplete multipart upload information)
S3FS_PRN_DBG("response body = {\n%s\n}", body.c_str()); S3FS_PRN_DBG("response body = {\n%s\n}", body.c_str());
xmlDocPtr doc; xmlDocPtr doc;
@ -3714,13 +3714,13 @@ static int s3fs_utility_mode(void)
} }
// //
// If calling with wrong region, s3fs gets following error body as 400 erro code. // If calling with wrong region, s3fs gets following error body as 400 error code.
// "<Error><Code>AuthorizationHeaderMalformed</Code><Message>The authorization header is // "<Error><Code>AuthorizationHeaderMalformed</Code><Message>The authorization header is
// malformed; the region 'us-east-1' is wrong; expecting 'ap-northeast-1'</Message> // malformed; the region 'us-east-1' is wrong; expecting 'ap-northeast-1'</Message>
// <Region>ap-northeast-1</Region><RequestId>...</RequestId><HostId>...</HostId> // <Region>ap-northeast-1</Region><RequestId>...</RequestId><HostId>...</HostId>
// </Error>" // </Error>"
// //
// So this is cheep codes but s3fs should get correct reagion automatically. // So this is cheep codes but s3fs should get correct region automatically.
// //
static bool check_region_error(const char* pbody, string& expectregion) static bool check_region_error(const char* pbody, string& expectregion)
{ {
@ -3840,7 +3840,7 @@ static int s3fs_check_service(void)
// Return: 1 - OK(could read and set accesskey etc.) // Return: 1 - OK(could read and set accesskey etc.)
// 0 - NG(could not read) // 0 - NG(could not read)
// -1 - Should shoutdown immidiatly // -1 - Should shutdown immediately
static int check_for_aws_format(void) static int check_for_aws_format(void)
{ {
size_t first_pos = string::npos; size_t first_pos = string::npos;
@ -4186,7 +4186,7 @@ static int get_access_keys(void)
// //
// Check & Set attributes for mount point. // Check & Set attributes for mount point.
// //
static int set_moutpoint_attribute(struct stat& mpst) static int set_mountpoint_attribute(struct stat& mpst)
{ {
mp_uid = geteuid(); mp_uid = geteuid();
mp_gid = getegid(); mp_gid = getegid();
@ -4200,7 +4200,7 @@ static int set_moutpoint_attribute(struct stat& mpst)
return true; return true;
} }
// check group permission // check group permission
if(mpst.st_gid == mp_gid || 1 == is_uid_inculde_group(mp_uid, mpst.st_gid)){ if(mpst.st_gid == mp_gid || 1 == is_uid_include_group(mp_uid, mpst.st_gid)){
if(S_IRWXG == (mpst.st_mode & S_IRWXG)){ if(S_IRWXG == (mpst.st_mode & S_IRWXG)){
return true; return true;
} }
@ -4274,7 +4274,7 @@ static int my_fuse_opt_proc(void* data, const char* arg, int key, struct fuse_ar
S3FS_PRN_EXIT("MOUNTPOINT: %s is not a directory.", mountpoint.c_str()); S3FS_PRN_EXIT("MOUNTPOINT: %s is not a directory.", mountpoint.c_str());
return -1; return -1;
} }
if(!set_moutpoint_attribute(stbuf)){ if(!set_mountpoint_attribute(stbuf)){
S3FS_PRN_EXIT("MOUNTPOINT: %s permission denied.", mountpoint.c_str()); S3FS_PRN_EXIT("MOUNTPOINT: %s permission denied.", mountpoint.c_str());
return -1; return -1;
} }
@ -4298,7 +4298,7 @@ static int my_fuse_opt_proc(void* data, const char* arg, int key, struct fuse_ar
return 1; return 1;
} }
// Unknow option // Unknown option
if(0 == utility_mode){ if(0 == utility_mode){
S3FS_PRN_EXIT("specified unknown third optioni(%s).", arg); S3FS_PRN_EXIT("specified unknown third optioni(%s).", arg);
}else{ }else{
@ -4417,14 +4417,14 @@ static int my_fuse_opt_proc(void* data, const char* arg, int key, struct fuse_ar
// //
// load_sse_c=file Load Server Side Encrypting custom keys // load_sse_c=file Load Server Side Encrypting custom keys
// //
// AWSSSECKEYS Loaing Environment for Server Side Encrypting custom keys // AWSSSECKEYS Loading Environment for Server Side Encrypting custom keys
// AWSSSEKMSID Loaing Environment for Server Side Encrypting Key id // AWSSSEKMSID Loading Environment for Server Side Encrypting Key id
// //
if(0 == STR2NCMP(arg, "use_sse")){ if(0 == STR2NCMP(arg, "use_sse")){
if(0 == strcmp(arg, "use_sse") || 0 == strcmp(arg, "use_sse=1")){ // use_sse=1 is old type paraemter if(0 == strcmp(arg, "use_sse") || 0 == strcmp(arg, "use_sse=1")){ // use_sse=1 is old type parameter
// sse type is SSE_S3 // sse type is SSE_S3
if(!S3fsCurl::IsSseDisable() && !S3fsCurl::IsSseS3Type()){ if(!S3fsCurl::IsSseDisable() && !S3fsCurl::IsSseS3Type()){
S3FS_PRN_EXIT("already set SSE another type, so confrict use_sse option or environment."); S3FS_PRN_EXIT("already set SSE another type, so conflict use_sse option or environment.");
return -1; return -1;
} }
S3fsCurl::SetSseType(SSE_S3); S3fsCurl::SetSseType(SSE_S3);
@ -4432,11 +4432,11 @@ static int my_fuse_opt_proc(void* data, const char* arg, int key, struct fuse_ar
}else if(0 == strcmp(arg, "use_sse=kmsid") || 0 == strcmp(arg, "use_sse=k")){ }else if(0 == strcmp(arg, "use_sse=kmsid") || 0 == strcmp(arg, "use_sse=k")){
// sse type is SSE_KMS with out kmsid(expecting id is loaded by environment) // sse type is SSE_KMS with out kmsid(expecting id is loaded by environment)
if(!S3fsCurl::IsSseDisable() && !S3fsCurl::IsSseKmsType()){ if(!S3fsCurl::IsSseDisable() && !S3fsCurl::IsSseKmsType()){
S3FS_PRN_EXIT("already set SSE another type, so confrict use_sse option or environment."); S3FS_PRN_EXIT("already set SSE another type, so conflict use_sse option or environment.");
return -1; return -1;
} }
if(!S3fsCurl::IsSetSseKmsId()){ if(!S3fsCurl::IsSetSseKmsId()){
S3FS_PRN_EXIT("use_sse=kms but not loaded kms id by environemnt."); S3FS_PRN_EXIT("use_sse=kms but not loaded kms id by environment.");
return -1; return -1;
} }
S3fsCurl::SetSseType(SSE_KMS); S3fsCurl::SetSseType(SSE_KMS);
@ -4444,7 +4444,7 @@ static int my_fuse_opt_proc(void* data, const char* arg, int key, struct fuse_ar
}else if(0 == STR2NCMP(arg, "use_sse=kmsid:") || 0 == STR2NCMP(arg, "use_sse=k:")){ }else if(0 == STR2NCMP(arg, "use_sse=kmsid:") || 0 == STR2NCMP(arg, "use_sse=k:")){
// sse type is SSE_KMS with kmsid // sse type is SSE_KMS with kmsid
if(!S3fsCurl::IsSseDisable() && !S3fsCurl::IsSseKmsType()){ if(!S3fsCurl::IsSseDisable() && !S3fsCurl::IsSseKmsType()){
S3FS_PRN_EXIT("already set SSE another type, so confrict use_sse option or environment."); S3FS_PRN_EXIT("already set SSE another type, so conflict use_sse option or environment.");
return -1; return -1;
} }
const char* kmsid; const char* kmsid;
@ -4460,9 +4460,9 @@ static int my_fuse_opt_proc(void* data, const char* arg, int key, struct fuse_ar
S3fsCurl::SetSseType(SSE_KMS); S3fsCurl::SetSseType(SSE_KMS);
}else if(0 == strcmp(arg, "use_sse=custom") || 0 == strcmp(arg, "use_sse=c")){ }else if(0 == strcmp(arg, "use_sse=custom") || 0 == strcmp(arg, "use_sse=c")){
// sse type is SSE_C with out custom keys(expecting keays are loaded by environment or load_sse_c option) // sse type is SSE_C with out custom keys(expecting keys are loaded by environment or load_sse_c option)
if(!S3fsCurl::IsSseDisable() && !S3fsCurl::IsSseCType()){ if(!S3fsCurl::IsSseDisable() && !S3fsCurl::IsSseCType()){
S3FS_PRN_EXIT("already set SSE another type, so confrict use_sse option or environment."); S3FS_PRN_EXIT("already set SSE another type, so conflict use_sse option or environment.");
return -1; return -1;
} }
// [NOTE] // [NOTE]
@ -4473,7 +4473,7 @@ static int my_fuse_opt_proc(void* data, const char* arg, int key, struct fuse_ar
}else if(0 == STR2NCMP(arg, "use_sse=custom:") || 0 == STR2NCMP(arg, "use_sse=c:")){ }else if(0 == STR2NCMP(arg, "use_sse=custom:") || 0 == STR2NCMP(arg, "use_sse=c:")){
// sse type is SSE_C with custom keys // sse type is SSE_C with custom keys
if(!S3fsCurl::IsSseDisable() && !S3fsCurl::IsSseCType()){ if(!S3fsCurl::IsSseDisable() && !S3fsCurl::IsSseCType()){
S3FS_PRN_EXIT("already set SSE another type, so confrict use_sse option or environment."); S3FS_PRN_EXIT("already set SSE another type, so conflict use_sse option or environment.");
return -1; return -1;
} }
const char* ssecfile; const char* ssecfile;
@ -4488,7 +4488,7 @@ static int my_fuse_opt_proc(void* data, const char* arg, int key, struct fuse_ar
} }
S3fsCurl::SetSseType(SSE_C); S3fsCurl::SetSseType(SSE_C);
}else if(0 == strcmp(arg, "use_sse=")){ // this type is old style(paraemter is custom key file path) }else if(0 == strcmp(arg, "use_sse=")){ // this type is old style(parameter is custom key file path)
// SSE_C with custom keys. // SSE_C with custom keys.
const char* ssecfile = &arg[strlen("use_sse=")]; const char* ssecfile = &arg[strlen("use_sse=")];
if(!S3fsCurl::SetSseCKeys(ssecfile)){ if(!S3fsCurl::SetSseCKeys(ssecfile)){
@ -4499,7 +4499,7 @@ static int my_fuse_opt_proc(void* data, const char* arg, int key, struct fuse_ar
}else{ }else{
// never come here. // never come here.
S3FS_PRN_EXIT("something wrong use_sse optino."); S3FS_PRN_EXIT("something wrong use_sse option.");
return -1; return -1;
} }
return 0; return 0;
@ -4796,7 +4796,7 @@ int main(int argc, char* argv[])
xmlInitParser(); xmlInitParser();
LIBXML_TEST_VERSION LIBXML_TEST_VERSION
// get progam name - emulate basename // get program name - emulate basename
size_t found = string::npos; size_t found = string::npos;
program_name.assign(argv[0]); program_name.assign(argv[0]);
found = program_name.find_last_of("/"); found = program_name.find_last_of("/");

View File

@ -46,7 +46,7 @@
using namespace std; using namespace std;
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Global valiables // Global variables
//------------------------------------------------------------------- //-------------------------------------------------------------------
std::string mount_prefix = ""; std::string mount_prefix = "";
@ -110,7 +110,7 @@ bool S3ObjList::insert(const char* name, const char* etag, bool is_dir)
if(objects.end() != (iter = objects.find(chkname))){ if(objects.end() != (iter = objects.find(chkname))){
// found "dir/" object --> not add new object. // found "dir/" object --> not add new object.
// and add normalization // and add normalization
return insert_nomalized(orgname.c_str(), chkname.c_str(), true); return insert_normalized(orgname.c_str(), chkname.c_str(), true);
} }
} }
@ -135,10 +135,10 @@ bool S3ObjList::insert(const char* name, const char* etag, bool is_dir)
} }
// add normalization // add normalization
return insert_nomalized(orgname.c_str(), newname.c_str(), is_dir); return insert_normalized(orgname.c_str(), newname.c_str(), is_dir);
} }
bool S3ObjList::insert_nomalized(const char* name, const char* normalized, bool is_dir) bool S3ObjList::insert_normalized(const char* name, const char* normalized, bool is_dir)
{ {
if(!name || '\0' == name[0] || !normalized || '\0' == normalized[0]){ if(!name || '\0' == name[0] || !normalized || '\0' == normalized[0]){
return false; return false;
@ -441,7 +441,7 @@ AutoLock::~AutoLock()
// get user name from uid // get user name from uid
string get_username(uid_t uid) string get_username(uid_t uid)
{ {
static size_t maxlen = 0; // set onece static size_t maxlen = 0; // set once
char* pbuf; char* pbuf;
struct passwd pwinfo; struct passwd pwinfo;
struct passwd* ppwinfo = NULL; struct passwd* ppwinfo = NULL;
@ -476,9 +476,9 @@ string get_username(uid_t uid)
return name; return name;
} }
int is_uid_inculde_group(uid_t uid, gid_t gid) int is_uid_include_group(uid_t uid, gid_t gid)
{ {
static size_t maxlen = 0; // set onece static size_t maxlen = 0; // set once
int result; int result;
char* pbuf; char* pbuf;
struct group ginfo; struct group ginfo;
@ -599,7 +599,7 @@ bool check_exist_dir_permission(const char* dirpath)
// could not access directory // could not access directory
return false; return false;
} }
// somthing error occured // something error occurred
return false; return false;
} }
@ -616,7 +616,7 @@ bool check_exist_dir_permission(const char* dirpath)
return false; return false;
} }
}else{ }else{
if(1 == is_uid_inculde_group(myuid, st.st_gid)){ if(1 == is_uid_include_group(myuid, st.st_gid)){
if(S_IRWXG != (st.st_mode & S_IRWXG)){ if(S_IRWXG != (st.st_mode & S_IRWXG)){
return false; return false;
} }
@ -959,7 +959,7 @@ void show_help (void)
" with \":\" separator.) This option is used to decide the\n" " with \":\" separator.) This option is used to decide the\n"
" SSE type. So that if you do not want to encrypt a object\n" " SSE type. So that if you do not want to encrypt a object\n"
" object at uploading, but you need to decrypt encrypted\n" " object at uploading, but you need to decrypt encrypted\n"
" object at downloaing, you can use load_sse_c option instead\n" " object at downloading, you can use load_sse_c option instead\n"
" of this option.\n" " of this option.\n"
" For setting SSE-KMS, specify \"use_sse=kmsid\" or\n" " For setting SSE-KMS, specify \"use_sse=kmsid\" or\n"
" \"use_sse=kmsid:<kms id>\". You can use \"k\" for short \"kmsid\".\n" " \"use_sse=kmsid:<kms id>\". You can use \"k\" for short \"kmsid\".\n"
@ -971,9 +971,9 @@ void show_help (void)
" region.\n" " region.\n"
"\n" "\n"
" load_sse_c - specify SSE-C keys\n" " load_sse_c - specify SSE-C keys\n"
" Specify the custom-provided encription keys file path for decrypting\n" " Specify the custom-provided encryption keys file path for decrypting\n"
" at duwnloading.\n" " at downloading.\n"
" If you use the custom-provided encription key at uploading, you\n" " If you use the custom-provided encryption key at uploading, you\n"
" specify with \"use_sse=custom\". The file has many lines, one line\n" " specify with \"use_sse=custom\". The file has many lines, one line\n"
" means one custom key. So that you can keep all SSE-C keys in file,\n" " means one custom key. So that you can keep all SSE-C keys in file,\n"
" that is SSE-C key history. AWSSSECKEYS environment is as same as this\n" " that is SSE-C key history. AWSSSECKEYS environment is as same as this\n"
@ -1131,7 +1131,7 @@ void show_help (void)
" nocopyapi, then s3fs ignores it.\n" " nocopyapi, then s3fs ignores it.\n"
"\n" "\n"
" use_path_request_style (use legacy API calling style)\n" " use_path_request_style (use legacy API calling style)\n"
" Enble compatibility with S3-like APIs which do not support\n" " Enable compatibility with S3-like APIs which do not support\n"
" the virtual-host request style, by using the older path request\n" " the virtual-host request style, by using the older path request\n"
" style.\n" " style.\n"
"\n" "\n"
@ -1169,7 +1169,7 @@ void show_help (void)
" -d --debug Turn on DEBUG messages to syslog. Specifying -d\n" " -d --debug Turn on DEBUG messages to syslog. Specifying -d\n"
" twice turns on FUSE debug messages to STDOUT.\n" " twice turns on FUSE debug messages to STDOUT.\n"
" -f FUSE foreground option - do not run as daemon.\n" " -f FUSE foreground option - do not run as daemon.\n"
" -s FUSE singlethread option\n" " -s FUSE singlethreaded option\n"
" disable multi-threaded operation\n" " disable multi-threaded operation\n"
"\n" "\n"
"\n" "\n"

View File

@ -27,7 +27,7 @@
// Struct // Struct
// //
struct s3obj_entry{ struct s3obj_entry{
std::string normalname; // normalized name: if empty, object is nomalized name. std::string normalname; // normalized name: if empty, object is normalized name.
std::string orgname; // original name: if empty, object is original name. std::string orgname; // original name: if empty, object is original name.
std::string etag; std::string etag;
bool is_dir; bool is_dir;
@ -47,7 +47,7 @@ class S3ObjList
s3obj_t objects; s3obj_t objects;
private: private:
bool insert_nomalized(const char* name, const char* normalized, bool is_dir); bool insert_normalized(const char* name, const char* normalized, bool is_dir);
const s3obj_entry* GetS3Obj(const char* name) const; const s3obj_entry* GetS3Obj(const char* name) const;
s3obj_t::const_iterator begin(void) const { s3obj_t::const_iterator begin(void) const {
@ -104,7 +104,7 @@ MVNODE *add_mvnode(MVNODE** head, MVNODE** tail, const char *old_path, const cha
void free_mvnodes(MVNODE *head); void free_mvnodes(MVNODE *head);
std::string get_username(uid_t uid); std::string get_username(uid_t uid);
int is_uid_inculde_group(uid_t uid, gid_t gid); int is_uid_include_group(uid_t uid, gid_t gid);
std::string mydirname(const char* path); std::string mydirname(const char* path);
std::string mydirname(std::string path); std::string mydirname(std::string path);

View File

@ -1,4 +1,4 @@
# S3FS: Samlpe ahbe_conf parameter file. # S3FS: Sample ahbe_conf parameter file.
# #
# This file is configuration file for additional header by extension(ahbe). # This file is configuration file for additional header by extension(ahbe).
# s3fs loads this file at starting. # s3fs loads this file at starting.