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 非空句柄