File cpio-2.9-open_nonblock.patch of Package cpio

--- src/mt.c
+++ src/mt.c
@@ -694,9 +694,9 @@
        || (operation == MTDATCOMP)
 #endif
 	)
-    tapedesc = rmtopen (tapedev, O_WRONLY, 0, rsh_command_option);
+    tapedesc = rmtopen (tapedev, O_WRONLY | O_NONBLOCK, 0, rsh_command_option);
   else
-    tapedesc = rmtopen (tapedev, O_RDONLY, 0, rsh_command_option);
+    tapedesc = rmtopen (tapedev, O_RDONLY | O_NONBLOCK, 0, rsh_command_option);
   if (tapedesc == -1)
     error (1, errno, _("%s: rmtopen failed"), tapedev);
   check_type (tapedev, tapedesc);
--- src/util.c
+++ src/util.c
@@ -753,14 +753,14 @@
   copy_in = process_copy_in;
 
   if (copy_function == copy_in)
-    fd = rmtopen (file, O_RDONLY | O_BINARY, MODE_RW, rsh_command_option);
+    fd = rmtopen (file, O_RDONLY | O_BINARY | O_NONBLOCK, MODE_RW, rsh_command_option);
   else
     {
       if (!append_flag)
-	fd = rmtopen (file, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, MODE_RW,
+	fd = rmtopen (file, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY | O_NONBLOCK, MODE_RW,
 			rsh_command_option);
       else
-	fd = rmtopen (file, O_RDWR | O_BINARY, MODE_RW, rsh_command_option);
+	fd = rmtopen (file, O_RDWR | O_BINARY | O_NONBLOCK, MODE_RW, rsh_command_option);
     }
 
   return fd;
openSUSE Build Service is sponsored by