]> git.ipfire.org Git - thirdparty/squid.git/blame - doc/release-notes/release-4.sgml
Resume using "Short Strings" memory pool ignored since 91bb468 (#227)
[thirdparty/squid.git] / doc / release-notes / release-4.sgml
CommitLineData
4d0832d7
AJ
1<!doctype linuxdoc system>
2<article>
b5391492 3<title>Squid 4.0.25 release notes</title>
4d0832d7
AJ
4<author>Squid Developers</author>
5
6<abstract>
183b876f 7This document contains the release notes for version 4 of Squid.
4d0832d7
AJ
8Squid is a WWW Cache application developed by the National Laboratory
9for Applied Network Research and members of the Web Caching community.
10</abstract>
11
12<toc>
13
14<sect>Notice
b5391492 15<p>The Squid Team are pleased to announce the release of Squid-4.0.25 for testing.
4d0832d7 16
183b876f 17This new release is available for download from <url url="http://www.squid-cache.org/Versions/v4/"> or the
71f0186a 18 <url url="http://www.squid-cache.org/Download/http-mirrors.html" name="mirrors">.
4d0832d7
AJ
19
20<p>While this release is not deemed ready for production use, we believe it is ready for wider testing by the community.
21
22<p>We welcome feedback and bug reports. If you find a bug, please see <url url="http://wiki.squid-cache.org/SquidFaq/BugReporting">
23 for how to submit a report with a stack trace.
24
25<sect1>Known issues
4dd2c9d6 26<p>Although this release is deemed good enough for use in many setups, please note the existence of
183b876f 27<url url="http://bugs.squid-cache.org/buglist.cgi?query_format=advanced&amp;product=Squid&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;version=4" name="open bugs against Squid-4">.
4d0832d7 28
1377f2b1 29<p>This release adds a dependency on C++11 support in any compiler used to build Squid.
4dd2c9d6 30 As a result older C++03 -only and most C++0x compilers will no longer build successfully.
a9d17dfc 31 GCC 4.9+ and Clang 3.5+ are known to have working C++11 support and are usable.
4dd2c9d6
AJ
32 GCC-4.8 will also build for now despite lack of full C++11 support, but some future features may not be available.
33
7b84ebcc
AJ
34<p>This release does not support LibreSSL.
35 Due to a bug in the way LibreSSL uses the OpenSSL version macro some changes
36 necessary to support OpenSSL 1.1 prevent building with LibreSSL.
37
38
183b876f 39<sect1>Changes since earlier releases of Squid-4
4d0832d7 40<p>
183b876f 41The Squid-4 change history can be <url url="http://www.squid-cache.org/Versions/v4/changesets/" name="viewed here">.
4d0832d7
AJ
42
43
44<sect>Major new features since Squid-3.5
183b876f 45<p>Squid 4 represents a new feature release above 3.5.
4d0832d7
AJ
46
47<p>The most important of these new features are:
48<itemize>
9a258777 49 <item>Configurable helper queue size
1377f2b1 50 <item>Helper concurrency channels changes
0e5c14da 51 <item>SSL support removal
b817c20f 52 <item>Helper Binary Changes
4dd2c9d6 53 <item>Secure ICAP
4dd2c9d6 54 <item>Improved SMP support
fbcef294 55 <item>Improved process management
7b84ebcc 56 <item>Initial GnuTLS support
f1dfef29 57 <item>ESI Custom Parser removal
4d0832d7
AJ
58</itemize>
59
60Most user-facing changes are reflected in squid.conf (see below).
61
62
6825b101
CT
63<sect1>Configurable helper queue size
64<p>The new queue-size=N option to helpers configuration, allows users
4dd2c9d6 65 to configure the maximum number of queued requests to busy helpers.
4d0832d7 66
32fd6d8a 67<sect1>Helper concurrency channels changes
4dd2c9d6
AJ
68<p>helper-mux.pl we have been distributing for the past few years to
69 encourage use of concurrency is no longer compatible with Squid. If
70 used it will spawn up to 2^64 helpers and DoS the Squid server.
71
72<p>Helpers utilizing arrays to handle fixed amounts of concurrency
73 channels MUST be re-written to use queues and capable of handling a
74 64-bit int as index or they will be vulnerable to buffer overrun and
75 arbitrary memory accesses.
32fd6d8a 76
4dd2c9d6
AJ
77<p>32-bit helpers need re-writing to handle the concurrency channel ID
78 as a 64-bit integer value. If not updated they will cause proxies to
79 return unexpected results or timeout once crossing the 32-bit wrap
80 boundary. Leading to undefined behaviour in the client HTTP traffic.
32fd6d8a 81
9a258777 82
0e5c14da 83<sect1>SSL support removal
9a258777 84<p>Details in <url url="https://tools.ietf.org/html/rfc6176" name="RFC 6176">
0e5c14da 85 and <url url="https://tools.ietf.org/html/rfc7568" name="RFC 7568">
9a258777
AJ
86
87<p>SSLv2 is not fit for purpose. Squid no longer supports being configured with
4dd2c9d6
AJ
88 any settings regarding this protocol. That includes settings manually disabling
89 its use since it is now forced to disable by default. Also settings enabling
90 various client/server workarounds specific to SSLv2 are removed.
9a258777 91
0e5c14da 92<p>SSLv3 is not fit for purpose. Squid still accepts configuration, but use
4dd2c9d6
AJ
93 is deprecated and will be removed entirely in a future version.
94 Squid default behavour is to follow the TLS built in negotiation mechanism
95 which prefers the latest TLS version. But also to accept downgrades to SSLv3.
96 Use <em>tls-options=NO_SSLv3</em> to disable SSLv3 support completely.
0e5c14da 97
4dd2c9d6
AJ
98<p>A new option <em>tls-min-version=1.N</em> is added in place of <em>sslversion=</em>
99 to configure the minimum version the TLS negotiation will allow to be used
100 when an old TLS version is requested by the remote endpoint.
9a258777 101
435c72b0
AJ
102<p>The system Trusted CAs are no longer used by default when verifying client
103 certificates. The <em>cafile=</em> option should be used instead to load
104 the specific CA which signed acceptible client certificates explicitly,
105 even if that CA is one of the system Trusted CAs.
106 The <em>tls-default-ca</em> option can be used to restore the old
107 behaviour explicitly if needed.
108
8f0e29d2 109
b817c20f
AJ
110<sect1>Helper Binary Changes
111<p>The <em>basic_msnt_multi_domain_auth</em> helper has been removed. The
112 <em>basic_smb_lm_auth</em> helper performs the same actions without extra
113 Perl and Samba dependencies.
114
e90ce3d1 115<p>The <em>cert_valid.pl</em> testing helper has been renamed to
bbf79f12 116 <em>security_fake_certverify</em>, reflecting the Squid helper naming schema
e90ce3d1
AJ
117 and that it does not actually perform any certificate checks.
118
8732ea9d
AJ
119<p>The <em>security_fake_certverify</em> helper is also now built and installed
120 by default. It is written in Perl so does not require OpenSSL dependencies
121 for installation. But does use the Perl Crypt::OpenSSL::X509 module for execution.
122 Building the helper can be controlled using the <em>--enable-security-cert-validators="fake"</em>
123 option.
124
cb0b3d63
AJ
125<p>The <em>ssl_crtd</em> helper has been renamed to <em>security_file_certgen</em>
126 and is now built and installed by default whenever OpenSSL support is enabled.
127 Building the helper can be controlled using the <em>--enable-security-cert-generators="file"</em>
128 option.
129 NOTE: The <em>--enable-ssl-crtd</em> option is still required to enable the
130 <em>sslcrtd_program</em> helper interface within Squid that uses the helper.
131
b817c20f
AJ
132<p>The <em>ntlm_smb_lm_auth</em> helper is now built using <em>--enable-auth-ntlm="SMB_LM"</em>.
133 Notice the upper case where it was previously a (wrongly) lower cased acronym.
4d0832d7
AJ
134
135
4dd2c9d6
AJ
136<sect1>Secure ICAP
137<p>ICAP services can now be used over TLS connections.
138
139<p>To mark an ICAP service as secure, use an <em>icaps://</em> service URI scheme when
140 listing your service via an icap_service directive. The industry is using a
68bdae93
AJ
141 <em>Secure ICAP</em> term, and Squid follows that convention, but <em>icaps</em> seems more
142 appropriate for a <em>scheme</em> name.
4dd2c9d6
AJ
143
144<p>Squid uses <em>port 11344</em> for Secure ICAP by default, following another popular
145 proxy convention. The old 1344 default for plain ICAP ports has not changed.
146
147
4dd2c9d6
AJ
148<sect1>Improved SMP support
149<p>Use of C++11 atomic operations instead of GNU atomics allows a wider range of
150 operating systems and compilers to build Squid SMP and multi-process features.
151 However this does require a C++11 or C++0x compiler with a recent version of
152 the C++ standard library.
153
154<p>IpcIo and Mmapped disk I/O modules are now auto-detected properly which
155 enables Rock storage on more systems by default than previously.
156
157
fbcef294
AJ
158<sect1>Improved process management
159<p>Squid is traditionally refered to as a daemon. But is actually a combination
160 of daemon and daemon manager processes. This has caused significant problems
161 integrating it with other third-party daemon managers.
162
163<p>The Squid process which places its PID into the squid.pid file has always
164 been the process to which control signals are sent. The manager process is
df200055
MM
165 now taking on signal handling instead of the main daemon process. Enabling
166 integration with daemon managers such as Upstart or systemd which assume the
fbcef294
AJ
167 process they initiated is the daemon with a PID to control.
168
d73c6e83
AW
169<p>The squid binary now has a new <em>--foreground</em> command line option,
170 which (only) prevents daemonizing the master process.
171 Unlike the old <em>-N</em> option,
fbcef294 172 <em>--foreground</em> supports SMP workers and multi-process features.
df200055
MM
173 <em>--foreground</em> is particularly useful for use with <em>-z</em> (disk
174 cache structures creation), as it allows the caller to wait until Squid has
175 finished.
fbcef294 176
b5391492
AJ
177<p>The squid binary now accepts a <em>--kid</em> command line option which
178 informs the process which role it is to take on. This aids with debugging
179 SMP issues with specific process types and resolves some SMP forking issues.
180
fbcef294 181
7b84ebcc 182<sect1>Initial GnuTLS support
2db9989c
AJ
183<p>Squid can now be built to use GnuTLS in place of OpenSSL for the core
184 features of receiving TLS connections from clients and making TLS
185 connections to servers. The GnuTLS support is still very much experimental
186 and should be tested before use.
187
188<p>SSL-Bump and certificate generation features are not yet supported by
189 GnuTLS builds. Nor are many other less commonly used Squid TLS/SSL features.
7b84ebcc
AJ
190
191<p><em>squid.conf</em> directives and configuration options which have undergone
192 name changes from 'ssl' to 'tls' prefix in Squid-4 have GnuTLS support, unless
193 explicitly stated otherwise.
194
195<p>Advanced configuration with specific selection of ciphers and similar settings
196 should still work, but needs the GnuTLS <em>Priority Strings</em> instead of
197 the OpenSSL options when using GnuTLS.
198
199
f1dfef29 200<sect1>ESI Custom Parser removal
201<p>The Squid custom ESI (Edge Side Includes) parser has been removed in favour
202of better supported and maintained third-party libraries. At least one of libxml2
203or libexpat is now mandatory to build support for the ESI response processor.
204
205
4d0832d7
AJ
206<sect>Changes to squid.conf since Squid-3.5
207<p>
208There have been changes to Squid's configuration file since Squid-3.5.
209
210This section gives a thorough account of those changes in three categories:
211
212<itemize>
213 <item><ref id="newtags" name="New tags">
214 <item><ref id="modifiedtags" name="Changes to existing tags">
215 <item><ref id="removedtags" name="Removed tags">
216</itemize>
217<p>
218
219<sect1>New tags<label id="newtags">
220<p>
221<descrip>
fbf7b67f
AJ
222 <tag>collapsed_forwarding_shared_entries_limit</tag>
223 <p>New directive to limit the size of a table used for sharing information
224 about collapsible entries among SMP workers.
225
66f92ffc
AJ
226 <tag>force_request_body_continuation</tag>
227 <p>New directive to control Squid behaviour on the client connection when
228 receiving an HTTP request with an Expect:100-continue header.
229
6f518cf0
S
230 <tag>hopeless_kid_revival_delay</tag>
231 <p>New directive to set a cool-down delay reviving a child process if
232 the process is encountering frequent deaths.
233
0d8b2d16
AJ
234 <tag>on_unsupported_protocol</tag>
235 <p>New directive to set the action performed when encountering strange
236 protocol requests at the beginning of an accepted TCP connection.
237
66f92ffc
AJ
238 <tag>pconn_lifetime</tag>
239 <p>New directive to limit the lifetime of persistent connections.
240
cde8f31b
NH
241 <tag>reply_header_add</tag>
242 <p>New directive to add header fields to outgoing HTTP responses to
243 the client.
244
0d8b2d16
AJ
245 <tag>request_start_timeout</tag>
246 <p>New directive controlling how long Squid waits for the first request
247 bytes to arrive after initial connection establishment by a client.
248
fbf7b67f
AJ
249 <tag>server_pconn_for_nonretriable</tag>
250 <p>New directive to provide fine-grained control over persistent connection
251 reuse when forwarding HTTP requests that Squid cannot retry. It is useful
252 in environments where opening new connections is very expensive
253 and race conditions associated with persistent connections are very rare
254 and/or only cause minor problems.
255
088d61c0
AJ
256 <tag>shared_memory_locking</tag>
257 <p>New directive to ensure shared memory is all available immediately
258 on startup. Protects against SIGBUS errors, but delays startup.
259
7e62a74f 260 <tag>tls_outgoing_options</tag>
0461fde7 261 <p>New directive to define TLS security context options for outgoing
7e62a74f 262 connections. For example to HTTPS servers.
4d0832d7 263
ff5d59eb
AJ
264 <tag>url_rewrite_timeout</tag>
265 <p>Squid times active requests to redirector. This option sets
266 the timeout value and the Squid reaction to a timed out
267 request.
268
4d0832d7
AJ
269</descrip>
270
271<sect1>Changes to existing tags<label id="modifiedtags">
272<p>
273<descrip>
da6dbcd1
EB
274 <tag>access_log</tag>
275 <p>TCP accept(2) errors logged with URI <em>error:accept-client-connection</em>.
276 <p>Unused connections received in <em>http_port</em> or <em>https_port</em>
277 or transactions terminated before reading[parsing] request headers
278 logged with URI <em>error:transaction-end-before-headers</em>.
66f92ffc
AJ
279 <p>New option <em>rotate=</em> to control the number of log file rotations
280 to make when <em>-k rotate</em> command is received. Default is to
281 obey the <em>logfile_rotate</em> directive.
da6dbcd1 282
0461fde7
AJ
283 <tag>acl</tag>
284 <p>New <em>-m</em> flag for <em>note</em> ACL to match substrings.
f1dfef29 285 <p>New <em>clientside_mark</em> type for matching Netfilter CONNMARK on
286 the client TCP connection.
57542821
AJ
287 <p>New <em>connections_encrypted</em> type for matching transactions
288 where all HTTP messages were received over TLS transport connections,
289 including messages received from ICAP servers.
ef396425
AJ
290 <p>New <em>has</em> type for matching whether or not Squid is able to provide
291 certain sets of transaction state. For example HTTP reply headers.
b008ed2e
AJ
292 <p>New <em>transaction_initiator</em> type for detecting various
293 unusual transactions.
294 <p>New <em>--consensus</em>, <em>--client-requested</em> and
295 <em>--server-provided</em> flags for the <em>ssl::server_name</em>
296 type to control which server name to match against.
0461fde7 297
9a258777
AJ
298 <tag>auth_param</tag>
299 <p>New parameter <em>queue-size=</em> to set the maximum number
300 of queued requests.
6082a0e2
EB
301 <p>New parameter <em>on-persistent-overload=</em> to set the action taken
302 when the helper queue is overloaded.
9a258777
AJ
303
304 <tag>cache_peer</tag>
9825b398
AJ
305 <p>New option <em>auth-no-keytab</em> to let GSSAPI implementation determine
306 which Kerberos credentials to use, instead of specifying a keytab.
0ff7e52d
AJ
307 <p>Replaced option <em>ssl</em> with <em>tls</em>. Use of any
308 <em>tls-</em> prefixed options implies <em>tls</em> is enabled.
1cc44095 309 <p>New option <em>tls-min-version=1.N</em> to set minimum TLS version allowed.
435c72b0 310 <p>New option <em>tls-default-ca</em> replaces <em>sslflags=NO_DEFAULT_CA</em>
b05d749d 311 <p>New option <em>tls-no-npn</em> to disable sending TLS NPN extension.
0e5c14da
AJ
312 <p>All <em>ssloptions=</em> values for SSLv2 configuration or disabling
313 have been removed.
314 <p>Removed <em>sslversion=</em> option. Use <em>tls-options=</em> instead.
9a258777 315 <p>Manual squid.conf update may be required on upgrade.
0ff7e52d
AJ
316 <p>Replaced option <em>sslcafile=</em> with <em>tls-cafile=</em>
317 which takes multiple entries.
9a258777 318
66f92ffc
AJ
319 <tag>deny_info</tag>
320 <p>New format macro <em>%O</em> to expand the <em>message=</em> value supplied
321 by external ACL helpers.
322
323 <tag>ecap_service</tag>
324 <p>New <em>connection-encryption=</em> option to determine ICAP service
325 effect on <em>connections_encrypted</em> ACL.
326
f1dfef29 327 <tag>esi_parser</tag>
328 <p>Removed <em>custom</em> parser option.
329 <p>Changed default to auto-detect available parsers instead of <em>custom</em>.
330
183b876f 331 <tag>external_acl_type</tag>
9a258777
AJ
332 <p>New parameter <em>queue-size=</em> to set the maximum number
333 of queued requests.
6082a0e2
EB
334 <p>New parameter <em>on-persistent-overload=</em> to set the action taken
335 when the helper queue is overloaded.
1243ec71 336 <p>Format field updated to accept any logformat %macro code.
9a258777
AJ
337
338 <tag>http_port</tag>
0e5c14da 339 <p>New option <em>tls-min-version=1.N</em> to set minimum TLS version allowed.
e8cc1c9c
AJ
340 <p>New option <em>tls-default-ca</em> replaces <em>sslflags=NO_DEFAULT_CA</em>,
341 the default is also changed to OFF.
b05d749d 342 <p>New option <em>tls-no-npn</em> to disable sending TLS NPN extension.
0e5c14da
AJ
343 <p>All <em>option=</em> values for SSLv2 configuration or disabling
344 have been removed.
345 <p>Removed <em>version=</em> option. Use <em>tls-options=</em> instead.
9a258777 346 <p>Manual squid.conf update may be required on upgrade.
b0769ee3 347 <p>Replaced <em>cafile=</em> with <em>tls-cafile=</em> which takes multiple entries.
b1f62fc6 348 <p>Changed default value of <em>generate-host-certificates</em> to ON.
9a258777
AJ
349
350 <tag>https_port</tag>
0e5c14da 351 <p>New option <em>tls-min-version=1.N</em> to set minimum TLS version allowed.
435c72b0
AJ
352 <p>New option <em>tls-default-ca</em> replaces <em>sslflags=NO_DEFAULT_CA</em>,
353 the default is also changed to OFF.
b05d749d 354 <p>New option <em>tls-no-npn</em> to disable sending TLS NPN extension.
1cc44095 355 <p>All <em>options=</em> values for SSLv2
9a258777 356 configuration or disabling have been removed.
0e5c14da 357 <p>Removed <em>version=</em> option. Use <em>tls-options=</em> instead.
9a258777 358 <p>Manual squid.conf update may be required on upgrade.
b0769ee3 359 <p>Replaced <em>cafile=</em> with <em>tls-cafile=</em> which takes multiple entries.
b1f62fc6 360 <p>Changed default value of <em>generate-host-certificates</em> to ON.
9a258777 361
4dd2c9d6
AJ
362 <tag>icap_service</tag>
363 <p>New scheme <em>icaps://</em> to enable TLS/SSL connections to Secure ICAP
364 servers on port 11344.
66f92ffc
AJ
365 <p>New <em>connection-encryption=</em> option to determine ICAP service
366 effect on <em>connections_encrypted</em> ACL.
4dd2c9d6
AJ
367 <p>New <em>tls-cert=</em> option to set TLS client certificate to use.
368 <p>New <em>tls-key=</em> option to set TLS private key matching the client
369 certificate used.
370 <p>New <em>tls-min-version=1.N</em> option to set minimum TLS version allowed
371 on server connections.
372 <p>New <em>tls-options=</em> option to set OpenSSL library parameters.
373 <p>New <em>tls-flags=</em> option to set flags modifying Squid TLS operations.
374 <p>New <em>tls-cipher=</em> option to set a list of ciphers permitted.
375 <p>New <em>tls-cafile=</em> option to set a file with additional CA
376 certificate(s) to verify the server certificate.
66f92ffc
AJ
377 <p>New <em>tls-capath=</em> option to set a directory with additional CA
378 certificate(s) to verify the server certificate.
4dd2c9d6
AJ
379 <p>New <em>tls-crlfile=</em> option to set a file with a CRL to verify the
380 server certificate.
435c72b0
AJ
381 <p>New <em>tls-default-ca</em> option to use the system Trusted CAs to
382 verify the server certificate.
4dd2c9d6
AJ
383 <p>New <em>tls-domain=</em> option to verify the server certificate domain.
384
b5391492
AJ
385 <tag>logfile_daemon</tag>
386 <p>Now only requires that helper binary exists when daemon: log module
387 is actually being used.
388
c28b9a0e 389 <tag>logformat</tag>
66f92ffc
AJ
390 <p>New quoting modifier to produce <em>\-escaped</em> output.
391 <p>New code <em>%ssl::&lt;cert_errors</em> to display server X.509
0461fde7 392 certificate errors.
66f92ffc
AJ
393 <p>New code <em>%ssl::&lt;cert_issuer</em> to display Issuer field of
394 the received server X.509 certificate.
395 <p>New code <em>%ssl::&lt;cert_subject</em> to display Subject field of
396 the received server X.509 certificate.
0461fde7
AJ
397 <p>New code <em>%ssl::&gt;negotiated_version</em> to display
398 negotiated TLS version of the client connection.
399 <p>New code <em>%ssl::&lt;negotiated_version</em> to display
400 negotiated TLS version of the last server or peer connection.
401 <p>New code <em>%ssl::&gt;received_hello_version</em> to display the
402 TLS version of the Hello message received from TLS client.
403 <p>New code <em>%ssl::&lt;received_hello_version</em> to display the
404 TLS version of the Hello message received from TLS server.
405 <p>New code <em>%ssl::&gt;received_supported_version</em> to display
406 the maximum TLS version supported by the TLS client.
407 <p>New code <em>%ssl::&lt;received_supported_version</em> to display
408 the maximum TLS version supported by the TLS server.
409 <p>New code <em>%ssl::&gt;negotiated_cipher</em> to display the
410 negotiated cipher of the client connection.
411 <p>New code <em>%ssl::&lt;negotiated_cipher</em> to display the
412 negotiated cipher of the last server or peer connection.
f1dfef29 413 <p>Fixed <em>%&lt;Hs</em>, <em>%&lt;pt</em> and <em>%&lt;tt</em>
414 codes for received CONNECT errors.
415 <p>Improved <em>%&lt;bs</em> logging on forwarding retries.
416 <p>Improved <em>%&lt;Hs</em>, <em>%&lt;pt</em>, <em>%&lt;tt</em>,
417 <em>%&lt;bs</em> logging on SslBump errors.
c28b9a0e
AJ
418
419 <tag>pid_filename</tag>
420 <p>Default value now based on squid -n command line parameter.
66f92ffc
AJ
421 <p>This directive is no longer mandatory to edit for
422 multi-instance/tenant Squid installations.
c28b9a0e 423
064679ea 424 <tag>refresh_pattern</tag>
1377f2b1
AJ
425 <p>Removed option <em>ignore-auth</em>. Its commonly desired behaviour
426 is performed by default with correct HTTP/1.1 revalidation.
66f92ffc
AJ
427 <p>Removed option <em>ignore-must-revalidate</em>. Other more HTTP compliant
428 directives (<em>cache</em>, <em>store_miss</em>) can be used to prevent
429 objects from caching.
064679ea 430
9a258777
AJ
431 <tag>sslcrtd_children</tag>
432 <p>New parameter <em>queue-size=</em> to set the maximum number
433 of queued requests.
6082a0e2
EB
434 <p>New parameter <em>on-persistent-overload=</em> to set the action taken
435 when the helper queue is overloaded.
9a258777
AJ
436
437 <tag>sslcrtvalidator_children</tag>
438 <p>New parameter <em>queue-size=</em> to set the maximum number
439 of queued requests.
6082a0e2
EB
440 <p>New parameter <em>on-persistent-overload=</em> to set the action taken
441 when the helper queue is overloaded.
442
443 <tag>store_id_children</tag>
444 <p>New parameter <em>queue-size=</em> to set the maximum number
445 of queued requests.
446 <p>New parameter <em>on-persistent-overload=</em> to set the action taken
447 when the helper queue is overloaded.
6825b101 448
183b876f 449 <tag>url_rewrite_children</tag>
9a258777
AJ
450 <p>New parameter <em>queue-size=</em> to set the maximum number
451 of queued requests.
6082a0e2
EB
452 <p>New parameter <em>on-persistent-overload=</em> to set the action taken
453 when the helper queue is overloaded.
4d0832d7
AJ
454
455</descrip>
456
457<sect1>Removed tags<label id="removedtags">
458<p>
459<descrip>
f1a5d071
AJ
460 <tag>cache_peer_domain</tag>
461 <p>Superceded by <em>cache_peer_access</em>. Use dstdomain ACL
462 in the access control list to restrict domains requested.
463
6eb545bc
AJ
464 <tag>ie_refresh</tag>
465 <p>Removed. MSIE 3.x, 4.x, 5.0 and 5.01 are no longer popular browsers.
466
7e62a74f
AJ
467 <tag>sslproxy_cafile</tag>
468 <p>Replaced by <em>tls_outgoing_options cafile=</em>.
b0769ee3 469 Which now takes multiple entries.
7e62a74f
AJ
470
471 <tag>sslproxy_capath</tag>
472 <p>Replaced by <em>tls_outgoing_options capath=</em>.
473
474 <tag>sslproxy_cipher</tag>
475 <p>Replaced by <em>tls_outgoing_options cipher=</em>.
476
477 <tag>sslproxy_client_certificate</tag>
478 <p>Replaced by <em>tls_outgoing_options cert=</em>.
479
480 <tag>sslproxy_client_key</tag>
481 <p>Replaced by <em>tls_outgoing_options key=</em>.
482
483 <tag>sslproxy_flags</tag>
484 <p>Replaced by <em>tls_outgoing_options flags=</em>.
485
486 <tag>sslproxy_options</tag>
487 <p>Replaced by <em>tls_outgoing_options options=</em>.
1cc44095
AJ
488 <p>All values for SSLv2 configuration or disabling have been removed.
489 <p>Manual squid.conf update may be required on upgrade.
7e62a74f
AJ
490
491 <tag>sslproxy_version</tag>
1cc44095
AJ
492 <p>Replaced by <em>tls_outgoing_options options=</em>.
493 <p>All values for SSLv2 configuration or disabling have been removed.
494 <p>Manual squid.conf update may be required on upgrade.
4d0832d7
AJ
495
496</descrip>
497
498
499<sect>Changes to ./configure options since Squid-3.5
500<p>
501There have been some changes to Squid's build configuration since Squid-3.5.
502
503This section gives an account of those changes in three categories:
504
505<itemize>
506 <item><ref id="newoptions" name="New options">
507 <item><ref id="modifiedoptions" name="Changes to existing options">
508 <item><ref id="removedoptions" name="Removed options">
509</itemize>
510
511
512<sect1>New options<label id="newoptions">
513<p>
514<descrip>
cb0b3d63
AJ
515 <tag>--enable-security-cert-generators</tag>
516 <p>New option to control which TLS/SSL dynamic certificate generator
517 helpers are built and installed.
c5e641b4 518 <p>Helper <em>ssl_crtd</em> has been renamed to <em>security_file_certgen</em>
cb0b3d63
AJ
519 and built with module name <em>file</em>. Requires <em>--with-openssl</em>.
520
8732ea9d 521 <tag>--enable-security-cert-validators</tag>
cb0b3d63 522 <p>New option to control which TLS/SSL certificate validation
40063c71
AJ
523 helpers are built and installed.
524 <p>One <em>fake</em> helper that does not actually perform any
525 certificate checks is provided for testing and as an example
526 for writing custom helpers.
4d0832d7 527
d93bf055
AJ
528 <tag>--without-cppunit</tag>
529 <p>The cppunit testing framework is auto-detected and used when available.
530 This option can be used to disable it explicitly.
531
4d0832d7
AJ
532</descrip>
533
534<sect1>Changes to existing options<label id="modifiedoptions">
535<p>
536<descrip>
700e2961
AJ
537 <tag>--enable-auth-basic</tag>
538 <p>The <em>MSNT-multi-domain</em> helper has been removed.
8d06d869
AJ
539 <p>The SMB LanMan helper <em>SMB_LM</em> is no longer built by default.
540 It needs to be explicitly listed to be built.
4d0832d7 541
b817c20f
AJ
542 <tag>--enable-auth-ntlm</tag>
543 <p>The SMB LanMan helper is now built using <em>SMB_LM</em>
544 (was lower case <em>smb_lm</em>).
8d06d869
AJ
545 <p>The SMB LanMan helper <em>SMB_LM</em> is no longer built by default.
546 It needs to be explicitly listed to be built.
b817c20f 547
4dd2c9d6
AJ
548 <tag>--enable-diskio</tag>
549 <p>Auto-detection of SMP related modules has been fixed to
550 actually auto-detect them without configuring the module
551 list manually.
552
f1dfef29 553 <tag>--enable-esi</tag>
554 <p>Custom ESI parser has been removed.
555 Libxml2 or libexpat is now required to enable ESI processing.
556
4d0832d7
AJ
557</descrip>
558</p>
559
560<sect1>Removed options<label id="removedoptions">
561<p>
562<descrip>
d93bf055
AJ
563 <tag>--with-cppunit-basedir</tag>
564 <p>Replaced by <em>--with-cppunit=PATH</em>.
565 Please prefer the default auto-detection though.
4d0832d7 566
7566fb7e
AJ
567 <tag>XSTD_USE_LIBLTDL</tag>
568 <p>Removed. Use <em>--with-included-ltdl</em> instead.
4d0832d7
AJ
569</descrip>
570
571
572<sect>Regressions since Squid-2.7
573
183b876f 574<p>Some squid.conf options which were available in Squid-2.7 are not yet available in Squid-4
4d0832d7
AJ
575
576<p>If you need something to do then porting one of these from Squid-2 to Squid-3 is most welcome.
577
578<sect1>Missing squid.conf options available in Squid-2.7
579<p>
580<descrip>
581 <tag>broken_vary_encoding</tag>
582 <p>Not yet ported from 2.6
583
584 <tag>cache_peer</tag>
585 <p><em>monitorinterval=</em> not yet ported from 2.6
586 <p><em>monitorsize=</em> not yet ported from 2.6
587 <p><em>monitortimeout=</em> not yet ported from 2.6
588 <p><em>monitorurl=</em> not yet ported from 2.6
589
590 <tag>cache_vary</tag>
591 <p>Not yet ported from 2.6
592
593 <tag>error_map</tag>
594 <p>Not yet ported from 2.6
595
596 <tag>external_refresh_check</tag>
597 <p>Not yet ported from 2.7
598
599 <tag>location_rewrite_access</tag>
600 <p>Not yet ported from 2.6
601
602 <tag>location_rewrite_children</tag>
603 <p>Not yet ported from 2.6
604
605 <tag>location_rewrite_concurrency</tag>
606 <p>Not yet ported from 2.6
607
608 <tag>location_rewrite_program</tag>
609 <p>Not yet ported from 2.6
610
611 <tag>refresh_pattern</tag>
612 <p><em>stale-while-revalidate=</em> not yet ported from 2.7
613 <p><em>ignore-stale-while-revalidate=</em> not yet ported from 2.7
614 <p><em>negative-ttl=</em> not yet ported from 2.7
615
616 <tag>refresh_stale_hit</tag>
617 <p>Not yet ported from 2.7
618
619 <tag>update_headers</tag>
620 <p>Not yet ported from 2.7
621
622</descrip>
623
6a9396a7
AJ
624<sect>Copyright
625<p>
5b74111a 626Copyright (C) 1996-2018 The Squid Software Foundation and contributors
6a9396a7
AJ
627<p>
628Squid software is distributed under GPLv2+ license and includes
629contributions from numerous individuals and organizations.
630Please see the COPYING and CONTRIBUTORS files for details.
631
4d0832d7 632</article>