changeset 21656:32c50eb3ff18

in STREAM_WRITE mode open the stream with O_RDWR|O_CREAT, S_IRUSR|S_IWUSR and disable seek_forward for pipes
author nicodvb
date Mon, 18 Dec 2006 20:53:40 +0000
parents b7e2f8fd263e
children 5f5ed194b54b
files stream/stream_file.c
diffstat 1 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/stream/stream_file.c	Mon Dec 18 20:50:31 2006 +0000
+++ b/stream/stream_file.c	Mon Dec 18 20:53:40 2006 +0000
@@ -78,7 +78,7 @@
   if(mode == STREAM_READ)
     m = O_RDONLY;
   else if(mode == STREAM_WRITE)
-    m = O_WRONLY;
+    m = O_RDWR|O_CREAT;
   else {
     mp_msg(MSGT_OPEN,MSGL_ERR, "[file] Unknown open mode %d\n",mode);
     m_struct_free(&stream_opts,opts);
@@ -117,7 +117,10 @@
 #endif
     }
   } else {
-    f=open(filename,m);
+    if(mode == STREAM_READ)
+      f=open(filename,m);
+    else
+      f=open(filename,m, S_IRUSR|S_IWUSR);
     if(f<0) {
       mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_FileNotFound,filename);
       m_struct_free(&stream_opts,opts);
@@ -131,7 +134,7 @@
 #else
   if(len == -1) {
 #endif
-    stream->seek = seek_forward;
+    if(mode == STREAM_READ) stream->seek = seek_forward;
     stream->type = STREAMTYPE_STREAM; // Must be move to STREAMTYPE_FILE
     stream->flags |= STREAM_SEEK_FW;
   } else if(len >= 0) {