From: hadaq Date: Sun, 8 Jan 2012 19:46:32 +0000 (+0000) Subject: support for RPC error messages added X-Git-Tag: v6.0~94 X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=b66c7b5acdd2bccedb74265e4d6755e75da53d28;p=trbnettools.git support for RPC error messages added --- diff --git a/libtrbnet/trberror.c b/libtrbnet/trberror.c index 0c6dbc1..7c52c57 100644 --- a/libtrbnet/trberror.c +++ b/libtrbnet/trberror.c @@ -1,6 +1,7 @@ #include #include #include +#include #include "trberror.h" @@ -31,16 +32,19 @@ void trb_error(const char *s) const char* trb_strerror() { - static char buffer[4096] = ""; + static unsigned int buffer_ctr = 0; + static char buffer[8][256]; + + buffer_ctr = buffer_ctr > 7 ? 0 : buffer_ctr + 1; if ((trb_errno == TRB_STATUS_ERROR) || (trb_errno == TRB_STATUS_WARNING)) { - snprintf(buffer, 4096, "%s\n%s", + snprintf(buffer[buffer_ctr], 256, "%s\n%s", trb_errorstr(trb_errno), trb_termstr(trb_term)); } else { - snprintf(buffer, 4096, "%s", trb_errorstr(trb_errno)); + snprintf(buffer[buffer_ctr], 256, "%s", trb_errorstr(trb_errno)); } - return buffer; + return buffer[buffer_ctr]; } const char* trb_errorstr(int trberrno) @@ -75,7 +79,7 @@ const char* trb_errorstr(int trberrno) "SEMAPHORE Error", "FIFO Shared Memory Error", "Termination Status Warning", - "RPC Error", + "RPC server function call Error", "Pexor DATA Error", "Pexor Device Error ioctl call, Driver Error", @@ -89,9 +93,12 @@ const char* trb_errorstr(int trberrno) if (trberrno < 36) { return errorstring[trberrno]; - } else { - return "Unknown Error"; } + if (trberrno >= 256) { + /* RPC Error */ + return clnt_sperrno(trberrno - 256); + } + return "Unknown Error"; } const char* trb_termstr(TRB_TERM term)