aboutsummaryrefslogtreecommitdiff
path: root/lib/smb.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2018-07-20 00:57:28 +0200
committerDaniel Stenberg <daniel@haxx.se>2018-07-20 22:53:06 +0200
commit73af7bcd617a8c0312bd8a083daa5a8fad2c794e (patch)
tree0bb788139e2c0973cde9e395facadb87f1d8c771 /lib/smb.c
parent7bc118043749d3a533e16b45269446a1edbd09d8 (diff)
smb_getsock: always wait for write socket too
... the protocol is doing read/write a lot, so it needs to write often even when downloading. A more proper fix could check for eactly when it wants to write and only ask for it then. Without this fix, an SMB download could easily get stuck when the event-driven API was used. Closes #2768
Diffstat (limited to 'lib/smb.c')
-rw-r--r--lib/smb.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/lib/smb.c b/lib/smb.c
index fad636252..9ab8710ce 100644
--- a/lib/smb.c
+++ b/lib/smb.c
@@ -941,17 +941,11 @@ static CURLcode smb_disconnect(struct connectdata *conn, bool dead)
static int smb_getsock(struct connectdata *conn, curl_socket_t *socks,
int numsocks)
{
- struct smb_conn *smbc = &conn->proto.smbc;
-
if(!numsocks)
return GETSOCK_BLANK;
socks[0] = conn->sock[FIRSTSOCKET];
-
- if(smbc->send_size || smbc->upload_size)
- return GETSOCK_WRITESOCK(0);
-
- return GETSOCK_READSOCK(0);
+ return GETSOCK_READSOCK(0) | GETSOCK_WRITESOCK(0);
}
static CURLcode smb_parse_url_path(struct connectdata *conn)