]> git.ipfire.org Git - thirdparty/collectd.git/commitdiff
Remove the "ascent" plugin. 3557/head
authorFlorian Forster <octo@google.com>
Tue, 1 Sep 2020 08:54:15 +0000 (10:54 +0200)
committerFlorian Forster <octo@google.com>
Tue, 1 Sep 2020 08:54:15 +0000 (10:54 +0200)
Makefile.am
README
configure.ac
src/ascent.c [deleted file]
src/collectd.conf.in
src/collectd.conf.pod

index 3ad7e95f3ef0ca28c9a6e0a9ebe15a7c50a4f350..e49b1059b5482138dbe0fe6ace541637ac65919a 100644 (file)
@@ -749,19 +749,6 @@ aquaero_la_LDFLAGS = $(PLUGIN_LDFLAGS) $(BUILD_WITH_LIBAQUAERO5_LDFLAGS)
 aquaero_la_LIBADD = -laquaero5
 endif
 
-if BUILD_PLUGIN_ASCENT
-pkglib_LTLIBRARIES += ascent.la
-ascent_la_SOURCES = src/ascent.c
-ascent_la_CFLAGS = \
-       $(AM_CFLAGS) \
-       $(BUILD_WITH_LIBCURL_CFLAGS) \
-       $(BUILD_WITH_LIBXML2_CFLAGS)
-ascent_la_LDFLAGS = $(PLUGIN_LDFLAGS)
-ascent_la_LIBADD = \
-       $(BUILD_WITH_LIBCURL_LIBS) \
-       $(BUILD_WITH_LIBXML2_LIBS)
-endif
-
 if BUILD_PLUGIN_BAROMETER
 pkglib_LTLIBRARIES += barometer.la
 barometer_la_SOURCES = src/barometer.c
diff --git a/README b/README
index b13192f1bde4bebf967a6040a35e0b301a0d360f..a130cbbef8e677d05a8e0715778ef0b4460bee24 100644 (file)
--- a/README
+++ b/README
@@ -29,9 +29,6 @@ Features
     - aquaero
       Various sensors in the Aquaero 5 water cooling board made by Aquacomputer.
 
