chiark / gitweb /
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 a5fa895e611fda0253d815d7cea2d383e2f5b9d8..db085b67aac0727d2c38d6af0a0ef3c5d4f43086 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 9aecc49aa10790c9beff621fee73499c1af246f5..1bdc08264d8a5a735b742b66d49914b6e16e5fe8 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 e89945a73121bca3f1efe138954bf46fe9cdd358..72059b948eb34eb21ddd6c40b1e5891399724922 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 a53160798a048f4228430ee20c4289f374610069..0269e75f46859c30efd13597319955c2f9cfa0a4 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 4543296193a1e3af23d5ab9f04e63e457948fc8d..6f14bb5512e69a1cb2c3aadfb89c5f5756a63896 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 4f2950c8b473baefcc6f13d9a73b522037e4a9cc..2529f24dc9d9e07515dcc1e90be74383ac2645a4 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 ceba762bfc31ec11909f26d0f655239470395586..069cd3716dfe7bf2d3339209859c36aa29a8be45 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