Commit e54e0c78 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

CURLOPT_BUFFERSIZE allows an application to set a prefered buffer size

for receiving data from the network. It is meant as a hint, not as a forced
limit.
parent 5cb06d8f
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -220,7 +220,9 @@ CURLcode Curl_readwrite(struct connectdata *conn,

      /* read! */
      result = Curl_read(conn, conn->sockfd, k->buf,
                         BUFSIZE -1, &nread);
                         data->set.buffer_size?
                         data->set.buffer_size:BUFSIZE -1,
                         &nread);

      if(0>result)
        break; /* get out of loop */
+13 −0
Original line number Diff line number Diff line
@@ -1011,6 +1011,19 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, ...)
     */
    data->set.telnet_options = va_arg(param, struct curl_slist *);
    break;

  case CURLOPT_BUFFERSIZE:
    /*
     * The application kindly asks for a differently sized receive buffer.
     * If it seems reasonable, we'll use it.
     */
    data->set.buffer_size = va_arg(param, long);

    if(data->set.buffer_size> (BUFSIZE -1 ))
      data->set.buffer_size = 0; /* huge internal default */

    break;

  default:
    /* unknown tag and its companion, just ignore: */
    return CURLE_FAILED_INIT; /* correct this */
+1 −0
Original line number Diff line number Diff line
@@ -631,6 +631,7 @@ struct UserDefined {
  struct ssl_config_data ssl;  /* user defined SSL stuff */

  int dns_cache_timeout; /* DNS cache timeout */
  long buffer_size;      /* size of receive buffer to use */
  
/* Here follows boolean settings that define how to behave during
   this session. They are STATIC, set by libcurl users or at least initially