On Mon, Jan 07, 2019 at 06:47:37PM -0800, Masaya Suzuki wrote:
> HTTP_KEEP_ERROR makes it easy to debug HTTP transport errors. In order
> to make HTTP_KEEP_ERROR enabled for all requests, file handles need to
> be supported.
> 
> Signed-off-by: Masaya Suzuki <[email protected]>
> ---
>  http.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/http.c b/http.c
> index 0b6807cef9..06450da96e 100644
> --- a/http.c
> +++ b/http.c
> @@ -1991,16 +1991,19 @@ static int http_request_reauth(const char *url,
>       /*
>        * If we are using KEEP_ERROR, the previous request may have
>        * put cruft into our output stream; we should clear it out before
> -      * making our next request. We only know how to do this for
> -      * the strbuf case, but that is enough to satisfy current callers.
> +      * making our next request.
>        */
>       if (options && options->keep_error) {
>               switch (target) {
>               case HTTP_REQUEST_STRBUF:
>                       strbuf_reset(result);
>                       break;
> +             case HTTP_REQUEST_FILE:
> +                     fflush(result);
> +                     ftruncate(fileno(result), 0);

Some GCC versions complain about the above line:

  http.c: In function ‘http_request_reauth’:
  http.c:1961:3: error: ignoring return value of ‘ftruncate’, declared with 
attribute warn_unused_result [-Werror=unused-result]
     ftruncate(fileno(result), 0);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      CC shell.o
      CC remote-testsvn.o
      CC vcs-svn/line_buffer.o
  cc1: all warnings being treated as errors
  make: *** [http.o] Error 1
  make: *** Waiting for unfinished jobs....

> +                     break;
>               default:
> -                     BUG("HTTP_KEEP_ERROR is only supported with strbufs");
> +                     BUG("Unknown http_request target");
>               }
>       }
>  
> -- 
> 2.20.1.97.g81188d93c3-goog
> 

Reply via email to