write_prometheus plugin: Only use SOCK_CLOEXEC if it is defined.
authorFlorian Forster <octo@collectd.org>
Wed, 6 Feb 2019 14:47:00 +0000 (15:47 +0100)
committerFlorian Forster <octo@collectd.org>
Wed, 6 Feb 2019 14:47:00 +0000 (15:47 +0100)
Fixes compilation issue on Mac OS X. See also #3055.

src/write_prometheus.c

index ba186a7..572ba56 100644 (file)
@@ -760,7 +760,12 @@ static int prom_open_socket(int addrfamily) {
 
   int fd = -1;
   for (struct addrinfo *ai = res; ai != NULL; ai = ai->ai_next) {
-    fd = socket(ai->ai_family, ai->ai_socktype | SOCK_CLOEXEC, 0);
+    int flags = ai->ai_socktype;
+#ifdef SOCK_CLOEXEC
+    flags |= SOCK_CLOEXEC;
+#endif
+
+    fd = socket(ai->ai_family, flags, 0);
     if (fd == -1)
       continue;