+int plugin_register_complex_read(const char *group, const char *name,
+ int (*callback)(user_data_t *),
+ cdtime_t interval,
+ user_data_t const *user_data) {
+ return ENOTSUP;
+}
+
+int plugin_register_shutdown(const char *name, int (*callback)(void)) {
+ return ENOTSUP;
+}
+
+int plugin_register_data_set(const data_set_t *ds) { return ENOTSUP; }
+
+int plugin_dispatch_values(value_list_t const *vl) { return ENOTSUP; }
+
+int plugin_dispatch_notification(__attribute__((unused))
+ const notification_t *notif) {
+ return ENOTSUP;
+}
+
+int plugin_notification_meta_add_string(__attribute__((unused))
+ notification_t *n,
+ __attribute__((unused))
+ const char *name,
+ __attribute__((unused))
+ const char *value) {
+ return ENOTSUP;
+}
+
+int plugin_notification_meta_add_signed_int(__attribute__((unused))
+ notification_t *n,
+ __attribute__((unused))
+ const char *name,
+ __attribute__((unused))
+ int64_t value) {
+ return ENOTSUP;
+}
+
+int plugin_notification_meta_add_unsigned_int(__attribute__((unused))
+ notification_t *n,
+ __attribute__((unused))
+ const char *name,
+ __attribute__((unused))
+ uint64_t value) {
+ return ENOTSUP;
+}
+
+int plugin_notification_meta_add_double(__attribute__((unused))
+ notification_t *n,
+ __attribute__((unused))
+ const char *name,
+ __attribute__((unused)) double value) {
+ return ENOTSUP;
+}
+
+int plugin_notification_meta_add_boolean(__attribute__((unused))
+ notification_t *n,
+ __attribute__((unused))
+ const char *name,
+ __attribute__((unused)) _Bool value) {
+ return ENOTSUP;
+}
+
+int plugin_notification_meta_copy(__attribute__((unused)) notification_t *dst,
+ __attribute__((unused))
+ const notification_t *src) {
+ return ENOTSUP;
+}
+
+int plugin_notification_meta_free(__attribute__((unused))
+ notification_meta_t *n) {
+ return ENOTSUP;
+}
+
+int plugin_flush(const char *plugin, cdtime_t timeout, const char *identifier) {
+ return ENOTSUP;
+}
+
+static data_source_t magic_ds[] = {{"value", DS_TYPE_DERIVE, 0.0, NAN}};
+static data_set_t magic = {"MAGIC", 1, magic_ds};
+const data_set_t *plugin_get_ds(const char *name) {
+ if (strcmp(name, "MAGIC"))
+ return NULL;
+
+ return &magic;
+}
+
+void plugin_log(int level, char const *format, ...) {
+ char buffer[1024];
+ va_list ap;
+
+ va_start(ap, format);
+ vsnprintf(buffer, sizeof(buffer), format, ap);
+ va_end(ap);
+
+ printf("plugin_log (%i, \"%s\");\n", level, buffer);
+}
+
+void daemon_log(int level, char const *format, ...) {