Commit 790d6de4 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

readwrite_data: set a max number of loops

... as otherwise a really fast pipe can "lock" one transfer for some
protocols, like with HTTP/2.
parent 4f037367
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -399,6 +399,7 @@ static CURLcode readwrite_data(struct SessionHandle *data,
  size_t excess = 0; /* excess bytes read */
  bool is_empty_data = FALSE;
  bool readmore = FALSE; /* used by RTP to signal for more data */
  int maxloops = 100;

  *done = FALSE;

@@ -794,7 +795,7 @@ static CURLcode readwrite_data(struct SessionHandle *data,
      k->keepon &= ~KEEP_RECV;
    }

  } while(data_pending(conn));
  } while(data_pending(conn) && maxloops--);

  if(((k->keepon & (KEEP_RECV|KEEP_SEND)) == KEEP_SEND) &&
     conn->bits.close ) {