r21640: Fix the build for broken platoforms without O_DIRECT or O_DIRECTORY.
authorJeremy Allison <jra@samba.org>
Thu, 1 Mar 2007 21:36:05 +0000 (21:36 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:18:19 +0000 (12:18 -0500)
Jeremy.
(This used to be commit 6a0f6fde0a19bfb4af4c7fa6f29d7015e884d86e)

source3/libsmb/clifile.c

index 1f547ee305174d1e9a49a8db005a62ebaf1c262e..ebace8f963a52ebe95c4d957e0c96352b9ffee1c 100644 (file)
@@ -1804,12 +1804,16 @@ static uint32 open_flags_to_wire(int flags)
        if (flags & O_APPEND) {
                ret |= SMB_O_APPEND;
        }
+#if defined(O_DIRECT)
        if (flags & O_DIRECT) {
                ret |= SMB_O_DIRECT;
        }
+#endif
+#if defined(O_DIRECTORY)
        if (flags & O_DIRECTORY) {
                ret |= SMB_O_DIRECTORY;
        }
+#endif
        return ret;
 }
 
@@ -1875,7 +1879,12 @@ int cli_posix_open(struct cli_state *cli, const char *fname, int flags, mode_t m
 
 int cli_posix_mkdir(struct cli_state *cli, const char *fname, mode_t mode)
 {
+#if defined(O_DIRECTORY)
        return (cli_posix_open(cli, fname, O_CREAT|O_DIRECTORY, mode) == -1) ? -1 : 0;
+#else
+       cli_set_nt_error(cli, NT_STATUS_NOT_IMPLEMENTED);
+       return -1;
+#endif
 }
 
 /****************************************************************************