- strlcat (buffer, "{\"host\":\"", sizeof (buffer));
- ADD_FIELD (host);
- strlcat (buffer, "\",\"plugin\":\"", sizeof (buffer));
- ADD_FIELD (plugin);
- strlcat (buffer, "\",\"plugin_instance\":\"", sizeof (buffer));
- ADD_FIELD (plugin_instance);
- strlcat (buffer, "\",\"type\":\"", sizeof (buffer));
- ADD_FIELD (type);
- strlcat (buffer, "\",\"type_instance\":\"", sizeof (buffer));
- ADD_FIELD (type_instance);
- strlcat (buffer, "\"}", sizeof (buffer));
+#define CHECK_FIELD(field) do { \
+ if (strcasecmp (selector->field, ident->field) != 0) \
+ { \
+ if (buffer[0] != 0) \
+ strlcat (buffer, "/", buffer_size); \
+ strlcat (buffer, ident->field, buffer_size); \
+ } \
+} while (0)
+
+ CHECK_FIELD (host);
+ CHECK_FIELD (plugin);
+ CHECK_FIELD (plugin_instance);
+ CHECK_FIELD (type);
+ CHECK_FIELD (type_instance);