count against this limit.
</verb>
+ <tag>ignore_expect_100</tag>
+ <p>Ported from 2.7. Requires --enable-http-violations
+ Prevents 417 errors being sent to broken HTTP/1.1 non-compliant clients.
+
<tag>include</tag>
<p>New option to import entire secondary configuration files into squid.conf.
<verb>
<p><em>http11</em> not yet ported from 2.7
<p><em>urlgroup=</em> not yet ported from 2.6
- <tag>ignore_expect_100</tag>
- <p>Not yet ported from 2.7
-
<tag>ignore_ims_on_miss</tag>
<p>Not yet ported from 2.7
<p><em>http11</em> not yet ported from 2.7
<p><em>urlgroup=</em> not yet ported from 2.6
- <tag>ignore_expect_100</tag>
- <p>Not yet ported from 2.7
-
<tag>ignore_ims_on_miss</tag>
<p>Not yet ported from 2.7
<li><p>Request is too large.</p></li>
<li><p>Content-Length missing for POST or PUT requests.</p></li>
<li><p>Illegal character in hostname; underscores are not allowed.</p></li>
+<li><p>HTTP/1.1 Expect: feature is being asked from an HTTP/1.0 software.</p></li>
</ul>
<p>Your cache administrator is <a href="mailto:%w%W">%w</a>.</p>
{"Date", HDR_DATE, ftDate_1123},
{"ETag", HDR_ETAG, ftETag},
{"Expires", HDR_EXPIRES, ftDate_1123},
+ {"Expect", HDR_EXPECT, ftStr},
{"From", HDR_FROM, ftStr},
{"Host", HDR_HOST, ftStr},
{"If-Match", HDR_IF_MATCH, ftStr}, /* for now */
HDR_CONTENT_ENCODING,
HDR_CONTENT_LANGUAGE,
HDR_CONNECTION,
+ HDR_EXPECT,
HDR_IF_MATCH, HDR_IF_NONE_MATCH,
HDR_LINK, HDR_PRAGMA,
HDR_PROXY_CONNECTION,
HDR_WWW_AUTHENTICATE,
HDR_AUTHENTICATION_INFO,
HDR_PROXY_AUTHENTICATION_INFO,
- /* HDR_EXPECT, HDR_TE, HDR_TRAILER */
+ /* HDR_TE, HDR_TRAILER */
#if X_ACCELERATOR_VARY
HDR_X_ACCELERATOR_VARY,
#endif
HDR_DATE,
HDR_ETAG,
HDR_EXPIRES,
+ HDR_EXPECT,
HDR_FROM,
HDR_HOST,
HDR_IF_MATCH,
or response to be rejected.
DOC_END
+NAME: ignore_expect_100
+COMMENT: on|off
+IFDEF: HTTP_VIOLATIONS
+TYPE: onoff
+LOC: Config.onoff.ignore_expect_100
+DEFAULT: off
+DOC_START
+ This option makes Squid ignore any Expect: 100-continue header present
+ in the request. RFC 2616 requires that Squid being unable to satisfy
+ the response expectation MUST return a 417 error.
+
+ Note: Enabling this is a HTTP protocol violation, but some clients may
+ not handle it well..
+DOC_END
+
COMMENT_START
TIMEOUTS
-----------------------------------------------------------------------------
goto finish;
}
+ if (request->header.has(HDR_EXPECT)) {
+ int ignore = 0;
+ if (Config.onoff.ignore_expect_100) {
+ String expect = request->header.getList(HDR_EXPECT);
+ if (expect.caseCmp("100-continue") == 0)
+ ignore = 1;
+ expect.clean();
+ }
+ if (!ignore) {
+ clientStreamNode *node = context->getClientReplyContext();
+ clientReplyContext *repContext = dynamic_cast<clientReplyContext *>(node->data.getRaw());
+ assert (repContext);
+ repContext->setReplyToError(ERR_INVALID_REQ, HTTP_EXPECTATION_FAILED, request->method, http->uri, conn->peer, request, NULL, NULL);
+ assert(context->http->out.offset == 0);
+ context->pullData();
+ goto finish;
+ }
+ }
+
http->request = HTTPMSGLOCK(request);
clientSetKeepaliveFlag(http);
#if HTTP_VIOLATIONS
int reload_into_ims;
+ int ignore_expect_100;
#endif
int offline;