X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Futils%2Fcommon%2Fcommon.c;h=2cebc0d5f067f4627114bcf962e33936b6d41c93;hb=f43a473fd8ffa483bd7d74579a22886ab2df9101;hp=6ee4e081fb3f765b652406bd9c4f7fdb8d5ed045;hpb=93c4facaf7b6e35e032c3d46631097e34891d588;p=collectd.git diff --git a/src/utils/common/common.c b/src/utils/common/common.c index 6ee4e081..2cebc0d5 100644 --- a/src/utils/common/common.c +++ b/src/utils/common/common.c @@ -89,8 +89,7 @@ char *sstrncpy(char *dest, const char *src, size_t n) { return dest; } /* char *sstrncpy */ -/* ssnprintf returns zero on success, one if truncation occurred - and a negative integer onerror. */ +/* ssnprintf returns result from vsnprintf conistent with snprintf */ int ssnprintf(char *str, size_t sz, const char *format, ...) { va_list ap; va_start(ap, format); @@ -99,10 +98,7 @@ int ssnprintf(char *str, size_t sz, const char *format, ...) { va_end(ap); - if (ret < 0) { - return ret; - } - return (size_t)ret >= sz; + return ret; } /* int ssnprintf */ char *ssnprintf_alloc(char const *format, ...) /* {{{ */ @@ -181,7 +177,7 @@ char *sstrerror(int errnum, char *buf, size_t buflen) { pthread_mutex_unlock(&strerror_r_lock); } -/* #endif !HAVE_STRERROR_R */ + /* #endif !HAVE_STRERROR_R */ #elif STRERROR_R_CHAR_P { @@ -191,17 +187,19 @@ char *sstrerror(int errnum, char *buf, size_t buflen) { if ((temp != NULL) && (temp != buf) && (temp[0] != '\0')) sstrncpy(buf, temp, buflen); else - sstrncpy(buf, "strerror_r did not return " - "an error message", + sstrncpy(buf, + "strerror_r did not return " + "an error message", buflen); } } -/* #endif STRERROR_R_CHAR_P */ + /* #endif STRERROR_R_CHAR_P */ #else if (strerror_r(errnum, buf, buflen) != 0) { - snprintf(buf, buflen, "Error #%i; " - "Additionally, strerror_r failed.", + snprintf(buf, buflen, + "Error #%i; " + "Additionally, strerror_r failed.", errnum); } #endif /* STRERROR_R_CHAR_P */ @@ -767,8 +765,8 @@ unsigned long long htonll(unsigned long long n) { #endif /* HAVE_HTONLL */ #if FP_LAYOUT_NEED_NOTHING -/* Well, we need nothing.. */ -/* #endif FP_LAYOUT_NEED_NOTHING */ + /* Well, we need nothing.. */ + /* #endif FP_LAYOUT_NEED_NOTHING */ #elif FP_LAYOUT_NEED_ENDIANFLIP || FP_LAYOUT_NEED_INTSWAP #if FP_LAYOUT_NEED_ENDIANFLIP @@ -1265,7 +1263,7 @@ int walk_directory(const char *dir, dirwalk_callback_f callback, return 0; } -ssize_t read_file_contents(const char *filename, char *buf, size_t bufsize) { +ssize_t read_file_contents(const char *filename, void *buf, size_t bufsize) { FILE *fh; ssize_t ret; @@ -1283,6 +1281,16 @@ ssize_t read_file_contents(const char *filename, char *buf, size_t bufsize) { return ret; } +ssize_t read_text_file_contents(const char *filename, char *buf, + size_t bufsize) { + ssize_t ret = read_file_contents(filename, buf, bufsize - 1); + if (ret < 0) + return ret; + + buf[ret] = '\0'; + return ret + 1; +} + counter_t counter_diff(counter_t old_value, counter_t new_value) { counter_t diff; @@ -1454,13 +1462,13 @@ int service_name_to_port_number(const char *service_name) { service_number = (int)ntohs(sa->sin6_port); } - if ((service_number > 0) && (service_number <= 65535)) + if (service_number > 0) break; } freeaddrinfo(ai_list); - if ((service_number > 0) && (service_number <= 65535)) + if (service_number > 0) return service_number; return -1; } /* int service_name_to_port_number */