Loading lib/http.c +24 −4 Original line number Original line Diff line number Diff line Loading @@ -128,8 +128,10 @@ static CURLcode add_buffer_send(int sockfd, struct connectdata *conn, send_buffer *in, CURLcode add_buffer_send(int sockfd, struct connectdata *conn, send_buffer *in, long *bytes_written) long *bytes_written) { { size_t amount; ssize_t amount; CURLcode result; CURLcode res; char *ptr; int size; if(conn->data->set.verbose) { if(conn->data->set.verbose) { fputs("> ", conn->data->set.err); fputs("> ", conn->data->set.err); Loading @@ -137,7 +139,25 @@ CURLcode add_buffer_send(int sockfd, struct connectdata *conn, send_buffer *in, fwrite(in->buffer, in->size_used, 1, conn->data->set.err); fwrite(in->buffer, in->size_used, 1, conn->data->set.err); } } result = Curl_write(conn, sockfd, in->buffer, in->size_used, &amount); /* The looping below is required since we use non-blocking sockets, but due to the circumstances we will just loop and try again and again etc */ ptr = in->buffer; size = in->size_used; do { res = Curl_write(conn, sockfd, ptr, size, &amount); if(CURLE_OK != res) break; if(amount != size) { size += amount; ptr += amount; } else break; } while(1); if(in->buffer) if(in->buffer) free(in->buffer); free(in->buffer); Loading @@ -145,7 +165,7 @@ CURLcode add_buffer_send(int sockfd, struct connectdata *conn, send_buffer *in, *bytes_written = amount; *bytes_written = amount; return result; return res; } } Loading Loading
lib/http.c +24 −4 Original line number Original line Diff line number Diff line Loading @@ -128,8 +128,10 @@ static CURLcode add_buffer_send(int sockfd, struct connectdata *conn, send_buffer *in, CURLcode add_buffer_send(int sockfd, struct connectdata *conn, send_buffer *in, long *bytes_written) long *bytes_written) { { size_t amount; ssize_t amount; CURLcode result; CURLcode res; char *ptr; int size; if(conn->data->set.verbose) { if(conn->data->set.verbose) { fputs("> ", conn->data->set.err); fputs("> ", conn->data->set.err); Loading @@ -137,7 +139,25 @@ CURLcode add_buffer_send(int sockfd, struct connectdata *conn, send_buffer *in, fwrite(in->buffer, in->size_used, 1, conn->data->set.err); fwrite(in->buffer, in->size_used, 1, conn->data->set.err); } } result = Curl_write(conn, sockfd, in->buffer, in->size_used, &amount); /* The looping below is required since we use non-blocking sockets, but due to the circumstances we will just loop and try again and again etc */ ptr = in->buffer; size = in->size_used; do { res = Curl_write(conn, sockfd, ptr, size, &amount); if(CURLE_OK != res) break; if(amount != size) { size += amount; ptr += amount; } else break; } while(1); if(in->buffer) if(in->buffer) free(in->buffer); free(in->buffer); Loading @@ -145,7 +165,7 @@ CURLcode add_buffer_send(int sockfd, struct connectdata *conn, send_buffer *in, *bytes_written = amount; *bytes_written = amount; return result; return res; } } Loading