Add second wrapper ssnprintf2 to allow introduction of error handling on truncation...
[collectd.git] / src / utils / common / common.c
index 7cfd310..2711c9d 100644 (file)
@@ -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,11 +98,24 @@ int ssnprintf(char *str, size_t sz, const char *format, ...) {
 
   va_end(ap);
 
+  return ret;
+} /* int ssnprintf */
+
+/* ssnprintf2 returns zero on success, one if truncation occurred
+   and a negative integer on error. */
+int ssnprintf2(char *str, size_t sz, const char *format, ...) {
+  va_list ap;
+  va_start(ap, format);
+
+  int ret = vsnprintf(str, sz, format, ap);
+
+  va_end(ap);
+
   if (ret < 0) {
     return ret;
   }
   return (size_t)ret >= sz;
-} /* int ssnprintf */
+} /* int ssnprintf2 */
 
 char *ssnprintf_alloc(char const *format, ...) /* {{{ */
 {
@@ -1456,13 +1468,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 */