diff --git a/lib/transfer.c b/lib/transfer.c index ab0af9f423c630a273a01c04a9f7a17df3f16e29..1609529a5daf457a4514d84b4f59a9b8697ecd4e 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -431,9 +431,21 @@ Transfer(struct connectdata *c_conn) wkeepfd = writefd; } } - else + else header = FALSE; /* no more header to parse! */ + if (417 == httpcode) { + /* + * we got: "417 Expectation Failed" this means: + * we have made a HTTP call and our Expect Header + * seems to cause a problem => abort the write operations + * (or prevent them from starting + */ + write_after_100_header = FALSE; + keepon &= ~KEEP_WRITE; + FD_ZERO(&wkeepfd); + } + /* now, only output this if the header AND body are requested: */ writetype = CLIENTWRITE_HEADER;