-    - ascent
-      Statistics about Ascent, a free server for the game `World of Warcraft'.
-
     - barometer
       Reads absolute barometric pressure, air pressure reduced to sea level and
       temperature.  Supported sensors are MPL115A2 and MPL3115 from Freescale
index 45b94ce0d2a6c7d207b27fd89698d7aba36f60fa..cbe1970e17f1128f3170e91e6dffc28bc9b04e24 100644 (file)
@@ -6565,7 +6565,6 @@ AC_COLLECTD([werror],    [disable], [feature], [building with -Werror])
 dependency_warning="no"
 dependency_error="no"
 
-plugin_ascent="no"
 plugin_barometer="no"
 plugin_battery="no"
 plugin_bind="no"
@@ -6796,13 +6795,6 @@ if test "x$with_libstatgrab" = "xyes"; then
   plugin_users="yes"
 fi
 
-if test "x$with_libcurl" = "xyes" && test "x$with_libxml2" = "xyes"; then
-  plugin_ascent="yes"
-  if test "x$have_strptime" = "xyes"; then
-    plugin_bind="yes"
-  fi
-fi
-
 if test "x$with_libopenipmipthread" = "xyes"; then
   plugin_ipmi="yes"
 fi
@@ -6817,6 +6809,9 @@ fi
 
 if test "x$with_libcurl" = "xyes" && test "x$with_libxml2" = "xyes"; then
   plugin_curl_xml="yes"
+  if test "x$have_strptime" = "xyes"; then
+    plugin_bind="yes"
+  fi
 fi
 
 if test "x$with_libyajl" = "xyes"; then
@@ -7015,7 +7010,6 @@ AC_PLUGIN([apache],              [$with_libcurl],             [Apache httpd stat
 AC_PLUGIN([apcups],              [yes],                       [Statistics of UPSes by APC])
 AC_PLUGIN([apple_sensors],       [$with_libiokit],            [Apple hardware sensors])
 AC_PLUGIN([aquaero],             [$with_libaquaero5],         [Aquaero hardware sensors])
-AC_PLUGIN([ascent],              [$plugin_ascent],            [AscentEmu player statistics])
 AC_PLUGIN([barometer],           [$plugin_barometer],         [Barometer sensor on I2C])
 AC_PLUGIN([battery],             [$plugin_battery],           [Battery statistics])
 AC_PLUGIN([bind],                [$plugin_bind],              [ISC Bind nameserver statistics])
@@ -7460,7 +7454,6 @@ AC_MSG_RESULT([    apache  . . . . . . . $enable_apache])
 AC_MSG_RESULT([    apcups  . . . . . . . $enable_apcups])
 AC_MSG_RESULT([    apple_sensors . . . . $enable_apple_sensors])
 AC_MSG_RESULT([    aquaero . . . . . . . $enable_aquaero])
-AC_MSG_RESULT([    ascent  . . . . . . . $enable_ascent])
 AC_MSG_RESULT([    barometer . . . . . . $enable_barometer])
 AC_MSG_RESULT([    battery . . . . . . . $enable_battery])
 AC_MSG_RESULT([    bind  . . . . . . . . $enable_bind])
diff --git a/src/ascent.c b/src/ascent.c
deleted file mode 100644 (file)
index 6240e31..0000000
+++ /dev/null
@@ -1,575 +0,0 @@
-/**
- * collectd - src/ascent.c
- * Copyright (C) 2008       Florian octo Forster
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- *   Florian octo Forster <octo at collectd.org>
- **/
-
-#include "collectd.h"
-
-#include "plugin.h"
-#include "utils/common/common.h"
-
-#include <curl/curl.h>
-#include <libxml/parser.h>
-
-static const char *races_list[] = /* {{{ */
-    {
-        NULL,       "Human",    /*  1 */
-        "Orc",                  /*  2 */
-        "Dwarf",                /*  3 */
-        "Nightelf",             /*  4 */
-        "Undead",               /*  5 */
-        "Tauren",               /*  6 */
-        "Gnome",                /*  7 */
-        "Troll",                /*  8 */
-        NULL,       "Bloodelf", /* 10 */
-        "Draenei"               /* 11 */
-};                              /* }}} */
-#define RACES_LIST_LENGTH STATIC_ARRAY_SIZE(races_list)
-
-static const char *classes_list[] = /* {{{ */
-    {
-        NULL,      "Warrior", /*  1 */
-        "Paladin",            /*  2 */
-        "Hunter",             /*  3 */
-        "Rogue",              /*  4 */
-        "Priest",             /*  5 */
-        NULL,      "Shaman",  /*  7 */
-        "Mage",               /*  8 */
-        "Warlock",            /*  9 */
-        NULL,      "Druid"    /* 11 */
-};                            /* }}} */
-#define CLASSES_LIST_LENGTH STATIC_ARRAY_SIZE(classes_list)
-
-static const char *genders_list[] = /* {{{ */
-    {"Male", "Female"};             /* }}} */
-#define GENDERS_LIST_LENGTH STATIC_ARRAY_SIZE(genders_list)
-
-struct player_stats_s {
-  int races[RACES_LIST_LENGTH];
-  int classes[CLASSES_LIST_LENGTH];
-  int genders[GENDERS_LIST_LENGTH];
-  int level_sum;
-  int level_num;
-  int latency_sum;
-  int latency_num;
-};
-typedef struct player_stats_s player_stats_t;
-
-struct player_info_s {
-  int race;
-  int class;
-  int gender;
-  int level;
-  int latency;
-};
-typedef struct player_info_s player_info_t;
-#define PLAYER_INFO_STATIC_INIT                                                \
-  { -1, -1, -1, -1, -1 }
-
-static char *url;
-static char *user;
-static char *pass;
-static char *verify_peer;
-static char *verify_host;
-static char *cacert;
-static char *timeout;
-
-static CURL *curl;
-
-static char *ascent_buffer;
-static size_t ascent_buffer_size;
-static size_t ascent_buffer_fill;
-static char ascent_curl_error[CURL_ERROR_SIZE];
-
-static const char *config_keys[] = {
-    "URL", "User", "Password", "VerifyPeer", "VerifyHost", "CACert", "Timeout",
-};
-static int config_keys_num = STATIC_ARRAY_SIZE(config_keys);
-
-static int ascent_submit_gauge(const char *plugin_instance, /* {{{ */
-                               const char *type, const char *type_instance,
-                               gauge_t value) {
-  value_list_t vl = VALUE_LIST_INIT;
-
-  vl.values = &(value_t){.gauge = value};
-  vl.values_len = 1;
-  sstrncpy(vl.plugin, "ascent", sizeof(vl.plugin));
-
-  if (plugin_instance != NULL)
-    sstrncpy(vl.plugin_instance, plugin_instance, sizeof(vl.plugin_instance));
-
-  sstrncpy(vl.type, type, sizeof(vl.type));
-
-  if (type_instance != NULL)
-    sstrncpy(vl.type_instance, type_instance, sizeof(vl.type_instance));
-
-  plugin_dispatch_values(&vl);
-  return 0;
-} /* }}} int ascent_submit_gauge */
-
-static size_t ascent_curl_callback(void *buf, size_t size,
-                                   size_t nmemb, /* {{{ */
-                                   void __attribute__((unused)) * stream) {
-  size_t len = size * nmemb;
-
-  if (len == 0)
-    return len;
-
-  if ((ascent_buffer_fill + len) >= ascent_buffer_size) {
-    char *temp;
-
-    temp = realloc(ascent_buffer, ascent_buffer_fill + len + 1);
-    if (temp == NULL) {
-      ERROR("ascent plugin: realloc failed.");
-      return 0;
-    }
-    ascent_buffer = temp;
-    ascent_buffer_size = ascent_buffer_fill + len + 1;
-  }
-
-  memcpy(ascent_buffer + ascent_buffer_fill, (char *)buf, len);
-  ascent_buffer_fill += len;
-  ascent_buffer[ascent_buffer_fill] = 0;
-
-  return len;
-} /* }}} size_t ascent_curl_callback */
-
-static int ascent_submit_players(player_stats_t *ps) /* {{{ */
-{
-  gauge_t value;
-
-  for (size_t i = 0; i < RACES_LIST_LENGTH; i++)
-    if (races_list[i] != NULL)
-      ascent_submit_gauge("by-race", "players", races_list[i],
-                          (gauge_t)ps->races[i]);
-
-  for (size_t i = 0; i < CLASSES_LIST_LENGTH; i++)
-    if (classes_list[i] != NULL)
-      ascent_submit_gauge("by-class", "players", classes_list[i],
-                          (gauge_t)ps->classes[i]);
-
-  for (size_t i = 0; i < GENDERS_LIST_LENGTH; i++)
-    if (genders_list[i] != NULL)
-      ascent_submit_gauge("by-gender", "players", genders_list[i],
-                          (gauge_t)ps->genders[i]);
-
-  if (ps->level_num <= 0)
-    value = NAN;
-  else
-    value = ((double)ps->level_sum) / ((double)ps->level_num);
-  ascent_submit_gauge(NULL, "gauge", "avg-level", value);
-
-  /* Latency is in ms, but we store seconds. */
-  if (ps->latency_num <= 0)
-    value = NAN;
-  else
-    value = ((double)ps->latency_sum) / (1000.0 * ((double)ps->latency_num));
-  ascent_submit_gauge(NULL, "latency", "average", value);
-
-  return 0;
-} /* }}} int ascent_submit_players */
-
-static int ascent_account_player(player_stats_t *ps, /* {{{ */
-                                 player_info_t *pi) {
-  if (pi->race >= 0) {
-    if (((size_t)pi->race >= RACES_LIST_LENGTH) ||
-        (races_list[pi->race] == NULL))
-      ERROR("ascent plugin: Ignoring invalid numeric race %i.", pi->race);
-    else
-      ps->races[pi->race]++;
-  }
-
-  if (pi->class >= 0) {
-    if (((size_t)pi->class >= CLASSES_LIST_LENGTH) ||
-        (classes_list[pi->class] == NULL))
-      ERROR("ascent plugin: Ignoring invalid numeric class %i.", pi->class);
-    else
-      ps->classes[pi->class]++;
-  }
-
-  if (pi->gender >= 0) {
-    if (((size_t)pi->gender >= GENDERS_LIST_LENGTH) ||
-        (genders_list[pi->gender] == NULL))
-      ERROR("ascent plugin: Ignoring invalid numeric gender %i.", pi->gender);
-    else
-      ps->genders[pi->gender]++;
-  }
-
-  if (pi->level > 0) {
-    ps->level_sum += pi->level;
-    ps->level_num++;
-  }
-
-  if (pi->latency >= 0) {
-    ps->latency_sum += pi->latency;
-    ps->latency_num++;
-  }
-
-  return 0;
-} /* }}} int ascent_account_player */
-
-static int ascent_xml_submit_gauge(xmlDoc *doc, xmlNode *node, /* {{{ */
-                                   const char *plugin_instance,
-                                   const char *type,
-                                   const char *type_instance) {
-  char *str_ptr;
-  gauge_t value;
-
-  str_ptr = (char *)xmlNodeListGetString(doc, node->xmlChildrenNode, 1);
-  if (str_ptr == NULL) {
-    ERROR(
-        "ascent plugin: ascent_xml_submit_gauge: xmlNodeListGetString failed.");
-    return -1;
-  }
-
-  if (strcasecmp("N/A", str_ptr) == 0)
-    value = NAN;
-  else {
-    char *end_ptr = NULL;
-    value = strtod(str_ptr, &end_ptr);
-    if (str_ptr == end_ptr) {
-      xmlFree(str_ptr);
-      ERROR("ascent plugin: ascent_xml_submit_gauge: strtod failed.");
-      return -1;
-    }
-  }
-  xmlFree(str_ptr);
-
-  return ascent_submit_gauge(plugin_instance, type, type_instance, value);
-} /* }}} int ascent_xml_submit_gauge */
-
-static int ascent_xml_read_int(xmlDoc *doc, xmlNode *node, /* {{{ */
-                               int *ret_value) {
-  char *str_ptr;
-  int value;
-
-  str_ptr = (char *)xmlNodeListGetString(doc, node->xmlChildrenNode, 1);
-  if (str_ptr == NULL) {
-    ERROR("ascent plugin: ascent_xml_read_int: xmlNodeListGetString failed.");
-    return -1;
-  }
-
-  if (strcasecmp("N/A", str_ptr) == 0)
-    value = -1;
-  else {
-    char *end_ptr = NULL;
-    value = strtol(str_ptr, &end_ptr, 0);
-    if (str_ptr == end_ptr) {
-      xmlFree(str_ptr);
-      ERROR("ascent plugin: ascent_xml_read_int: strtol failed.");
-      return -1;
-    }
-  }
-  xmlFree(str_ptr);
-
-  *ret_value = value;
-  return 0;
-} /* }}} int ascent_xml_read_int */
-
-static int ascent_xml_sessions_plr(xmlDoc *doc, xmlNode *node, /* {{{ */
-                                   player_info_t *pi) {
-  for (xmlNode *child = node->xmlChildrenNode; child != NULL;
-       child = child->next) {
-    if ((xmlStrcmp((const xmlChar *)"comment", child->name) == 0) ||
-        (xmlStrcmp((const xmlChar *)"text", child->name) == 0))
-      /* ignore */;
-    else if (xmlStrcmp((const xmlChar *)"race", child->name) == 0)
-      ascent_xml_read_int(doc, child, &pi->race);
-    else if (xmlStrcmp((const xmlChar *)"class", child->name) == 0)
-      ascent_xml_read_int(doc, child, &pi->class);
-    else if (xmlStrcmp((const xmlChar *)"gender", child->name) == 0)
-      ascent_xml_read_int(doc, child, &pi->gender);
-    else if (xmlStrcmp((const xmlChar *)"level", child->name) == 0)
-      ascent_xml_read_int(doc, child, &pi->level);
-    else if (xmlStrcmp((const xmlChar *)"latency", child->name) == 0)
-      ascent_xml_read_int(doc, child, &pi->latency);
-    else if ((xmlStrcmp((const xmlChar *)"name", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"pvprank", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"map", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"areaid", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"xpos", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"ypos", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"onime", child->name) == 0))
-      /* ignore */;
-    else {
-      WARNING("ascent plugin: ascent_xml_status: Unknown tag: %s", child->name);
-    }
-  } /* for (child) */
-
-  return 0;
-} /* }}} int ascent_xml_sessions_plr */
-
-static int ascent_xml_sessions(xmlDoc *doc, xmlNode *node) /* {{{ */
-{
-  player_stats_t ps = {.level_sum = 0};
-
-  for (xmlNode *child = node->xmlChildrenNode; child != NULL;
-       child = child->next) {
-    if ((xmlStrcmp((const xmlChar *)"comment", child->name) == 0) ||
-        (xmlStrcmp((const xmlChar *)"text", child->name) == 0))
-      /* ignore */;
-    else if (xmlStrcmp((const xmlChar *)"plr", child->name) == 0) {
-      int status;
-      player_info_t pi = PLAYER_INFO_STATIC_INIT;
-
-      status = ascent_xml_sessions_plr(doc, child, &pi);
-      if (status == 0)
-        ascent_account_player(&ps, &pi);
-    } else {
-      WARNING("ascent plugin: ascent_xml_status: Unknown tag: %s", child->name);
-    }
-  } /* for (child) */
-
-  ascent_submit_players(&ps);
-
-  return 0;
-} /* }}} int ascent_xml_sessions */
-
-static int ascent_xml_status(xmlDoc *doc, xmlNode *node) /* {{{ */
-{
-  for (xmlNode *child = node->xmlChildrenNode; child != NULL;
-       child = child->next) {
-    if ((xmlStrcmp((const xmlChar *)"comment", child->name) == 0) ||
-        (xmlStrcmp((const xmlChar *)"text", child->name) == 0))
-      /* ignore */;
-    else if (xmlStrcmp((const xmlChar *)"alliance", child->name) == 0)
-      ascent_xml_submit_gauge(doc, child, NULL, "players", "alliance");
-    else if (xmlStrcmp((const xmlChar *)"horde", child->name) == 0)
-      ascent_xml_submit_gauge(doc, child, NULL, "players", "horde");
-    else if (xmlStrcmp((const xmlChar *)"qplayers", child->name) == 0)
-      ascent_xml_submit_gauge(doc, child, NULL, "players", "queued");
-    else if ((xmlStrcmp((const xmlChar *)"acceptedconns", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"avglat", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"cdbquerysize", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"cpu", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"fthreads", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"gmcount", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"lastupdate", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"ontime", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"oplayers", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"peakcount", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"platform", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"ram", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"threads", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"uptime", child->name) == 0) ||
-             (xmlStrcmp((const xmlChar *)"wdbquerysize", child->name) == 0))
-      /* ignore */;
-    else {
-      WARNING("ascent plugin: ascent_xml_status: Unknown tag: %s", child->name);
-    }
-  } /* for (child) */
-
-  return 0;
-} /* }}} int ascent_xml_status */
-
-static int ascent_xml(const char *data) /* {{{ */
-{
-  xmlDoc *doc;
-  xmlNode *cur;
-
-#if 0
-  doc = xmlParseMemory (data, strlen (data),
-      /* URL = */ "ascent.xml",
-      /* encoding = */ NULL,
-      /* options = */ 0);
-#else
-  doc = xmlParseMemory(data, strlen(data));
-#endif
-  if (doc == NULL) {
-    ERROR("ascent plugin: xmlParseMemory failed.");
-    return -1;
-  }
-
-  cur = xmlDocGetRootElement(doc);
-  if (cur == NULL) {
-    ERROR("ascent plugin: XML document is empty.");
-    xmlFreeDoc(doc);
-    return -1;
-  }
-
-  if (xmlStrcmp((const xmlChar *)"serverpage", cur->name) != 0) {
-    ERROR("ascent plugin: XML root element is not \"serverpage\".");
-    xmlFreeDoc(doc);
-    return -1;
-  }
-
-  for (xmlNode *child = cur->xmlChildrenNode; child != NULL;
-       child = child->next) {
-    if ((xmlStrcmp((const xmlChar *)"comment", child->name) == 0) ||
-        (xmlStrcmp((const xmlChar *)"text", child->name) == 0))
-      /* ignore */;
-    else if (xmlStrcmp((const xmlChar *)"status", child->name) == 0)
-      ascent_xml_status(doc, child);
-    else if (xmlStrcmp((const xmlChar *)"instances", child->name) == 0)
-      /* ignore for now */;
-    else if (xmlStrcmp((const xmlChar *)"gms", child->name) == 0)
-      /* ignore for now */;
-    else if (xmlStrcmp((const xmlChar *)"sessions", child->name) == 0)
-      ascent_xml_sessions(doc, child);
-    else {
-      WARNING("ascent plugin: ascent_xml: Unknown tag: %s", child->name);
-    }
-  } /* for (child) */
-
-  xmlFreeDoc(doc);
-  return 0;
-} /* }}} int ascent_xml */
-
-static int config_set(char **var, const char *value) /* {{{ */
-{
-  if (*var != NULL) {
-    free(*var);
-    *var = NULL;
-  }
-
-  if ((*var = strdup(value)) == NULL)
-    return 1;
-  else
-    return 0;
-} /* }}} int config_set */
-
-static int ascent_config(const char *key, const char *value) /* {{{ */
-{
-  if (strcasecmp(key, "URL") == 0)
-    return config_set(&url, value);
-  else if (strcasecmp(key, "User") == 0)
-    return config_set(&user, value);
-  else if (strcasecmp(key, "Password") == 0)
-    return config_set(&pass, value);
-  else if (strcasecmp(key, "VerifyPeer") == 0)
-    return config_set(&verify_peer, value);
-  else if (strcasecmp(key, "VerifyHost") == 0)
-    return config_set(&verify_host, value);
-  else if (strcasecmp(key, "CACert") == 0)
-    return config_set(&cacert, value);
-  else if (strcasecmp(key, "Timeout") == 0)
-    return config_set(&timeout, value);
-  else
-    return -1;
-} /* }}} int ascent_config */
-
-static int ascent_init(void) /* {{{ */
-{
-  if (url == NULL) {
-    WARNING("ascent plugin: ascent_init: No URL configured, "
-            "returning an error.");
-    return -1;
-  }
-
-  if (curl != NULL) {
-    curl_easy_cleanup(curl);
-  }
-
-  if ((curl = curl_easy_init()) == NULL) {
-    ERROR("ascent plugin: ascent_init: curl_easy_init failed.");
-    return -1;
-  }
-
-  curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1L);
-  curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, ascent_curl_callback);
-  curl_easy_setopt(curl, CURLOPT_USERAGENT, COLLECTD_USERAGENT);
-  curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, ascent_curl_error);
-
-  if (user != NULL) {
-#ifdef HAVE_CURLOPT_USERNAME
-    curl_easy_setopt(curl, CURLOPT_USERNAME, user);
-    curl_easy_setopt(curl, CURLOPT_PASSWORD, (pass == NULL) ? "" : pass);
-#else
-    static char credentials[1024];
-    int status;
-
-    status = ssnprintf(credentials, sizeof(credentials), "%s:%s", user,
-                       (pass == NULL) ? "" : pass);
-    if ((status < 0) || ((size_t)status >= sizeof(credentials))) {
-      ERROR("ascent plugin: ascent_init: Returning an error because the "
-            "credentials have been truncated.");
-      return -1;
-    }
-
-    curl_easy_setopt(curl, CURLOPT_USERPWD, credentials);
-#endif
-  }
-
-  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
-  curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 50L);
-
-  if ((verify_peer == NULL) || IS_TRUE(verify_peer))
-    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
-  else
-    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
-
-  if ((verify_host == NULL) || IS_TRUE(verify_host))
-    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2L);
-  else
-    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
-
-  if (cacert != NULL)
-    curl_easy_setopt(curl, CURLOPT_CAINFO, cacert);
-
-#ifdef HAVE_CURLOPT_TIMEOUT_MS
-  if (timeout != NULL)
-    curl_easy_setopt(curl, CURLOPT_TIMEOUT_MS, atol(timeout));
-  else
-    curl_easy_setopt(curl, CURLOPT_TIMEOUT_MS,
-                     (long)CDTIME_T_TO_MS(plugin_get_interval()));
-#endif
-
-  return 0;
-} /* }}} int ascent_init */
-
-static int ascent_read(void) /* {{{ */
-{
-  int status;
-
-  if (curl == NULL) {
-    ERROR("ascent plugin: I don't have a CURL object.");
-    return -1;
-  }
-
-  if (url == NULL) {
-    ERROR("ascent plugin: No URL has been configured.");
-    return -1;
-  }
-
-  ascent_buffer_fill = 0;
-
-  curl_easy_setopt(curl, CURLOPT_URL, url);
-
-  if (curl_easy_perform(curl) != CURLE_OK) {
-    ERROR("ascent plugin: curl_easy_perform failed: %s", ascent_curl_error);
-    return -1;
-  }
-
-  status = ascent_xml(ascent_buffer);
-  if (status != 0)
-    return -1;
-  else
-    return 0;
-} /* }}} int ascent_read */
-
-void module_register(void) {
-  plugin_register_config("ascent", ascent_config, config_keys, config_keys_num);
-  plugin_register_init("ascent", ascent_init);
-  plugin_register_read("ascent", ascent_read);
-} /* void module_register */
index 16b222076fdbb5015f6635708b66fc708b96ba03..6406291f86a7055f8505ce35075500af26551e8b 100644 (file)
@@ -95,7 +95,6 @@
 #@BUILD_PLUGIN_APCUPS_TRUE@LoadPlugin apcups
 #@BUILD_PLUGIN_APPLE_SENSORS_TRUE@LoadPlugin apple_sensors
 #@BUILD_PLUGIN_AQUAERO_TRUE@LoadPlugin aquaero
-#@BUILD_PLUGIN_ASCENT_TRUE@LoadPlugin ascent
 #@BUILD_PLUGIN_BAROMETER_TRUE@LoadPlugin barometer
 #@BUILD_PLUGIN_BATTERY_TRUE@LoadPlugin battery
 #@BUILD_PLUGIN_BIND_TRUE@LoadPlugin bind
 #      Device ""
 #</Plugin>
 
-#<Plugin ascent>
-#      URL "http://localhost/ascent/status/"
-#      User "www-user"
-#      Password "secret"
-#      CACert "/etc/ssl/ca.crt"
-#</Plugin>
-
 #<Plugin "barometer">
 #   Device            "/dev/i2c-0";
 #   Oversampling      512
index 2512d6f2a6d08529fbd7c4abc9b3d5d257bc7f03..0fb373335408e637ee0475263ae88c0b7408f698 100644 (file)
@@ -1104,55 +1104,6 @@ to auto-detect the Aquaero 5 USB device based on vendor-ID and product-ID.
 
 =back
 
-=head2 Plugin C<ascent>
-
-This plugin collects information about an Ascent server, a free server for the
-"World of Warcraft" game. This plugin gathers the information by fetching the
-XML status page using C<libcurl> and parses it using C<libxml2>.
-
-The configuration options are the same as for the C<apache> plugin above:
-
-=over 4
-
-=item B<URL> I<http://localhost/ascent/status/>
-
-Sets the URL of the XML status output.
-
-=item B<User> I<Username>
-
-Optional user name needed for authentication.
-
-=item B<Password> I<Password>
-
-Optional password needed for authentication.
-
-=item B<VerifyPeer> B<true|false>
-
-Enable or disable peer SSL certificate verification. See
-L<http://curl.haxx.se/docs/sslcerts.html> for details. Enabled by default.
-
-=item B<VerifyHost> B<true|false>
-
-Enable or disable peer host name verification. If enabled, the plugin checks
-if the C<Common Name> or a C<Subject Alternate Name> field of the SSL
-certificate matches the host name provided by the B<URL> option. If this
-identity check fails, the connection is aborted. Obviously, only works when
-connecting to a SSL enabled server. Enabled by default.
-
-=item B<CACert> I<File>
-
-File that holds one or more SSL certificates. If you want to use HTTPS you will
-possibly need this option. What CA certificates come bundled with C<libcurl>
-and are checked by default depends on the distribution you use.
-
-=item B<Timeout> I<Milliseconds>
-
-The B<Timeout> option sets the overall timeout for HTTP requests to B<URL>, in
-milliseconds. By default, the configured B<Interval> is used to set the
-timeout.
-
-=back
-
 =head2 Plugin C<barometer>
 
 This plugin reads absolute air pressure using digital barometer sensor on a I2C