From 88a38be0922d1b2f6e2e5335dc407d78d2889d08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E5=AE=A3=E6=AD=A3?= Date: Mon, 29 Mar 2021 18:42:20 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8feat(hos=5Fget=5Ferror=5Fmsg=E5=92=8Ch?= =?UTF-8?q?os=5Fget=5Ferror=5Fnum):=20=E5=A2=9E=E5=8A=A0hos=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=94=99=E8=AF=AF=E8=BE=93?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/usr/local/lib64/hos.conf | 1 + src/hos_client.cpp | 17 +++++++++++++++++ src/hos_client.h | 14 ++++++++++++-- 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 build/usr/local/lib64/hos.conf diff --git a/build/usr/local/lib64/hos.conf b/build/usr/local/lib64/hos.conf new file mode 100644 index 00000000..04ecf183 --- /dev/null +++ b/build/usr/local/lib64/hos.conf @@ -0,0 +1 @@ +/usr/local/lib64/ \ No newline at end of file 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,15 +76,25 @@ 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 非空句柄