Use shared memory instead of temp files on FreeBSD-compatible OS
authorKyle Evans <kevans@FreeBSD.org>
Wed, 2 May 2018 04:50:15 +0000 (23:50 -0500)
committerKyle Evans <kevans@FreeBSD.org>
Wed, 2 May 2018 04:50:15 +0000 (23:50 -0500)
uwac/libuwac/uwac-os.c

index ec9efe4..212e195 100644 (file)
 
 #define _GNU_SOURCE
 
+#if defined(__FreeBSD__) || defined(__DragonFly__)
+#define USE_SHM
+#endif
+
 #include <sys/types.h>
 #include <sys/socket.h>
+#ifdef USE_SHM
+#include <sys/mman.h>
+#endif
 #include <unistd.h>
 #include <fcntl.h>
 #include <errno.h>
@@ -153,7 +160,9 @@ static int create_tmpfile_cloexec(char *tmpname)
 {
        int fd;
 
-#ifdef HAVE_MKOSTEMP
+#ifdef USE_SHM
+       fd = shm_open(SHM_ANON, O_CREAT | O_RDWR, 0600);
+#elif defined(HAVE_MKOSTEMP)
        fd = mkostemp(tmpname, O_CLOEXEC);
        if (fd >= 0)
                unlink(tmpname);