Changeset: f40bd9c6b0f8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f40bd9c6b0f8
Modified Files:
        gdk/gdk_storage.c
Branch: default
Log Message:

Merge with Jan2022 branch.


diffs (138 lines):

diff --git a/common/utils/msabaoth.c b/common/utils/msabaoth.c
--- a/common/utils/msabaoth.c
+++ b/common/utils/msabaoth.c
@@ -46,8 +46,12 @@
 #endif
 
 #ifndef O_CLOEXEC
+#ifdef _O_NOINHERIT
+#define O_CLOEXEC _O_NOINHERIT /* Windows */
+#else
 #define O_CLOEXEC 0
 #endif
+#endif
 
 /** the directory where the databases are (aka dbfarm) */
 static char *_sabaoth_internal_dbfarm = NULL;
diff --git a/common/utils/mutils.c b/common/utils/mutils.c
--- a/common/utils/mutils.c
+++ b/common/utils/mutils.c
@@ -30,8 +30,12 @@
 #endif
 
 #ifndef O_CLOEXEC
+#ifdef _O_NOINHERIT
+#define O_CLOEXEC _O_NOINHERIT /* Windows */
+#else
 #define O_CLOEXEC 0
 #endif
+#endif
 
 #ifdef NATIVE_WIN32
 
@@ -494,7 +498,7 @@ MT_lockf(const char *filename, int mode)
                 * directly */
                fh = CreateFileW(wfilename,
                                GENERIC_READ | GENERIC_WRITE, 0,
-                               NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
+                               NULL, OPEN_ALWAYS, 
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED, NULL);
                free(wfilename);
                if (fh == INVALID_HANDLE_VALUE)
                        return -2;
@@ -556,8 +560,8 @@ MT_fopen(const char *filename, const cha
        wfilename = utf8towchar(filename);
        wmode = utf8towchar(mode);
        FILE *f = NULL;
-       if (wfilename != NULL && wmode != NULL)
-               f = _wfopen(wfilename, wmode);
+       if (wfilename != NULL && wmode != NULL && (f = _wfopen(wfilename, 
wmode)) != NULL && strchr(mode, 'w') != NULL)
+               SetFileAttributesW(wfilename, 
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED);
        free(wfilename);
        free(wmode);
        return f;
@@ -572,6 +576,8 @@ MT_open(const char *filename, int flags)
        int fd;
        if (_wsopen_s(&fd, wfilename, flags, _SH_DENYNO, _S_IREAD | _S_IWRITE) 
!= 0)
                fd = -1;
+       else if (flags & O_CREAT)
+               SetFileAttributesW(wfilename, 
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED);
        free(wfilename);
        return fd;
 }
@@ -684,6 +690,8 @@ MT_mkdir(const char *pathname)
        if (wpathname == NULL)
                return -1;
        int ret = _wmkdir(wpathname);
+       if (ret == 0)
+               SetFileAttributesW(wpathname, 
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED);
        free(wpathname);
        return ret;
 }
diff --git a/gdk/ChangeLog.Jan2022 b/gdk/ChangeLog.Jan2022
--- a/gdk/ChangeLog.Jan2022
+++ b/gdk/ChangeLog.Jan2022
@@ -1,3 +1,8 @@
 # ChangeLog file for GDK
 # This file is updated with Maddlog
 
+* Tue Jan 11 2022 Sjoerd Mullender <[email protected]>
+- On Windows, files and directories we create now get the attribute
+  FILE_ATTIBUTE_NOT_CONTENT_INDEXED, meaning that they should not be
+  indexed by indexing or search services.
+
diff --git a/gdk/gdk_posix.c b/gdk/gdk_posix.c
--- a/gdk/gdk_posix.c
+++ b/gdk/gdk_posix.c
@@ -60,8 +60,12 @@
 #define MMAP_WRITABLE          (MMAP_WRITE|MMAP_COPY)
 
 #ifndef O_CLOEXEC
+#ifdef _O_NOINHERIT
+#define O_CLOEXEC _O_NOINHERIT /* Windows */
+#else
 #define O_CLOEXEC 0
 #endif
+#endif
 
 /* Crude VM buffer management that keep a list of all memory mapped
  * regions.
@@ -730,6 +734,7 @@ MT_mmap(const char *path, int mode, size
                mode3 = PAGE_READWRITE;
                mode4 = FILE_MAP_WRITE;
        }
+       mode2 |= FILE_ATTRIBUTE_NOT_CONTENT_INDEXED;
        sa.nLength = sizeof(SECURITY_ATTRIBUTES);
        sa.bInheritHandle = TRUE;
        sa.lpSecurityDescriptor = 0;
diff --git a/gdk/gdk_storage.c b/gdk/gdk_storage.c
--- a/gdk/gdk_storage.c
+++ b/gdk/gdk_storage.c
@@ -32,8 +32,12 @@
 #endif
 
 #ifndef O_CLOEXEC
+#ifdef _O_NOINHERIT
+#define O_CLOEXEC _O_NOINHERIT /* Windows */
+#else
 #define O_CLOEXEC 0
 #endif
+#endif
 
 /* GDKfilepath returns a newly allocated string containing the path
  * name of a database farm.
diff --git a/monetdb5/mal/mal_linker.c b/monetdb5/mal/mal_linker.c
--- a/monetdb5/mal/mal_linker.c
+++ b/monetdb5/mal/mal_linker.c
@@ -45,8 +45,12 @@ static int maxfiles = MAXMODULES;
 static int lastfile = 0;
 
 #ifndef O_CLOEXEC
+#ifdef _O_NOINHERIT
+#define O_CLOEXEC _O_NOINHERIT /* Windows */
+#else
 #define O_CLOEXEC 0
 #endif
+#endif
 
 /*
  * returns 1 if the file exists
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to