Use statfs(2) instead of getfsfile(3) to get device name from a mount point.
PR: 234694 Submitted by: tijl
This commit is contained in:
parent
2ff69c6c6f
commit
7ba9c16bb9
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=489743
@ -3,6 +3,7 @@
|
||||
|
||||
PORTNAME= libdvdread
|
||||
PORTVERSION= 6.0.0
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://download.videolan.org/pub/videolan/libdvdread/${PORTVERSION}/ \
|
||||
http://dvdnav.mplayerhq.hu/releases/ \
|
||||
|
@ -1,3 +1,3 @@
|
||||
TIMESTAMP = 1516309125
|
||||
TIMESTAMP = 1546990033
|
||||
SHA256 (libdvdread-6.0.0.tar.bz2) = b33b1953b4860545b75f6efc06e01d9849e2ea4f797652263b0b4af6dd10f935
|
||||
SIZE (libdvdread-6.0.0.tar.bz2) = 394627
|
||||
|
50
multimedia/libdvdread/files/patch-src-dvd_reader.c
Normal file
50
multimedia/libdvdread/files/patch-src-dvd_reader.c
Normal file
@ -0,0 +1,50 @@
|
||||
Use statfs() instead of getfsfile() to get device name from a mount point.
|
||||
|
||||
(getfsfile() requires an entry in the fstab file which is often not the case
|
||||
for removable media)
|
||||
|
||||
--- src/dvd_reader.c.orig 2018-01-17 21:35:39 UTC
|
||||
+++ src/dvd_reader.c
|
||||
@@ -64,7 +64,7 @@ static inline int _private_gettimeofday( struct timeva
|
||||
# include <sys/ucred.h>
|
||||
# include <sys/mount.h>
|
||||
#elif defined(SYS_BSD)
|
||||
-# include <fstab.h>
|
||||
+# include <sys/mount.h>
|
||||
#elif defined(__linux__)
|
||||
# include <mntent.h>
|
||||
# include <paths.h>
|
||||
@@ -420,7 +420,7 @@ static dvd_reader_t *DVDOpenCommon( const char *ppath,
|
||||
} else if( S_ISDIR( fileinfo.st_mode ) ) {
|
||||
dvd_reader_t *auth_drive = 0;
|
||||
#if defined(SYS_BSD)
|
||||
- struct fstab* fe;
|
||||
+ struct statfs fs;
|
||||
#elif defined(__sun) || defined(__linux__)
|
||||
FILE *mntfile;
|
||||
#endif
|
||||
@@ -511,14 +511,16 @@ static dvd_reader_t *DVDOpenCommon( const char *ppath,
|
||||
}
|
||||
}
|
||||
#elif defined(SYS_BSD)
|
||||
- if( ( fe = getfsfile( path_copy ) ) ) {
|
||||
- dev_name = bsd_block2char( fe->fs_spec );
|
||||
- fprintf( stderr,
|
||||
- "libdvdread: Attempting to use device %s"
|
||||
- " mounted on %s for CSS authentication\n",
|
||||
- dev_name,
|
||||
- fe->fs_file );
|
||||
- auth_drive = DVDOpenImageFile( dev_name, NULL, NULL, have_css );
|
||||
+ if( statfs( path_copy, &fs ) == 0 ) {
|
||||
+ if( !strcmp( path_copy, fs.f_mntonname ) ) {
|
||||
+ dev_name = bsd_block2char( fs.f_mntfromname );
|
||||
+ fprintf( stderr,
|
||||
+ "libdvdread: Attempting to use device %s"
|
||||
+ " mounted on %s for CSS authentication\n",
|
||||
+ dev_name,
|
||||
+ fs.f_mntonname );
|
||||
+ auth_drive = DVDOpenImageFile( dev_name, NULL, NULL, have_css );
|
||||
+ }
|
||||
}
|
||||
#elif defined(__sun)
|
||||
mntfile = fopen( MNTTAB, "r" );
|
Loading…
Reference in New Issue
Block a user