pkgsrc/multimedia/vlc2/patches/patch-modules_access_directory.c
marino 726f622c65 multimedia/vlc2: only use O_RDONLY and O_DIRECTORY if supported
DragonFly's file control options aren't fully posix-compliant yet, and
the O_DIRECTORY flag hasn't been implemented (all the flag spots are full
and old ones need to be recycled).

These patches adds additional support checks for each fcntl flag used with
vlc_open and vlc_openat and only sets the supported one.  There is no need
to revbump because any platform requiring this check couldn't have built.
2012-07-29 17:37:57 +00:00

25 lines
876 B
C

$NetBSD: patch-modules_access_directory.c,v 1.1 2012/07/29 17:37:58 marino Exp $
Mainly due to lack of bits for new fcntl flags, O_DIRECTORY isn't currently
supported by DragonFly's openat. This patch checks which flags are supported
before passing them to vlc_openat.
--- modules/access/directory.c.orig 2012-06-20 18:07:49.000000000 +0000
+++ modules/access/directory.c
@@ -309,8 +309,14 @@ block_t *DirBlock (access_t *p_access)
{
DIR *handle;
#ifdef HAVE_OPENAT
- int fd = vlc_openat (dirfd (current->handle), entry,
- O_RDONLY | O_DIRECTORY);
+ int flags = 0;
+#ifdef O_RDONLY
+ flags |= O_RDONLY;
+#endif
+#ifdef O_DIRECTORY
+ flags |= O_DIRECTORY;
+#endif
+ int fd = vlc_openat (dirfd (current->handle), entry, flags);
if (fd == -1)
{
if (errno == ENOTDIR)