summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 288fdea)
raw | patch | inline | side by side (parent: 288fdea)
author | Florian Forster <octo@leeloo.lan.home.verplant.org> | |
Sat, 8 Nov 2008 16:57:04 +0000 (17:57 +0100) | ||
committer | Florian Forster <octo@leeloo.lan.home.verplant.org> | |
Sat, 8 Nov 2008 16:57:04 +0000 (17:57 +0100) |
src/libcollectdclient/client.c | patch | blob | history | |
src/libcollectdclient/client.h | patch | blob | history |
index 768554494ea96bb7c521b9e4c651e2dc5e7494d7..2ec277424c56d027a01232aeed5104c5011c1b59 100644 (file)
return (0);
} /* }}} int lcc_putval */
-/* TODO: Implement lcc_flush */
-int lcc_flush (lcc_connection_t *c, lcc_identifier_t *ident, int timeout);
+int lcc_flush (lcc_connection_t *c, const char *plugin, /* {{{ */
+ lcc_identifier_t *ident, int timeout)
+{
+ char command[1024];
+ lcc_response_t res;
+ int status;
+
+ if (c == NULL)
+ {
+ lcc_set_errno (c, EINVAL);
+ return (-1);
+ }
+
+ SSTRCPY (command, "FLUSH");
+
+ if (timeout > 0)
+ SSTRCATF (command, " timeout=%i", timeout);
+
+ if (plugin != NULL)
+ {
+ char buffer[2 * LCC_NAME_LEN];
+ SSTRCATF (command, " plugin=%s",
+ lcc_strescape (buffer, plugin, sizeof (buffer)));
+ }
+
+ if (ident != NULL)
+ {
+ char ident_str[6 * LCC_NAME_LEN];
+ char ident_esc[12 * LCC_NAME_LEN];
+
+ status = lcc_identifier_to_string (c, ident_str, sizeof (ident_str), ident);
+ if (status != 0)
+ return (status);
+
+ SSTRCATF (command, " identifier=%s",
+ lcc_strescape (ident_esc, ident_str, sizeof (ident_esc)));
+ }
+
+ status = lcc_sendreceive (c, command, &res);
+ if (status != 0)
+ return (status);
+
+ if (res.status != 0)
+ {
+ LCC_SET_ERRSTR (c, "Server error: %s", res.message);
+ lcc_response_free (&res);
+ return (-1);
+ }
+
+ lcc_response_free (&res);
+ return (0);
+} /* }}} int lcc_flush */
/* TODO: Implement lcc_putnotif */
index c54e3b7a670adb7cfa69c34aa139018c2ee9c09d..a0ab94c7ed9d99318a66c7e68b9b9cfcaabc2685 100644 (file)
int lcc_putval (lcc_connection_t *c, const lcc_value_list_t *vl);
-int lcc_flush (lcc_connection_t *c, lcc_identifier_t *ident, int timeout);
+int lcc_flush (lcc_connection_t *c, const char *plugin,
+ lcc_identifier_t *ident, int timeout);
int lcc_listval (lcc_connection_t *c,
lcc_identifier_t **ret_ident, size_t *ret_ident_num);