]> git.ipfire.org Git - thirdparty/collectd.git/commitdiff
src/nginx.c: Importing changes from `main`.
authorFlorian Forster <octo@collectd.org>
Tue, 19 Dec 2023 08:51:55 +0000 (09:51 +0100)
committerFlorian Forster <octo@collectd.org>
Mon, 22 Jan 2024 20:22:04 +0000 (21:22 +0100)
Changes:
dd7e4fd34042483cc90ee2762f4b507fd6637d37 nginx: add support for unix domain sockets

src/nginx.c

index 0da66ce2e94525902008090a31d3d148fb18a51a..08293a506ac7542aab1ad66819640195d3380b3e 100644 (file)
@@ -40,6 +40,7 @@ static char *verify_peer;
 static char *verify_host;
 static char *cacert;
 static char *timeout;
+static char *sock;
 
 static CURL *curl;
 
@@ -47,8 +48,9 @@ static char nginx_buffer[16384];
 static size_t nginx_buffer_len;
 static char nginx_curl_error[CURL_ERROR_SIZE];
 
-static const char *config_keys[] = {
-    "URL", "User", "Password", "VerifyPeer", "VerifyHost", "CACert", "Timeout"};
+static const char *config_keys[] = {"URL",        "User",       "Password",
+                                    "VerifyPeer", "VerifyHost", "CACert",
+                                    "Timeout",    "Socket"};
 static int config_keys_num = STATIC_ARRAY_SIZE(config_keys);
 
 static size_t nginx_curl_callback(void *buf, size_t size, size_t nmemb,
@@ -98,6 +100,8 @@ static int config(const char *key, const char *value) {
     return config_set(&cacert, value);
   else if (strcasecmp(key, "timeout") == 0)
     return config_set(&timeout, value);
+  else if (strcasecmp(key, "socket") == 0)
+    return config_set(&sock, value);
   else
     return -1;
 } /* int config */
@@ -161,6 +165,12 @@ static int init(void) {
   }
 #endif
 
+#ifdef HAVE_CURLOPT_UNIX_SOCKET_PATH
+  if (sock != NULL) {
+    curl_easy_setopt(curl, CURLOPT_UNIX_SOCKET_PATH, sock);
+  }
+#endif
+
   return 0;
 } /* void init */