From 972381afacd6efbd0d20c77ff7e00981f95b7418 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Tue, 22 Mar 2022 21:34:37 +0000 Subject: [PATCH] lib.c, and knock-on: Add MODE argument to `open_dvd'. Everyone wants read-only for now. --- dvd-cache-keys.c | 2 +- dvd-check-keys.c | 2 +- dvd-id.c | 2 +- dvd-info.c | 2 +- dvd-sector-copy.c | 4 ++-- lib.c | 5 +++-- lib.h | 2 +- 7 files changed, 10 insertions(+), 9 deletions(-) diff --git a/dvd-cache-keys.c b/dvd-cache-keys.c index a5fa895..db085b6 100644 --- a/dvd-cache-keys.c +++ b/dvd-cache-keys.c @@ -41,7 +41,7 @@ int main(int argc, char *argv[]) progress_init(&progress); for (i = optind; i < argc; i++) { - open_dvd(argv[i], 0, &dvd); + open_dvd(argv[i], O_RDONLY, 0, &dvd); for (j = 0; j < 100; j++) { kick_vob(j, 0); diff --git a/dvd-check-keys.c b/dvd-check-keys.c index 9aecc49..1bdc082 100644 --- a/dvd-check-keys.c +++ b/dvd-check-keys.c @@ -62,7 +62,7 @@ int main(int argc, char *argv[]) setlocale(LC_ALL, ""); progress_init(&progress); - open_dvd(argv[optind], 0, &dvd); + open_dvd(argv[optind], O_RDONLY, 0, &dvd); css = dvdcss_open(argv[optind]); if (!css) bail_syserr(errno, "failed to attach CSS machinery to `%s'", diff --git a/dvd-id.c b/dvd-id.c index e89945a..72059b9 100644 --- a/dvd-id.c +++ b/dvd-id.c @@ -27,7 +27,7 @@ int main(int argc, char *argv[]) progress_init(&progress); for (i = optind; i < argc; i++) { - open_dvd(argv[i], 0, &dvd); + open_dvd(argv[i], O_RDONLY, 0, &dvd); if (dvd_id(id, dvd, dif, argv[i])) st = 2; else { diff --git a/dvd-info.c b/dvd-info.c index a531607..0269e75 100644 --- a/dvd-info.c +++ b/dvd-info.c @@ -167,7 +167,7 @@ int main(int argc, char *argv[]) if (f&f_bogus) { usage(stderr); exit(2); } setlocale(LC_ALL, ""); progress_init(&progress); - dvdfn = argv[optind]; open_dvd(dvdfn, 0, &dvd); + dvdfn = argv[optind]; open_dvd(dvdfn, O_RDONLY, 0, &dvd); vmgi = ifoOpenVMGI(dvd); if (!vmgi) bail("failed to open vmgi for `%s'", dvdfn); diff --git a/dvd-sector-copy.c b/dvd-sector-copy.c index 4543296..6f14bb5 100644 --- a/dvd-sector-copy.c +++ b/dvd-sector-copy.c @@ -1099,7 +1099,7 @@ int main(int argc, char *argv[]) #endif } - open_dvd(device, &dvdfd, &dvd); + open_dvd(device, O_RDONLY, &dvdfd, &dvd); blksz = SECTORSZ; volsz = device_size(dvdfd, device, &blksz); if (blksz != SECTORSZ) @@ -1109,7 +1109,7 @@ int main(int argc, char *argv[]) device, volsz, SECTORSZ); if (f&f_checkid) { - open_dvd(outfile, 0, &dvd_out); + open_dvd(outfile, O_RDONLY, 0, &dvd_out); if (dvd_id(id_in, dvd, DIF_MUSTIFOHASH, device) || dvd_id(id_out, dvd_out, DIF_MUSTIFOHASH, device)) exit(2); diff --git a/lib.c b/lib.c index 4f2950c..2529f24 100644 --- a/lib.c +++ b/lib.c @@ -259,14 +259,15 @@ static void logfn(void *p, dvd_logger_level_t lev, static const dvd_logger_cb logger = { logfn }; #endif -void open_dvd(const char *device, int *fd_out, dvd_reader_t **dvd_out) +void open_dvd(const char *device, int mode, + int *fd_out, dvd_reader_t **dvd_out) { int fd; dvd_reader_t *dvd; int bannerp = 0; for (;;) { - fd = open(device, O_RDONLY); + fd = open(device, mode); if (fd >= 0 || errno != ENOMEDIUM) break; if (!bannerp) { show_banner("Waiting for disc to be inserted..."); diff --git a/lib.h b/lib.h index ceba762..069cd37 100644 --- a/lib.h +++ b/lib.h @@ -115,7 +115,7 @@ extern struct progress_state progress; extern void show_banner(const char *msg); extern void hide_banner(void); -extern void open_dvd(const char *device, +extern void open_dvd(const char *device, int mode, int *fd_out, dvd_reader_t **dvd_out); #endif -- 2.11.0