#include "plugin.h"
#include "configfile.h"
#include "utils_match.h"
+#include "utils_time.h"
#include <curl/curl.h>
curl_easy_setopt (wp->curl, CURLOPT_NOSIGNAL, 1L);
curl_easy_setopt (wp->curl, CURLOPT_WRITEFUNCTION, cc_curl_callback);
curl_easy_setopt (wp->curl, CURLOPT_WRITEDATA, wp);
- curl_easy_setopt (wp->curl, CURLOPT_USERAGENT,
- PACKAGE_NAME"/"PACKAGE_VERSION);
+ curl_easy_setopt (wp->curl, CURLOPT_USERAGENT, COLLECTD_USERAGENT);
curl_easy_setopt (wp->curl, CURLOPT_ERRORBUFFER, wp->curl_errbuf);
curl_easy_setopt (wp->curl, CURLOPT_URL, wp->url);
curl_easy_setopt (wp->curl, CURLOPT_FOLLOWLOCATION, 1L);
sstrncpy (vl.plugin, "curl", sizeof (vl.plugin));
sstrncpy (vl.plugin_instance, wp->instance, sizeof (vl.plugin_instance));
sstrncpy (vl.type, wm->type, sizeof (vl.type));
- sstrncpy (vl.type_instance, wm->instance, sizeof (vl.type_instance));
+ if (wm->instance != NULL)
+ sstrncpy (vl.type_instance, wm->instance, sizeof (vl.type_instance));
plugin_dispatch_values (&vl);
} /* }}} void cc_submit */
plugin_dispatch_values (&vl);
} /* }}} void cc_submit_response_code */
-static void cc_submit_response_time (const web_page_t *wp, double seconds) /* {{{ */
+static void cc_submit_response_time (const web_page_t *wp, /* {{{ */
+ cdtime_t response_time)
{
value_t values[1];
value_list_t vl = VALUE_LIST_INIT;
- values[0].gauge = seconds;
+ values[0].gauge = CDTIME_T_TO_DOUBLE (response_time);
vl.values = values;
vl.values_len = 1;
{
web_match_t *wm;
int status;
- struct timeval start, end;
+ cdtime_t start = 0;
if (wp->response_time)
- gettimeofday (&start, NULL);
+ start = cdtime ();
wp->buffer_fill = 0;
status = curl_easy_perform (wp->curl);
return (-1);
}
+ if (wp->response_time)
+ cc_submit_response_time (wp, cdtime() - start);
+
if(wp->response_code)
{
long response_code = 0;
}
}
- if (wp->response_time)
- {
- double secs = 0;
- gettimeofday (&end, NULL);
- secs += end.tv_sec - start.tv_sec;
- secs += (end.tv_usec - start.tv_usec) / 1000000.0;
- cc_submit_response_time (wp, secs);
- }
-
for (wm = wp->matches; wm != NULL; wm = wm->next)
{
cu_match_value_t *mv;