Commit e9e53661 authored by Michael Kaufmann's avatar Michael Kaufmann
Browse files

New libcurl option to keep sending on error

Add the new option CURLOPT_KEEP_SENDING_ON_ERROR to control whether
sending the request body shall be completed when the server responds
early with an error status code.

This is suitable for manual NTLM authentication.

Reviewed-by: Jay Satiro

Closes https://github.com/curl/curl/pull/904
parent d1f1c857
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -144,6 +144,8 @@ Error message buffer. See \fICURLOPT_ERRORBUFFER(3)\fP
stderr replacement stream. See \fICURLOPT_STDERR(3)\fP
.IP CURLOPT_FAILONERROR
Fail on HTTP 4xx errors. \fICURLOPT_FAILONERROR(3)\fP
.IP CURLOPT_KEEP_SENDING_ON_ERROR
Keep sending on HTTP >= 300 errors. \fICURLOPT_KEEP_SENDING_ON_ERROR(3)\fP
.SH NETWORK OPTIONS
.IP CURLOPT_URL
URL to work on. See \fICURLOPT_URL(3)\fP
+1 −1
Original line number Diff line number Diff line
@@ -53,4 +53,4 @@ Along with HTTP
.SH RETURN VALUE
Returns CURLE_OK if HTTP is enabled, and CURLE_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
.BR CURLOPT_HTTP200ALIASES "(3), "
.BR CURLOPT_HTTP200ALIASES "(3), " CURLOPT_KEEP_SENDING_ON_ERROR "(3), "
+52 −0
Original line number Diff line number Diff line
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
.\" * are also available at https://curl.haxx.se/docs/copyright.html.
.\" *
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
.\" * copies of the Software, and permit persons to whom the Software is
.\" * furnished to do so, under the terms of the COPYING file.
.\" *
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
.\"
.TH CURLOPT_KEEP_SENDING_ON_ERROR 3 "22 Sep 2016" "libcurl 7.51.0" "curl_easy_setopt options"
.SH NAME
CURLOPT_KEEP_SENDING_ON_ERROR \- keep sending on early HTTP response >= 300
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_KEEP_SENDING_ON_ERROR, long keep_sending);
.SH DESCRIPTION
A long parameter set to 1 tells the library to keep sending the request body
if the HTTP code returned is equal to or larger than 300. The default action
would be to stop sending and close the stream or connection.

This option is suitable for manual NTLM authentication, i.e. if an application
does not use \fICURLOPT_HTTPAUTH(3)\fP, but instead sets "Authorization: NTLM ..."
headers manually using \fICURLOPT_HTTPHEADER(3)\fP.

Most applications do not need this option.

.SH DEFAULT
0, stop sending on error
.SH PROTOCOLS
HTTP
.SH EXAMPLE
TODO
.SH AVAILABILITY
Along with HTTP
.SH RETURN VALUE
Returns CURLE_OK if HTTP is enabled, and CURLE_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
.BR CURLOPT_FAILONERROR "(3), " CURLOPT_HTTPHEADER "(3), "
+3 −0
Original line number Diff line number Diff line
@@ -170,6 +170,7 @@ man_MANS = \
 CURLOPT_IOCTLFUNCTION.3                        \
 CURLOPT_IPRESOLVE.3                            \
 CURLOPT_ISSUERCERT.3                           \
 CURLOPT_KEEP_SENDING_ON_ERROR.3                \
 CURLOPT_KEYPASSWD.3                            \
 CURLOPT_KRBLEVEL.3                             \
 CURLOPT_LOCALPORT.3                            \
@@ -457,6 +458,7 @@ HTMLPAGES = \
 CURLOPT_IOCTLFUNCTION.html                     \
 CURLOPT_IPRESOLVE.html                         \
 CURLOPT_ISSUERCERT.html                        \
 CURLOPT_KEEP_SENDING_ON_ERROR.html             \
 CURLOPT_KEYPASSWD.html                         \
 CURLOPT_KRBLEVEL.html                          \
 CURLOPT_LOCALPORT.html                         \
@@ -744,6 +746,7 @@ PDFPAGES = \
 CURLOPT_IOCTLFUNCTION.pdf                      \
 CURLOPT_IPRESOLVE.pdf                          \
 CURLOPT_ISSUERCERT.pdf                         \
 CURLOPT_KEEP_SENDING_ON_ERROR.pdf              \
 CURLOPT_KEYPASSWD.pdf                          \
 CURLOPT_KRBLEVEL.pdf                           \
 CURLOPT_LOCALPORT.pdf                          \
+1 −0
Original line number Diff line number Diff line
@@ -411,6 +411,7 @@ CURLOPT_IOCTLFUNCTION 7.12.3
CURLOPT_IPRESOLVE               7.10.8
CURLOPT_ISSUERCERT              7.19.0
CURLOPT_KEYPASSWD               7.17.0
CURLOPT_KEEP_SENDING_ON_ERROR   7.51.0
CURLOPT_KRB4LEVEL               7.3           7.17.0
CURLOPT_KRBLEVEL                7.16.4
CURLOPT_LOCALPORT               7.15.2
Loading