From 8b2f16a2320cd9e7c17298ffb17d2758d8fbb4a4 Mon Sep 17 00:00:00 2001 From: apady Date: Wed, 28 Nov 2018 23:19:15 +0800 Subject: [PATCH 1/8] SDK BUG FIX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bug: bfs_change_replica_num()接口找不到定义 原因:bfs_c.cc函数命名与bfs_c.h命名不一致 --- .gitignore | 1 + src/sdk/bfs_c.cc | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 57b5c7ce..5d562c0d 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ thirdparty output .build src/version.cc +.DS_Store diff --git a/src/sdk/bfs_c.cc b/src/sdk/bfs_c.cc index 75ce0795..f1e376c7 100644 --- a/src/sdk/bfs_c.cc +++ b/src/sdk/bfs_c.cc @@ -341,7 +341,7 @@ int bfs_rm_dir(bfs_fs_t* fs, const char* path, bool recursive) { return fs->bfs_fs->DeleteDirectory(path, recursive); } -int bfs_change_bfs_fslica_num(bfs_fs_t* fs, const char* path, +int bfs_change_replica_num(bfs_fs_t* fs, const char* path, const char* bfs_fslica_num) { if (!isdigit(*bfs_fslica_num)) { return -1; From b20cac10aba834c3964323deee35227962478279 Mon Sep 17 00:00:00 2001 From: apady Date: Wed, 28 Nov 2018 23:36:53 +0800 Subject: [PATCH 2/8] sdk bug fix bfs_change_replica_num() --- src/sdk/bfs_c.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sdk/bfs_c.cc b/src/sdk/bfs_c.cc index f1e376c7..3f4426f4 100644 --- a/src/sdk/bfs_c.cc +++ b/src/sdk/bfs_c.cc @@ -342,7 +342,7 @@ int bfs_rm_dir(bfs_fs_t* fs, const char* path, bool recursive) { } int bfs_change_replica_num(bfs_fs_t* fs, const char* path, - const char* bfs_fslica_num) { + const char* bfs_fslica_num) { if (!isdigit(*bfs_fslica_num)) { return -1; } From 9a53b60ea7b58d73c681cf36d52a78252b6d82d2 Mon Sep 17 00:00:00 2001 From: apady Date: Wed, 28 Nov 2018 23:41:01 +0800 Subject: [PATCH 3/8] Update bfs_c.cc --- src/sdk/bfs_c.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sdk/bfs_c.cc b/src/sdk/bfs_c.cc index 3f4426f4..7ae2bdc3 100644 --- a/src/sdk/bfs_c.cc +++ b/src/sdk/bfs_c.cc @@ -340,9 +340,9 @@ int bfs_du(bfs_fs_t* fs, const char* path) { int bfs_rm_dir(bfs_fs_t* fs, const char* path, bool recursive) { return fs->bfs_fs->DeleteDirectory(path, recursive); } - +//bug 修复 int bfs_change_replica_num(bfs_fs_t* fs, const char* path, - const char* bfs_fslica_num) { + const char* bfs_fslica_num) { if (!isdigit(*bfs_fslica_num)) { return -1; } From 4e7977323dfdd0cdd19f72e42735ff0602d6c5a9 Mon Sep 17 00:00:00 2001 From: apady Date: Thu, 29 Nov 2018 15:04:46 +0800 Subject: [PATCH 4/8] Update bfs_c.cc --- src/sdk/bfs_c.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sdk/bfs_c.cc b/src/sdk/bfs_c.cc index 7ae2bdc3..c635e10c 100644 --- a/src/sdk/bfs_c.cc +++ b/src/sdk/bfs_c.cc @@ -340,7 +340,7 @@ int bfs_du(bfs_fs_t* fs, const char* path) { int bfs_rm_dir(bfs_fs_t* fs, const char* path, bool recursive) { return fs->bfs_fs->DeleteDirectory(path, recursive); } -//bug 修复 + int bfs_change_replica_num(bfs_fs_t* fs, const char* path, const char* bfs_fslica_num) { if (!isdigit(*bfs_fslica_num)) { From 83cde50469b1903f11b47744e7f6a02f48675bee Mon Sep 17 00:00:00 2001 From: apady Date: Sat, 1 Dec 2018 00:31:17 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0SDK=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 开放bfs_change_replica_num(); 增加bfs_status() API; --- src/sdk/bfs_c.cc | 12 ++++++++++++ src/sdk/bfs_c.h | 1 + src/sdk/fs_impl.cc | 6 +++--- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/sdk/bfs_c.cc b/src/sdk/bfs_c.cc index c635e10c..f0b83188 100644 --- a/src/sdk/bfs_c.cc +++ b/src/sdk/bfs_c.cc @@ -374,5 +374,17 @@ int bfs_location(bfs_fs_t* fs, const char* path) { return 0; } +int bfs_status(bfs_fs_t* fs, const char* &status){ + std::string stat_name("StatAll"); + std::string result; + int32_t ret = fs->bfs_fs->SysStat(stat_name, &result); + if (ret != 0) { + return ret; + } + status=result.c_str(); + return ret; + +} + } /* vim: set expandtab ts=4 sw=4 sts=4 tw=100: */ diff --git a/src/sdk/bfs_c.h b/src/sdk/bfs_c.h index 33c54719..43a40fcf 100644 --- a/src/sdk/bfs_c.h +++ b/src/sdk/bfs_c.h @@ -38,6 +38,7 @@ int bfs_rm_dir(bfs_fs_t* fs, const char* path, bool recursive); int bfs_change_replica_num(bfs_fs_t* fs, const char* path, const char* replica_num); int bfs_chmod(bfs_fs_t* fs, const char* str_mode, const char* path); int bfs_location(bfs_fs_t* fs, const char* path); +int bfs_status(bfs_fs_t* fs, const char* &status); #ifdef __cplusplus }/*end extern "C" */ diff --git a/src/sdk/fs_impl.cc b/src/sdk/fs_impl.cc index 473567f6..c000c0d0 100644 --- a/src/sdk/fs_impl.cc +++ b/src/sdk/fs_impl.cc @@ -453,7 +453,7 @@ int32_t FSImpl::Rename(const char* oldpath, const char* newpath) { return OK; } int32_t FSImpl::ChangeReplicaNum(const char* file_name, int32_t replica_num) { - /* + ChangeReplicaNumRequest request; ChangeReplicaNumResponse response; request.set_file_name(file_name); @@ -471,8 +471,8 @@ int32_t FSImpl::ChangeReplicaNum(const char* file_name, int32_t replica_num) { file_name, replica_num, StatusCode_Name(response.status()).c_str()); return GetErrorCode(response.status()); } - */ - return PERMISSION_DENIED; + + return OK; } int32_t FSImpl::Symlink(const char* src, const char* dst) From ae00bdd8c239aa6b37cdc17e0f5c5ac768f36549 Mon Sep 17 00:00:00 2001 From: Frank Chen Date: Mon, 3 Dec 2018 12:25:39 +0800 Subject: [PATCH 6/8] Update bfs_c.cc --- src/sdk/bfs_c.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/sdk/bfs_c.cc b/src/sdk/bfs_c.cc index f0b83188..b1c46969 100644 --- a/src/sdk/bfs_c.cc +++ b/src/sdk/bfs_c.cc @@ -378,9 +378,6 @@ int bfs_status(bfs_fs_t* fs, const char* &status){ std::string stat_name("StatAll"); std::string result; int32_t ret = fs->bfs_fs->SysStat(stat_name, &result); - if (ret != 0) { - return ret; - } status=result.c_str(); return ret; From 6da8cd1dc859e3ef0d510f1fc47d165adc412fee Mon Sep 17 00:00:00 2001 From: apady Date: Mon, 3 Dec 2018 21:20:42 +0800 Subject: [PATCH 7/8] update bfs_status() --- src/sdk/bfs_c.cc | 9 +++++++-- src/sdk/bfs_c.h | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/sdk/bfs_c.cc b/src/sdk/bfs_c.cc index b1c46969..c31a121b 100644 --- a/src/sdk/bfs_c.cc +++ b/src/sdk/bfs_c.cc @@ -374,11 +374,16 @@ int bfs_location(bfs_fs_t* fs, const char* path) { return 0; } -int bfs_status(bfs_fs_t* fs, const char* &status){ +int bfs_status(bfs_fs_t* fs, char* &status){ std::string stat_name("StatAll"); std::string result; int32_t ret = fs->bfs_fs->SysStat(stat_name, &result); - status=result.c_str(); + if(status != NULL) + delete []status; + if(result.length()>0){ + status=new char[result.length()+1]; + strcpy(status,result.c_str()); + } return ret; } diff --git a/src/sdk/bfs_c.h b/src/sdk/bfs_c.h index 43a40fcf..ab63a7fc 100644 --- a/src/sdk/bfs_c.h +++ b/src/sdk/bfs_c.h @@ -38,7 +38,7 @@ int bfs_rm_dir(bfs_fs_t* fs, const char* path, bool recursive); int bfs_change_replica_num(bfs_fs_t* fs, const char* path, const char* replica_num); int bfs_chmod(bfs_fs_t* fs, const char* str_mode, const char* path); int bfs_location(bfs_fs_t* fs, const char* path); -int bfs_status(bfs_fs_t* fs, const char* &status); +int bfs_status(bfs_fs_t* fs, char* &status); #ifdef __cplusplus }/*end extern "C" */ From e66abdb3f7f5e102e0fbb33038769fd3c2609b88 Mon Sep 17 00:00:00 2001 From: apady Date: Mon, 3 Dec 2018 23:52:18 +0800 Subject: [PATCH 8/8] Imporove bfs_status() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit status 可能成为野指针 --- src/sdk/bfs_c.cc | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/sdk/bfs_c.cc b/src/sdk/bfs_c.cc index c31a121b..4727d976 100644 --- a/src/sdk/bfs_c.cc +++ b/src/sdk/bfs_c.cc @@ -377,15 +377,20 @@ int bfs_location(bfs_fs_t* fs, const char* path) { int bfs_status(bfs_fs_t* fs, char* &status){ std::string stat_name("StatAll"); std::string result; - int32_t ret = fs->bfs_fs->SysStat(stat_name, &result); - if(status != NULL) - delete []status; + int32_t ret = fs->bfs_fs->SysStat(stat_name, &result); + if(ret !=0){ + return ret; + } if(result.length()>0){ + if(status != NULL) + delete []status; status=new char[result.length()+1]; - strcpy(status,result.c_str()); + strcpy(status,result.c_str()); + return 0; + }else{ + return -9; } - return ret; - + } }