lib.c, and knock-on: Add MODE argument to `open_dvd'.
authorMark Wooding <mdw@distorted.org.uk>
Tue, 22 Mar 2022 21:34:37 +0000 (21:34 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Tue, 22 Mar 2022 21:34:37 +0000 (21:34 +0000)
Everyone wants read-only for now.

dvd-cache-keys.c
dvd-check-keys.c
dvd-id.c
dvd-info.c
dvd-sector-copy.c
lib.c
lib.h

index a5fa895..db085b6 100644 (file)
@@ -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);
index 9aecc49..1bdc082 100644 (file)
@@ -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'",
index e89945a..72059b9 100644 (file)
--- 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 {
index a531607..0269e75 100644 (file)
@@ -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);
 
index 4543296..6f14bb5 100644 (file)
@@ -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 (file)
--- 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 (file)
--- 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