30
30
#include <curl/curl.h>
32
static char *url = NULL;
33
static char *user = NULL;
34
static char *pass = NULL;
35
static char *cacert = NULL;
32
static char *url = NULL;
33
static char *user = NULL;
34
static char *pass = NULL;
35
static char *verify_peer = NULL;
36
static char *verify_host = NULL;
37
static char *cacert = NULL;
37
39
static CURL *curl = NULL;
39
#define ABUFFER_SIZE 16384
40
static char apache_buffer[ABUFFER_SIZE];
41
static int apache_buffer_len = 0;
42
static char apache_curl_error[CURL_ERROR_SIZE];
41
static char *apache_buffer = NULL;
42
static size_t apache_buffer_size = 0;
43
static size_t apache_buffer_fill = 0;
44
static char apache_curl_error[CURL_ERROR_SIZE];
44
46
static const char *config_keys[] =
51
55
static int config_keys_num = STATIC_ARRAY_SIZE (config_keys);
53
static size_t apache_curl_callback (void *buf, size_t size, size_t nmemb, void *stream)
57
static size_t apache_curl_callback (void *buf, size_t size, size_t nmemb,
55
60
size_t len = size * nmemb;
57
if ((apache_buffer_len + len) >= ABUFFER_SIZE)
59
len = (ABUFFER_SIZE - 1) - apache_buffer_len;
65
memcpy (apache_buffer + apache_buffer_len, (char *) buf, len);
66
apache_buffer_len += len;
67
apache_buffer[apache_buffer_len] = '\0';
65
if ((apache_buffer_fill + len) >= apache_buffer_size)
69
temp = (char *) realloc (apache_buffer,
70
apache_buffer_fill + len + 1);
73
ERROR ("apache plugin: realloc failed.");
77
apache_buffer_size = apache_buffer_fill + len + 1;
80
memcpy (apache_buffer + apache_buffer_fill, (char *) buf, len);
81
apache_buffer_fill += len;
82
apache_buffer[apache_buffer_fill] = 0;
91
106
return (config_set (&user, value));
92
107
else if (strcasecmp (key, "password") == 0)
93
108
return (config_set (&pass, value));
109
else if (strcasecmp (key, "verifypeer") == 0)
110
return (config_set (&verify_peer, value));
111
else if (strcasecmp (key, "verifyhost") == 0)
112
return (config_set (&verify_host, value));
94
113
else if (strcasecmp (key, "cacert") == 0)
95
114
return (config_set (&cacert, value));
144
163
curl_easy_setopt (curl, CURLOPT_URL, url);
165
if ((verify_peer == NULL) || (strcmp (verify_peer, "true") == 0))
167
curl_easy_setopt (curl, CURLOPT_SSL_VERIFYPEER, 1);
171
curl_easy_setopt (curl, CURLOPT_SSL_VERIFYPEER, 0);
174
if ((verify_host == NULL) || (strcmp (verify_host, "true") == 0))
176
curl_easy_setopt (curl, CURLOPT_SSL_VERIFYHOST, 2);
180
curl_easy_setopt (curl, CURLOPT_SSL_VERIFYHOST, 0);
146
183
if (cacert != NULL)
148
185
curl_easy_setopt (curl, CURLOPT_CAINFO, cacert);