summaryrefslogtreecommitdiffstats
path: root/stream/stream_smb.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-05-24 14:06:13 +0200
committerwm4 <wm4@nowhere>2014-05-24 16:17:52 +0200
commitaa87c143cb369f1448f8d08086b5ef98998b4436 (patch)
treeb3b3a079f5e82f66e62d46fcad1488a59f387d2c /stream/stream_smb.c
parent80cbb3bac2e2b2a569d5a9a9c6dd5d4f2da04f7c (diff)
downloadmpv-aa87c143cb369f1448f8d08086b5ef98998b4436.tar.bz2
mpv-aa87c143cb369f1448f8d08086b5ef98998b4436.tar.xz
stream: remove chaos related to writeable streams
For some reason, we support writeable streams. (Only encoding uses that, and the use of it looks messy enough that I want to replace it with FILE or avio today.) It's a chaos: most streams do not actually check the mode parameter like they should. Simplify it, and let streams signal availability of write mode by setting a flag in the stream info struct.
Diffstat (limited to 'stream/stream_smb.c')
-rw-r--r--stream/stream_smb.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/stream/stream_smb.c b/stream/stream_smb.c
index 6b79d072dd..e39c758fdf 100644
--- a/stream/stream_smb.c
+++ b/stream/stream_smb.c
@@ -87,10 +87,9 @@ static void close_f(stream_t *s){
smbc_close(p->fd);
}
-static int open_f (stream_t *stream, int mode)
+static int open_f (stream_t *stream)
{
char *filename;
- mode_t m = 0;
int64_t len;
int fd, err;
@@ -99,14 +98,7 @@ static int open_f (stream_t *stream, int mode)
filename = stream->url;
- if(mode == STREAM_READ)
- m = O_RDONLY;
- else if (mode == STREAM_WRITE) //who's gonna do that ?
- m = O_RDWR|O_CREAT|O_TRUNC;
- else {
- MP_ERR(stream, "[smb] Unknown open mode %d\n", mode);
- return STREAM_UNSUPPORTED;
- }
+ mode_t m = stream->mode == STREAM_WRITE ? O_RDWR|O_CREAT|O_TRUNC : O_RDONLY;
if(!filename) {
MP_ERR(stream, "[smb] Bad url\n");
@@ -149,4 +141,5 @@ const stream_info_t stream_info_smb = {
.name = "smb",
.open = open_f,
.protocols = (const char*[]){"smb", NULL},
+ .can_write = true, //who's gonna do that?
};