nut plugin: Added a plugin to query the `upsd' from the `network ups tools'.
[collectd.git] / src / common.c
index 967a82a..6521a58 100644 (file)
@@ -500,7 +500,7 @@ unsigned long long ntohll (unsigned long long n)
 #else
        return (((unsigned long long) ntohl (n)) << 32) + ntohl (n >> 32);
 #endif
-}
+} /* unsigned long long ntohll */
 
 unsigned long long htonll (unsigned long long n)
 {
@@ -509,4 +509,41 @@ unsigned long long htonll (unsigned long long n)
 #else
        return (((unsigned long long) htonl (n)) << 32) + htonl (n >> 32);
 #endif
-}
+} /* unsigned long long htonll */
+
+int format_name (char *ret, int ret_len,
+               const char *hostname,
+               const char *plugin, const char *plugin_instance,
+               const char *type, const char *type_instance)
+{
+       int  status;
+
+       assert (plugin != NULL);
+       assert (type != NULL);
+
+       if ((plugin_instance == NULL) || (strlen (plugin_instance) == 0))
+       {
+               if ((type_instance == NULL) || (strlen (type_instance) == 0))
+                       status = snprintf (ret, ret_len, "%s/%s/%s",
+                                       hostname, plugin, type);
+               else
+                       status = snprintf (ret, ret_len, "%s/%s/%s-%s",
+                                       hostname, plugin, type,
+                                       type_instance);
+       }
+       else
+       {
+               if ((type_instance == NULL) || (strlen (type_instance) == 0))
+                       status = snprintf (ret, ret_len, "%s/%s-%s/%s",
+                                       hostname, plugin, plugin_instance,
+                                       type);
+               else
+                       status = snprintf (ret, ret_len, "%s/%s-%s/%s-%s",
+                                       hostname, plugin, plugin_instance,
+                                       type, type_instance);
+       }
+
+       if ((status < 1) || (status >= ret_len))
+               return (-1);
+       return (0);
+} /* int format_name */