summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author彭宣正 <[email protected]>2021-03-29 18:42:20 +0800
committer彭宣正 <[email protected]>2021-03-29 18:42:20 +0800
commit88a38be0922d1b2f6e2e5335dc407d78d2889d08 (patch)
tree86f622168e90e2bb7077a74194cad29a2fcb3580 /src
parentb1e698ab82b5d70d7e74a8d7a42cc3c9ba8ab683 (diff)
✨feat(hos_get_error_msg和hos_get_error_num): 增加hos创建失败的错误输出v1.0.18
Diffstat (limited to 'src')
-rw-r--r--src/hos_client.cpp17
-rw-r--r--src/hos_client.h14
2 files changed, 29 insertions, 2 deletions
diff --git a/src/hos_client.cpp b/src/hos_client.cpp
index cd901cd2..f01156b6 100644
--- a/src/hos_client.cpp
+++ b/src/hos_client.cpp
@@ -84,6 +84,18 @@ hos_info_t *hash_hos_info[MAX_HOS_CLIENT_THREAD_NUM];
size_t *hos_cache;//记录当前hos缓存了多少数据
size_t fd_info[MAX_HOS_CLIENT_THREAD_NUM][MAX_HOS_CLIENT_FD_NUM + 1]; //fd 实际从3开始, fd[thread_id][0]记录register的fd,fd[thread_id][1]记录inject的fd
Aws::SDKOptions g_options;
+static char g_hos_error_msg[1024];
+static size_t g_hos_error_num;
+
+char *hos_get_error_msg()
+{
+ return g_hos_error_msg;
+}
+
+size_t hos_get_error_num()
+{
+ return g_hos_error_num;
+}
static inline size_t get_current_ms()
{
@@ -201,6 +213,9 @@ hos_client_handle hos_client_create(const char *serverip, size_t port, const cha
{
if (!serverip || !accesskeyid || !secretkey)
{
+ g_hos_error_num = HOS_PARAMETER_ERROR;
+ snprintf(g_hos_error_msg, sizeof(g_hos_error_msg) - 1, "Error: Parameter is null. serverip:%s,port:%lu, accesskeyid:%s, secretkey:%s, pool_size:%lu\n",
+ serverip, port, accesskeyid, secretkey, pool_size);
return NULL;
}
@@ -234,6 +249,8 @@ hos_client_handle hos_client_create(const char *serverip, size_t port, const cha
Aws::ShutdownAPI(g_options);
free(g_hos_handle);
g_hos_handle = NULL;
+ g_hos_error_num = (size_t)outcome.GetError().GetErrorType() + 1;
+ snprintf(g_hos_error_msg, sizeof(g_hos_error_msg) - 1, outcome.GetError().GetMessage().c_str());
return NULL;
}
diff --git a/src/hos_client.h b/src/hos_client.h
index 730df87c..710ddf4d 100644
--- a/src/hos_client.h
+++ b/src/hos_client.h
@@ -76,16 +76,26 @@ enum s3errors
typedef void (*put_finished_callback)(bool, const char *, const char *, const char *, void *);
/*************************************************************************************
- * 函数名: hos_client_init
+ * 函数名: hos_client_handle
* 参数: const char *serverip 目的地址,如"192.168.44.12"
* size_t port 端口号
* const char *accesskeyid AWS access key ID,如”default“
* const char *secretkey AWS secret key,如”default“
* size_t thread_sum 线程总数
- * 返回值: 成功返回一个非空句柄,失败返回NULL。(失败原因都是因为输入参数不合法)
+ * 返回值: 成功返回一个非空句柄,失败返回NULL。
*************************************************************************************/
hos_client_handle hos_client_create(const char *serverip, size_t port, const char *accesskeyid, const char *secretkey, size_t pool_size);
/*************************************************************************************
+ * 函数名: hos_get_error_msg
+ * 返回值: hos_client_create创建失败的原因
+*************************************************************************************/
+char *hos_get_error_msg();
+/*************************************************************************************
+ * 函数名: hos_get_error_num
+ * 返回值: hos_client_create创建失败的错误码
+*************************************************************************************/
+size_t hos_get_error_num();
+/*************************************************************************************
* 函数名: hos_create_bucket
* 参数: hos_client_handle handle 非空句柄
* const char * bucket 桶名称