]> granicus.if.org Git - curl/commitdiff
smb_getsock: always wait for write socket too
authorDaniel Stenberg <daniel@haxx.se>
Thu, 19 Jul 2018 22:57:28 +0000 (00:57 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 20 Jul 2018 20:53:06 +0000 (22:53 +0200)
... 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

lib/smb.c

index fad63625214165aae31f9bc57b19fa21c04124b9..9ab8710ce56a8fe253a4aea4cf8bd1e0ace3b60b 100644 (file)
--- 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)