X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fascent.c;h=2ad641dfede55d98b9a3cf92ebd288dd20881ed4;hb=8bc093a2476f2bef751c9d3d9e382a7e62d060b3;hp=6b4f21fc6b887b37b6ddfc70a8cdd5bfdd7e9018;hpb=cacaa2126020832df99fa6423147bd3de6d4faae;p=collectd.git diff --git a/src/ascent.c b/src/ascent.c index 6b4f21fc..2ad641df 100644 --- a/src/ascent.c +++ b/src/ascent.c @@ -91,10 +91,12 @@ struct player_info_s typedef struct player_info_s player_info_t; #define PLAYER_INFO_STATIC_INIT { -1, -1, -1, -1, -1 } -static char *url = NULL; -static char *user = NULL; -static char *pass = NULL; -static char *cacert = NULL; +static char *url = NULL; +static char *user = NULL; +static char *pass = NULL; +static char *verify_peer = NULL; +static char *verify_host = NULL; +static char *cacert = NULL; static CURL *curl = NULL; @@ -108,6 +110,8 @@ static const char *config_keys[] = "URL", "User", "Password", + "VerifyPeer", + "VerifyHost", "CACert" }; static int config_keys_num = STATIC_ARRAY_SIZE (config_keys); @@ -123,8 +127,8 @@ static int ascent_submit_gauge (const char *plugin_instance, /* {{{ */ vl.values = values; vl.values_len = 1; vl.time = time (NULL); - strcpy (vl.host, hostname_g); - strcpy (vl.plugin, "ascent"); + sstrncpy (vl.host, hostname_g, sizeof (vl.host)); + sstrncpy (vl.plugin, "ascent", sizeof (vl.plugin)); if (plugin_instance != NULL) sstrncpy (vl.plugin_instance, plugin_instance, @@ -500,6 +504,10 @@ static int ascent_config (const char *key, const char *value) /* {{{ */ 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 @@ -550,6 +558,16 @@ static int ascent_init (void) /* {{{ */ curl_easy_setopt (curl, CURLOPT_URL, url); + if ((verify_peer == NULL) || (strcmp (verify_peer, "true") == 0)) + curl_easy_setopt (curl, CURLOPT_SSL_VERIFYPEER, 1); + else + curl_easy_setopt (curl, CURLOPT_SSL_VERIFYPEER, 0); + + if ((verify_host == NULL) || (strcmp (verify_host, "true") == 0)) + curl_easy_setopt (curl, CURLOPT_SSL_VERIFYHOST, 2); + else + curl_easy_setopt (curl, CURLOPT_SSL_VERIFYHOST, 0); + if (cacert != NULL) curl_easy_setopt (curl, CURLOPT_CAINFO, cacert);