From 5026f256928cc3d3d6768faa63249bd343a4dd74 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期二, 07 九月 2021 16:14:25 +0800
Subject: [PATCH] 调整defer C.BHFree的执行顺序
---
src/bus_error.cpp | 56 +++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 43 insertions(+), 13 deletions(-)
diff --git a/src/bus_error.cpp b/src/bus_error.cpp
index 6cee508..29d5683 100644
--- a/src/bus_error.cpp
+++ b/src/bus_error.cpp
@@ -11,11 +11,21 @@
static pthread_key_t strerrorKey;
-static char *_bus_errlist[_bus_nerr] = {
+static const char *_bus_errlist[_bus_nerr] = {
"\0",
- "timeout",
+ "Timed out",
"The other end is not inline",
- "Key already in use"
+ "Key already in use",
+ "Network fault",
+ "Send to self error",
+ "Receive from wrong end",
+ "Service stoped",
+ "Exceed resource limit",
+ "Service not supported",
+ "Resource busy",
+ "Resource not provide",
+ "Invalid parameters",
+ "No enough memory"
};
@@ -41,10 +51,13 @@
char *
bus_strerror(int err)
{
- int s, eindex;
+ int s;
char *buf;
- eindex = err - 10000;
/* Make first caller allocate key for thread-specific data */
+
+ if (err == 0) {
+ err = EBUS_BASE;
+ }
s = pthread_once(&once, createKey);
if (s != 0)
@@ -64,14 +77,31 @@
err_exit(s, "pthread_setspecific");
}
- if (eindex < 0 || eindex >= _bus_nerr || _bus_errlist[eindex] == NULL)
- {
- snprintf(buf, MAX_ERROR_LEN, "Unknown error %d", eindex);
- }
- else
- {
- strncpy(buf, _bus_errlist[eindex], MAX_ERROR_LEN - 1);
- buf[MAX_ERROR_LEN - 1] = '\0'; /* Ensure null termination */
+
+ if(err < EBUS_BASE) {
+ // libc閿欒
+ if (err < 0 || err >= _sys_nerr || _sys_errlist[err] == NULL)
+ {
+ snprintf(buf, MAX_ERROR_LEN, "Unknown error %d", err);
+ }
+ else
+ {
+ strncpy(buf, _sys_errlist[err], MAX_ERROR_LEN - 1);
+ buf[MAX_ERROR_LEN - 1] = '\0'; /* Ensure null termination */
+ }
+ } else {
+ //鑷畾涔夐敊璇�
+ err -= EBUS_BASE;
+ if (err < 0 || err >= _bus_nerr || _bus_errlist[err] == NULL)
+ {
+ snprintf(buf, MAX_ERROR_LEN, "Unknown error %d", err);
+ }
+ else
+ {
+ strncpy(buf, _bus_errlist[err], MAX_ERROR_LEN - 1);
+ buf[MAX_ERROR_LEN - 1] = '\0'; /* Ensure null termination */
+ }
+
}
return buf;
--
Gitblit v1.8.0