1<?xml version="1.0" encoding="utf-8" ?>
2<!DOCTYPE chapter SYSTEM "chapter.dtd">
3
4<chapter>
5  <header>
6    <copyright>
7      <year>2002</year><year>2018</year>
8      <holder>Ericsson AB. All Rights Reserved.</holder>
9    </copyright>
10    <legalnotice>
11      Licensed under the Apache License, Version 2.0 (the "License");
12      you may not use this file except in compliance with the License.
13      You may obtain a copy of the License at
14
15          http://www.apache.org/licenses/LICENSE-2.0
16
17      Unless required by applicable law or agreed to in writing, software
18      distributed under the License is distributed on an "AS IS" BASIS,
19      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20      See the License for the specific language governing permissions and
21      limitations under the License.
22
23    </legalnotice>
24
25    <title>Inets Release Notes</title>
26    <prepared></prepared>
27    <responsible></responsible>
28    <docno></docno>
29    <approved></approved>
30    <checked></checked>
31    <date>2002-02-28</date>
32    <rev>A</rev>
33    <file>notes.xml</file>
34  </header>
35
36  <section><title>Inets 7.1.3.3</title>
37
38    <section><title>Fixed Bugs and Malfunctions</title>
39      <list>
40        <item>
41          <p>
42	    Corrected an error regarding decode of percent encoded
43	    URLs introduced in inets-7.1.3.</p>
44          <p>
45	    Own Id: OTP-16790 Aux Id: ERIERL-522 </p>
46        </item>
47      </list>
48    </section>
49
50</section>
51
52<section><title>Inets 7.1.3.2</title>
53
54    <section><title>Fixed Bugs and Malfunctions</title>
55      <list>
56        <item>
57          <p>
58	    Fix a crash in http server when setopts is called on a
59	    socket closed by the peer.</p>
60          <p>
61	    Own Id: OTP-16775 Aux Id: ERIERL-519 </p>
62        </item>
63      </list>
64    </section>
65
66</section>
67
68<section><title>Inets 7.1.3.1</title>
69
70    <section><title>Fixed Bugs and Malfunctions</title>
71      <list>
72        <item>
73          <p>
74	    Avoid timing issue when setting active once on a socket
75	    that is being closed by the peer.</p>
76          <p>
77	    Own Id: OTP-16735 Aux Id: OTP-16697, ERIERL-496 </p>
78        </item>
79      </list>
80    </section>
81
82</section>
83
84<section><title>Inets 7.1.3</title>
85
86    <section><title>Fixed Bugs and Malfunctions</title>
87      <list>
88        <item>
89          <p>
90	    Remove use of http_uri and mod_esi eval API. </p>
91          <p>
92	    This is a backport from OTP 23 that improves the check of
93	    URIs to ensure that invalid URIs does not cause
94	    vulnerabilities. This will render the deprecated mod_esi
95	    eval API unusable as it used URI that does not conform to
96	    valid URI syntax.</p>
97          <p>
98	    *** POTENTIAL INCOMPATIBILITY ***</p>
99          <p>
100	    Own Id: OTP-16556</p>
101        </item>
102      </list>
103    </section>
104
105</section>
106
107<section><title>Inets 7.1.2</title>
108
109    <section><title>Fixed Bugs and Malfunctions</title>
110      <list>
111        <item>
112          <p>
113	    Inets will honor that valid HTTP headers can not have
114	    white space between field-name and the colon.</p>
115          <p>
116	    Own Id: OTP-16169 Aux Id: ERL-1053 </p>
117        </item>
118        <item>
119          <p>
120	    Changed error propagation in httpc:request/1 to return
121	    expected error tuple instead of crashing.</p>
122          <p>
123	    Own Id: OTP-16290 Aux Id: PR-2437, ERL-1083 </p>
124        </item>
125        <item>
126          <p>
127	    Fix handling of HEAD request with chunked
128	    transfer-encoding (httpc).</p>
129          <p>
130	    Own Id: OTP-16300 Aux Id: ERL-1090 </p>
131        </item>
132      </list>
133    </section>
134
135</section>
136
137<section><title>Inets 7.1.1</title>
138
139    <section><title>Improvements and New Features</title>
140      <list>
141        <item>
142          <p>
143	    Add HTTP server error logging vi logger</p>
144          <p>
145	    Own Id: OTP-16019</p>
146        </item>
147      </list>
148    </section>
149
150</section>
151
152<section><title>Inets 7.1</title>
153
154    <section><title>Improvements and New Features</title>
155      <list>
156        <item>
157          <p>
158	    httpd - Accept singel LF as line terminator</p>
159          <p>
160	    Own Id: OTP-15893 Aux Id: PR-2206 </p>
161        </item>
162        <item>
163          <p>
164	    mod_esi will now always propagate the actual HTTP status
165	    code that it answered with, to later mod-modules, and not
166	    in some cases hardcode 200.</p>
167          <p>
168	    Own Id: OTP-16049 Aux Id: ERIERL-395 </p>
169        </item>
170      </list>
171    </section>
172
173</section>
174
175<section><title>Inets 7.0.9</title>
176
177    <section><title>Fixed Bugs and Malfunctions</title>
178      <list>
179        <item>
180          <p>
181	    Fix a regression in http client that causes a crash when
182	    request URI has no scheme.</p>
183          <p>
184	    Own Id: OTP-15930 Aux Id: ERL-969 </p>
185        </item>
186      </list>
187    </section>
188
189</section>
190
191<section><title>Inets 7.0.8</title>
192
193    <section><title>Fixed Bugs and Malfunctions</title>
194      <list>
195        <item>
196          <p>
197	    All incorrect (that is, all) uses of "can not" has been
198	    corrected to "cannot" in source code comments,
199	    documentation, examples, and so on.</p>
200          <p>
201	    Own Id: OTP-14282 Aux Id: PR-1891 </p>
202        </item>
203      </list>
204    </section>
205
206</section>
207
208  <section><title>Inets 7.0.7.2</title>
209
210    <section><title>Improvements and New Features</title>
211      <list>
212        <item>
213          <p>
214	    Add HTTP server error logging vi logger</p>
215          <p>
216	    Own Id: OTP-16019</p>
217        </item>
218      </list>
219    </section>
220
221</section>
222
223  <section><title>Inets 7.0.7.1</title>
224
225    <section><title>Improvements and New Features</title>
226      <list>
227        <item>
228          <p>
229	    mod_esi will now always propagate the actual HTTP status
230	    code that it anwsered with, to later mod-modules, and not
231	    in some cases hardcode 200.</p>
232          <p>
233	    Own Id: OTP-16049 Aux Id: ERIERL-395 </p>
234        </item>
235      </list>
236    </section>
237
238</section>
239
240<section><title>Inets 7.0.7</title>
241
242    <section><title>Fixed Bugs and Malfunctions</title>
243      <list>
244        <item>
245          <p>
246	    Fix the internal handling of the option
247	    erl_script_timeout in httpd. If explicit
248	    erl_script_timeout value was supplied in seconds it was
249	    not correctly converted to millisecond units for internal
250	    usage.</p>
251          <p>
252	    This change fixes the handling of erl_script_timeout in
253	    all possible configuration scenarios.</p>
254          <p>
255	    Own Id: OTP-15769 Aux Id: ERIERL-345 </p>
256        </item>
257      </list>
258    </section>
259
260</section>
261
262<section><title>Inets 7.0.6</title>
263
264    <section><title>Fixed Bugs and Malfunctions</title>
265      <list>
266        <item>
267          <p>
268	    Fix the internal handling of the option
269	    erl_script_timeout in httpd. When httpd was started with
270	    explicit erl_script_timeout, the value of the option was
271	    converted to milliseconds before storage. Subsequent
272	    calls to httpd:info/1 returned the input value multiplied
273	    by 1000.</p>
274          <p>
275	    This change fixes the handing of erl_script_timeout by
276	    storing the timeout in seconds and converting to
277	    milliseconds before usage.</p>
278          <p>
279	    Own Id: OTP-15669 Aux Id: ERIERL-321 </p>
280        </item>
281      </list>
282    </section>
283
284
285    <section><title>Improvements and New Features</title>
286      <list>
287        <item>
288          <p>
289	    Enhance documentation</p>
290          <p>
291	    Own Id: OTP-15508 Aux Id: ERL-816 </p>
292        </item>
293      </list>
294    </section>
295
296</section>
297
298<section><title>Inets 7.0.5</title>
299
300    <section><title>Fixed Bugs and Malfunctions</title>
301      <list>
302        <item>
303          <p>
304	    Fixed bug that causes a crash in http client when using
305	    hostnames (e.g. localhost) with the the option
306	    ipv6_host_with_brackets set to true.</p>
307          <p>
308	    This change also fixes a regression: httpc:request fails
309	    with connection error (nxdomain) if option
310	    ipv6_host_with_brackets set to true and host component of
311	    the URI is an IPv6 address.</p>
312          <p>
313	    Own Id: OTP-15554 Aux Id: ERIERL-289 </p>
314        </item>
315      </list>
316    </section>
317
318</section>
319
320<section><title>Inets 7.0.4</title>
321
322    <section><title>Fixed Bugs and Malfunctions</title>
323      <list>
324        <item>
325          <p>
326	    Make sure ipv6 addresses with brackets in URIs are
327	    converted correctly before passing to lower level
328	    functions like gen_tcp and ssl functions. Could cause
329	    connection to fail.</p>
330          <p>
331	    Own Id: OTP-15544 Aux Id: ERIERL-289 </p>
332        </item>
333      </list>
334    </section>
335
336</section>
337
338<section><title>Inets 7.0.3</title>
339
340    <section><title>Fixed Bugs and Malfunctions</title>
341      <list>
342        <item>
343          <p>
344	    Fixed http client to not send 'content-length' header in
345	    chunked encoded requests.</p>
346          <p>
347	    Own Id: OTP-15338 Aux Id: ERL-733 </p>
348        </item>
349        <item>
350          <p>
351	    Fixed http client to not drop explicit 'Content-Type'
352	    header in requests without a body such as requests with
353	    the 'Content-Type' of application/x-www-form-urlencoded.</p>
354          <p>
355	    Own Id: OTP-15339 Aux Id: ERL-736 </p>
356        </item>
357      </list>
358    </section>
359
360</section>
361
362<section><title>Inets 7.0.2</title>
363
364    <section><title>Fixed Bugs and Malfunctions</title>
365      <list>
366        <item>
367          <p>
368	    Enhance error handling, that is mod_get will return 403
369	    if a path is a directory and not a file.</p>
370          <p>
371	    Own Id: OTP-15192</p>
372        </item>
373        <item>
374          <p>
375	    Do not use chunked-encoding with 1xx, 204 and 304
376	    responses when using mod_esi. Old behavior was not
377	    compliant with HTTP/1.1 RFC and could cause clients to
378	    hang when they received 1xx, 204 or 304 responses that
379	    included an empty chunked-encoded body.</p>
380          <p>
381	    Own Id: OTP-15241</p>
382        </item>
383        <item>
384          <p>
385	    Add robust handling of chunked-encoded HTTP responses
386	    with an empty body (1xx, 204, 304). Old behavior could
387	    cause the client to hang when connecting to a faulty
388	    server implementation.</p>
389          <p>
390	    Own Id: OTP-15242</p>
391        </item>
392      </list>
393    </section>
394
395</section>
396
397<section><title>Inets 7.0.1</title>
398
399  <section><title>Fixed Bugs and Malfunctions</title>
400  <list>
401    <item>
402      <p>
403	Change status code for no mod found to handle request to
404      501</p>
405      <p>
406      Own Id: OTP-15215</p>
407        </item>
408  </list>
409  </section>
410
411  </section>
412
413  <section><title>Inets 7.0</title>
414
415  <section><title>Fixed Bugs and Malfunctions</title>
416      <list>
417        <item>
418          <p>
419	    Fixed HTTP content injection bug in httpc (ERL-456).</p>
420          <p>
421	    Own Id: OTP-14726</p>
422        </item>
423        <item>
424          <p>
425	    Fixed support for URI-references in HTTP 'Location'
426	    header (ERL-333).</p>
427          <p>
428	    Own Id: OTP-14729</p>
429        </item>
430        <item>
431          <p>
432	    Fix broken 'Content-Type' handling in httpc (ERL-536).</p>
433          <p>
434	    Own Id: OTP-15006</p>
435        </item>
436        <item>
437          <p>
438	    Fix handling of relative paths in the script_alias
439	    property of httpd (ERL-574).</p>
440          <p>
441	    Own Id: OTP-15021</p>
442        </item>
443        <item>
444          <p>
445	    Fix httpd:reload_config/2 with path() as the first
446	    argument (ERL-578).</p>
447          <p>
448	    Own Id: OTP-15025</p>
449        </item>
450        <item>
451          <p>
452	    Improved gracefulness.</p>
453          <p>
454	    Own Id: OTP-15042</p>
455        </item>
456      </list>
457    </section>
458
459    <section><title>Improvements and New Features</title>
460      <list>
461        <item>
462          <p>
463	    Split inets and create separate ftp and tftp apps.</p>
464          <p>
465	    Own Id: OTP-14113</p>
466        </item>
467      </list>
468    </section>
469
470  </section>
471
472  <section><title>Inets 6.5.2.4</title>
473
474    <section><title>Fixed Bugs and Malfunctions</title>
475      <list>
476        <item>
477          <p>
478	    Do not use chunked-encoding with 1xx, 204 and 304
479	    responses when using mod_esi. Old behavior was not
480	    compliant with HTTP/1.1 RFC and could cause clients to
481	    hang when they received 1xx, 204 or 304 responses that
482	    included an empty chunked-encoded body.</p>
483          <p>
484	    Own Id: OTP-15241</p>
485        </item>
486        <item>
487          <p>
488	    Add robust handling of chunked-encoded HTTP responses
489	    with an empty body (1xx, 204, 304). Old behavior could
490	    cause the client to hang when connecting to a faulty
491	    server implementation.</p>
492          <p>
493	    Own Id: OTP-15242</p>
494        </item>
495      </list>
496    </section>
497
498  </section>
499
500  <section><title>Inets 6.5.2.3</title>
501
502    <section><title>Fixed Bugs and Malfunctions</title>
503      <list>
504        <item>
505          <p>
506	    Change status code for no mod found to handle request to
507	    501</p>
508          <p>
509	    Own Id: OTP-15215</p>
510        </item>
511      </list>
512    </section>
513
514</section>
515
516<section><title>Inets 6.5.2.2</title>
517
518    <section><title>Fixed Bugs and Malfunctions</title>
519      <list>
520        <item>
521          <p>
522	    Enhance error handling, that is mod_get will return 403
523	    if a path is a directory and not a file.</p>
524          <p>
525	    Own Id: OTP-15192</p>
526        </item>
527      </list>
528    </section>
529
530</section>
531
532  <section><title>Inets 6.5.2.1</title>
533
534    <section><title>Improvements and New Features</title>
535      <list>
536        <item>
537          <p>
538	    Options added for setting low-level properties on the
539	    underlying TCP connections. The options are:
540	    <c>sock_ctrl</c>, <c>sock_data_act</c> and
541	    <c>sock_data_pass</c>. See the manual for details.</p>
542          <p>
543	    Own Id: OTP-15120 Aux Id: ERIERL-192 </p>
544        </item>
545      </list>
546    </section>
547
548  </section>
549
550<section><title>Inets 6.5.2</title>
551
552    <section><title>Fixed Bugs and Malfunctions</title>
553      <list>
554        <item>
555          <p>
556	    inets: httpd - Gracefully handle bad headers</p>
557          <p>
558	    The option max_headers operated on the individual header
559	    length instead of the total length of all headers. Also
560	    headers with empty keys are now discarded.</p>
561          <p>
562	    Own Id: OTP-15092</p>
563        </item>
564      </list>
565    </section>
566
567</section>
568
569<section><title>Inets 6.5.1</title>
570
571    <section><title>Fixed Bugs and Malfunctions</title>
572      <list>
573        <item>
574          <p>
575	    Fix broken options handling in httpc (ERL-441).</p>
576          <p>
577	    Own Id: OTP-15007</p>
578        </item>
579      </list>
580    </section>
581
582</section>
583
584<section><title>Inets 6.5</title>
585
586    <section><title>Fixed Bugs and Malfunctions</title>
587      <list>
588        <item>
589          <p>
590	    httpc_manager crashes when a long running request is sent
591	    on a persistent HTTP connection (keep-alive). Fixed
592	    httpc_manager to use proper timeouts on keep-alive
593	    connections.</p>
594          <p>
595	    Own Id: OTP-14908</p>
596        </item>
597      </list>
598    </section>
599
600
601    <section><title>Improvements and New Features</title>
602      <list>
603        <item>
604          <p>
605	    Add support for unix domain sockets in the http client.</p>
606          <p>
607	    Own Id: OTP-14854</p>
608        </item>
609      </list>
610    </section>
611
612</section>
613
614<section><title>Inets 6.4.5</title>
615
616    <section><title>Fixed Bugs and Malfunctions</title>
617      <list>
618        <item>
619          <p>
620	    CGI environment variable CONTENT_LENGTH shall be a string</p>
621          <p>
622	    Own Id: OTP-14679</p>
623        </item>
624        <item>
625          <p>
626	    In relaxed mode disregard Content-Length header if there
627	    is also a Transfer-Encoding header.</p>
628          <p>
629	    Own Id: OTP-14727</p>
630        </item>
631        <item>
632          <p>
633	    Eliminated race condition, that could cause http request
634	    to sporadically fail to complete successfully, when
635	    keep-alive connections are used.</p>
636          <p>
637	    Own Id: OTP-14783</p>
638        </item>
639      </list>
640    </section>
641
642</section>
643
644<section><title>Inets 6.4.4</title>
645
646    <section><title>Fixed Bugs and Malfunctions</title>
647      <list>
648        <item>
649          <p>
650	    Correct the handling of location headers so that the
651	    status code is not hard coded. This should have been
652	    fixed by commit 2cc5ba70cbbc6b3ace81a2a0324417c3b65265bb
653	    but unfortunately was broken during a code refactoring
654	    and unnoticed due to a faulty placed test case.</p>
655          <p>
656	    Own Id: OTP-14761</p>
657        </item>
658      </list>
659    </section>
660
661</section>
662
663<section><title>Inets 6.4.3</title>
664
665    <section><title>Improvements and New Features</title>
666      <list>
667        <item>
668          <p>
669	    Fix broken handling of POST requests</p>
670          <p>
671	    New chunk mechanism of body data in POST requests added
672	    in 5d01c70ca399edf28e99dc760506329689fab6ba broke
673	    handling of POST body data not using the new mechanism.</p>
674          <p>
675	    Own Id: OTP-14656</p>
676        </item>
677        <item>
678          <p>
679	    Make sure ints:stop/2 of the service httpd is synchronous</p>
680          <p>
681	    Own Id: OTP-14696</p>
682        </item>
683        <item>
684          <p>
685	    Honor status code returned by ESI script and modernize
686	    "location" header handling.</p>
687          <p>
688	    Own Id: OTP-14716</p>
689        </item>
690      </list>
691    </section>
692
693</section>
694
695<section><title>Inets 6.4.2</title>
696
697    <section><title>Fixed Bugs and Malfunctions</title>
698      <list>
699        <item>
700          <p>
701	    Make sure mod_log uses the correct status code</p>
702          <p>
703	    Own Id: OTP-14510</p>
704        </item>
705        <item>
706          <p>
707	    Correct behaviour of mod_disk_log to proparly handle
708	    repair options</p>
709          <p>
710	    Own Id: OTP-14530</p>
711        </item>
712      </list>
713    </section>
714
715</section>
716
717<section><title>Inets 6.4.1</title>
718
719    <section><title>Fixed Bugs and Malfunctions</title>
720      <list>
721        <item>
722          <p>
723	    http_uri aligned to follow RFC 3986 and not convert "+"
724	    to space when decoding URIs.</p>
725          <p>
726	    Own Id: OTP-14573</p>
727        </item>
728      </list>
729    </section>
730
731
732    <section><title>Improvements and New Features</title>
733      <list>
734        <item>
735          <p>
736	    Added new option max_client_body_chunk to httpd server to
737	    allow chunked delivery of PUT and POST data to mod_esi
738	    callback. Note, new mod_esi callback implementation is
739	    required.</p>
740          <p>
741	    Also correct value provided by server_name environment
742	    variable</p>
743          <p>
744	    Own Id: OTP-14450</p>
745        </item>
746      </list>
747    </section>
748
749</section>
750
751<section><title>Inets 6.4</title>
752
753    <section><title>Fixed Bugs and Malfunctions</title>
754      <list>
755        <item>
756          <p>
757	    httpd_util:rfc1123_date/1 gracefully handle invalid DST
758	    dates by returning the original time in the expected
759	    rfc1123 format.</p>
760          <p>
761	    Own Id: OTP-14394</p>
762        </item>
763      </list>
764    </section>
765
766
767    <section><title>Improvements and New Features</title>
768      <list>
769        <item>
770          <p>
771	    Add unicode binary support to http_uri functions</p>
772          <p>
773	    Own Id: OTP-14404</p>
774        </item>
775        <item>
776          <p>
777	    httpc - Change timeout handling so the redirects cause a
778	    new timer to be set. This means that a simple redirected
779	    request could return after 2*timeout milliseconds.</p>
780          <p>
781	    Own Id: OTP-14429</p>
782        </item>
783      </list>
784    </section>
785
786</section>
787
788<section><title>Inets 6.3.9</title>
789
790    <section><title>Fixed Bugs and Malfunctions</title>
791      <list>
792        <item>
793          <p>
794	    The close of a chunked file reception crashed in a
795	    certain timing sequence.</p>
796          <p>
797	    Own Id: OTP-14391 Aux Id: seq13306 </p>
798        </item>
799      </list>
800    </section>
801
802</section>
803
804<section><title>Inets 6.3.8</title>
805
806    <section><title>Improvements and New Features</title>
807      <list>
808        <item>
809          <p>
810	    Added missing release note for inets-6.3.7</p>
811          <p>
812	    Own Id: OTP-14383</p>
813        </item>
814      </list>
815    </section>
816
817</section>
818
819<section><title>Inets 6.3.7</title>
820
821    <section><title>Fixed Bugs and Malfunctions</title>
822      <list>
823        <item>
824          <p>
825	    Fixed a bug in ftp that made further operations after a
826	    recv_chunk operation impossible.</p>
827          <p>
828	    Own Id: OTP-14242</p>
829        </item>
830
831        <item>
832          <p>Make default port, 80 and 443, implicit in automatic redirection.
833	  </p>
834          <p> Own Id: OTP-14301
835	  </p>
836        </item>
837      </list>
838    </section>
839
840</section>
841
842<section><title>Inets 6.3.6</title>
843
844    <section><title>Fixed Bugs and Malfunctions</title>
845      <list>
846        <item>
847          <p>
848	    Chunk size decoding could fail. The symptom was that
849	    chunk decoding sometimes failed depending on timing of
850	    the received stream. If chunk size was split into two
851	    different packets decoding would fail.</p>
852          <p>
853	    Own Id: OTP-13571 Aux Id: ERL-116 </p>
854        </item>
855        <item>
856          <p>
857	    Prevent httpc user process to hang if httpc_handler
858	    process terminates unexpectedly</p>
859          <p>
860	    Own Id: OTP-14091</p>
861        </item>
862        <item>
863          <p>
864	    Correct Host header, to include port number, when
865	    redirecting requests.</p>
866          <p>
867	    Own Id: OTP-14097</p>
868        </item>
869        <item>
870          <p>
871	    Shutdown gracefully on connection or TLS handshake errors</p>
872          <p>
873	    Own Id: OTP-14173 Aux Id: seq13262 </p>
874        </item>
875      </list>
876    </section>
877
878</section>
879
880<section><title>Inets 6.3.5</title>
881
882    <section><title>Fixed Bugs and Malfunctions</title>
883      <list>
884        <item>
885          <p>
886	    Correct misstakes in ftp client introduced in inets-6.3.4</p>
887          <p>
888	    Own Id: OTP-14203 Aux Id: OTP-13982 </p>
889        </item>
890      </list>
891    </section>
892
893</section>
894
895<section><title>Inets 6.3.4</title>
896
897    <section><title>Fixed Bugs and Malfunctions</title>
898      <list>
899        <item>
900          <p>
901	    Fixes a bug that makes the ftp client end up in bad state
902	    if there is a multi line response from the server and the
903	    response number is in the message being sent.</p>
904          <p>
905	    Own Id: OTP-13960 Aux Id: PR1196 </p>
906        </item>
907        <item>
908          <p>
909	    The ftp client could stop consuming messages when the
910	    multiline response handling was corrected.</p>
911          <p>
912	    Own Id: OTP-13967</p>
913        </item>
914        <item>
915          <p>
916	    Fix keep-alive https through proxy connections so that
917	    all requests, following the first one, will run as
918	    expected instead of failing.</p>
919          <p>
920	    Own Id: OTP-14041</p>
921        </item>
922        <item>
923          <p>
924	    Fix bug from commit
925	    fdfda2fab0921d409789174556582db28141448e that could make
926	    listing of group members in mod_auth callbacks fail.</p>
927          <p>
928	    Own Id: OTP-14082</p>
929        </item>
930      </list>
931    </section>
932
933
934    <section><title>Improvements and New Features</title>
935      <list>
936        <item>
937          <p>
938	    Update behavior of httpc:request to match RFC-7231</p>
939          <p>
940	    Own Id: OTP-13902</p>
941        </item>
942        <item>
943          <p>
944	    Fixed dialyzer warnings as well as some white-space
945	    issues. Thanks to Kostis.</p>
946          <p>
947	    Own Id: OTP-13982 Aux Id: PR-1207 </p>
948        </item>
949      </list>
950    </section>
951
952</section>
953
954<section><title>Inets 6.3.3</title>
955
956    <section><title>Fixed Bugs and Malfunctions</title>
957      <list>
958        <item>
959          <p>
960	    The legacy option 'inet6fb4' for inets had stopped
961	    working. This bug has now been corrected. Fix by Edwin
962	    Fine in bugs.erlang.org ERL-200 and Github PR#1132.</p>
963          <p>
964	    Own Id: OTP-13776 Aux Id: ERL-200 PR-1132 </p>
965        </item>
966      </list>
967    </section>
968
969</section>
970
971<section><title>Inets 6.3.2</title>
972
973    <section><title>Improvements and New Features</title>
974      <list>
975        <item>
976          <p>
977	    PUT and DELETE support has been added to mod_esi</p>
978          <p>
979	    Own Id: OTP-13688 Aux Id: seq13149 </p>
980        </item>
981      </list>
982    </section>
983
984</section>
985
986<section><title>Inets 6.3.1</title>
987
988    <section><title>Fixed Bugs and Malfunctions</title>
989      <list>
990        <item>
991          <p>
992	    A debug message was accidently left enabled in the ftp
993	    client.</p>
994          <p>
995	    Own Id: OTP-13712 Aux Id: seq13143 </p>
996        </item>
997      </list>
998    </section>
999
1000</section>
1001
1002<section><title>Inets 6.3</title>
1003
1004    <section><title>Fixed Bugs and Malfunctions</title>
1005      <list>
1006        <item>
1007          <p>
1008	    Ftp client fixes: 1) Corrected a bug that the ftp client
1009	    gen_server crashed if the listening data socket was
1010	    closed.</p>
1011          <p>
1012	    2) Corrections of ftp client error codes so they are as
1013	    defined in the reference manual</p>
1014          <p>
1015	    Own Id: OTP-13644</p>
1016        </item>
1017      </list>
1018    </section>
1019
1020
1021    <section><title>Improvements and New Features</title>
1022      <list>
1023        <item>
1024	    <p> Remove usage of erlang:now(). </p>
1025          <p>
1026	    Own Id: OTP-12441</p>
1027        </item>
1028        <item>
1029	    <p> Add handling of DELETE Body to http client. </p>
1030          <p>
1031	    Own Id: OTP-13383 Aux Id: PR-972 </p>
1032        </item>
1033        <item>
1034          <p>
1035	    Removed references to mod_include and webtool from
1036	    examples and tests.</p>
1037          <p>
1038	    Own Id: OTP-13445 Aux Id: PR-988 </p>
1039        </item>
1040        <item>
1041          <p>
1042	    Remove module inets_regexp. Module re should be used
1043	    instead.</p>
1044          <p>
1045	    *** POTENTIAL INCOMPATIBILITY ***</p>
1046          <p>
1047	    Own Id: OTP-13561</p>
1048        </item>
1049      </list>
1050    </section>
1051
1052</section>
1053
1054<section><title>Inets 6.2.4</title>
1055
1056    <section><title>Improvements and New Features</title>
1057      <list>
1058        <item>
1059          <p>
1060	    Handle multiple \t in mime types file</p>
1061          <p>
1062	    Own Id: OTP-13663 Aux Id: seq13132 </p>
1063        </item>
1064      </list>
1065    </section>
1066
1067</section>
1068
1069<section><title>Inets 6.2.3</title>
1070
1071    <section><title>Improvements and New Features</title>
1072      <list>
1073        <item>
1074          <p>
1075	    Put back unused module inets_regexp and remove it in OTP
1076	    19 instead as it is an incompatibility, although it is an
1077	    undocumented module and should not affect other
1078	    applications.</p>
1079          <p>
1080	    Own Id: OTP-13533</p>
1081        </item>
1082      </list>
1083    </section>
1084
1085</section>
1086
1087<section><title>Inets 6.2.2</title>
1088
1089    <section><title>Improvements and New Features</title>
1090      <list>
1091        <item>
1092          <p>
1093	    Add environment information item peer_cert to mod_esi</p>
1094          <p>
1095	    Own Id: OTP-13510</p>
1096        </item>
1097      </list>
1098    </section>
1099
1100</section>
1101
1102<section><title>Inets 6.2.1</title>
1103
1104    <section><title>Fixed Bugs and Malfunctions</title>
1105      <list>
1106        <item>
1107          <p>
1108	    Mend ipv6_host_with_brackets option in httpc</p>
1109          <p>
1110	    Own Id: OTP-13417</p>
1111        </item>
1112      </list>
1113    </section>
1114
1115</section>
1116
1117<section><title>Inets 6.2</title>
1118
1119    <section><title>Fixed Bugs and Malfunctions</title>
1120      <list>
1121        <item>
1122          <p>
1123	    The TFTP client/server has been fixed to allow file sizes
1124	    larger than 32MB block by allowing the 16 bit block
1125	    counter to wrap. Since this is a commonly accepted
1126	    behavior we regard it as a bug fix.</p>
1127          <p>
1128	    Own Id: OTP-13403</p>
1129        </item>
1130      </list>
1131    </section>
1132
1133
1134    <section><title>Improvements and New Features</title>
1135      <list>
1136        <item>
1137          <p>
1138	    Handle HTTP PATCH method in client.</p>
1139          <p>
1140	    Own Id: OTP-13286</p>
1141        </item>
1142        <item>
1143          <p>
1144	    Expected termination should not be logged as an
1145	    application error.</p>
1146          <p>
1147	    Own Id: OTP-13389</p>
1148        </item>
1149      </list>
1150    </section>
1151
1152</section>
1153
1154  <section><title>Inets 6.1.1.1</title>
1155
1156   <section><title>Fixed Bugs and Malfunctions</title>
1157     <list>
1158       <item>
1159         <p>
1160         Mend ipv6_host_with_brackets option in httpc</p>
1161         <p>
1162         Own Id: OTP-13417</p>
1163       </item>
1164     </list>
1165   </section>
1166
1167  </section>
1168
1169<section><title>Inets 6.1.1</title>
1170
1171    <section><title>Fixed Bugs and Malfunctions</title>
1172      <list>
1173        <item>
1174          <p>
1175	    mod_alias now traverses all aliases picking the longest
1176	    match and not the first match.</p>
1177          <p>
1178	    Own Id: OTP-13248</p>
1179        </item>
1180      </list>
1181    </section>
1182
1183</section>
1184
1185<section><title>Inets 6.1</title>
1186
1187    <section><title>Fixed Bugs and Malfunctions</title>
1188      <list>
1189        <item>
1190          <p>
1191	    Replace obs-folds with spaces instead of failing</p>
1192          <p>
1193	    Own Id: OTP-13069</p>
1194        </item>
1195        <item>
1196          <p>
1197	    Add validation fun for URI scheme to http_uri API</p>
1198          <p>
1199	    Own Id: OTP-13071</p>
1200        </item>
1201        <item>
1202          <p>
1203	    Handle stream bodies as documented.</p>
1204          <p>
1205	    Own Id: OTP-13093</p>
1206        </item>
1207        <item>
1208          <p>
1209	    Correct error handling of mod_esi generated chunks. Send
1210	    warning headers in chunk trailers instead of generating
1211	    an unexpected additional 500 request response, when
1212	    problems, such as a timeout occurs.</p>
1213          <p>
1214	    Own Id: OTP-13110</p>
1215        </item>
1216        <item>
1217          <p>
1218	    HTTP client terminates gracefully when an invalid chunked
1219	    length header is encountered.</p>
1220          <p>
1221	    Own Id: OTP-13117</p>
1222        </item>
1223      </list>
1224    </section>
1225
1226
1227    <section><title>Improvements and New Features</title>
1228      <list>
1229        <item>
1230          <p>
1231	    Add default for SNI (Server Name Indication) when running
1232	    https using the inets HTTP-client.</p>
1233          <p>
1234	    Own Id: OTP-12985</p>
1235        </item>
1236        <item>
1237          <p>
1238	    Be forgiving to chunked sizes that have trailing
1239	    whitespaces as prior implementation was. Also some legacy
1240	    embedded devices does actually have trailing whitespaces
1241	    even though this in not according to the spec.</p>
1242          <p>
1243	    Own Id: OTP-13116</p>
1244        </item>
1245      </list>
1246    </section>
1247
1248</section>
1249
1250<section><title>Inets 6.0.3</title>
1251
1252    <section><title>Fixed Bugs and Malfunctions</title>
1253      <list>
1254        <item>
1255          <p>
1256	    Improved error handling and gracfully termination when an
1257	    invalid chunked length header is encountered.</p>
1258          <p>
1259	    Own Id: OTP-13061</p>
1260        </item>
1261      </list>
1262    </section>
1263
1264
1265    <section><title>Improvements and New Features</title>
1266      <list>
1267        <item>
1268          <p>
1269	    Add possibility to set socket options, such as nodelay,
1270	    for httpd. Also phase out legacy option value inet6bf4
1271	    for the ipfamily option. This value will be translated to
1272	    the value inet.</p>
1273          <p>
1274	    *** POTENTIAL INCOMPATIBILITY ***</p>
1275          <p>
1276	    Own Id: OTP-13062</p>
1277        </item>
1278      </list>
1279    </section>
1280
1281</section>
1282
1283<section><title>Inets 6.0.2</title>
1284
1285    <section><title>Fixed Bugs and Malfunctions</title>
1286      <list>
1287        <item>
1288          <p>
1289	    Avoid crash in mod_auth_server and mod_security_server
1290	    due to using an atom instead of a string when creating a
1291	    name.</p>
1292          <p>
1293	    Own Id: OTP-13022</p>
1294        </item>
1295      </list>
1296    </section>
1297
1298
1299    <section><title>Improvements and New Features</title>
1300      <list>
1301        <item>
1302          <p>
1303	    Add function response_default_headers/0 to httpd
1304	    customize API, to allow user to specify default values
1305	    for HTTP response headers.</p>
1306          <p>
1307	    Own Id: OTP-13013</p>
1308        </item>
1309      </list>
1310    </section>
1311
1312</section>
1313
1314<section><title>Inets 6.0.1</title>
1315
1316    <section><title>Fixed Bugs and Malfunctions</title>
1317      <list>
1318        <item>
1319          <p>
1320	    Fix broken socket feature, that is on Linux systems a
1321	    socket may be opened before starting Erlang and then
1322	    passed to Erlang's httpd daemon. This is useful as the
1323	    wrap program can open a privileged port and Erlang does
1324	    not have to be run as root.</p>
1325          <p>
1326	    Own Id: OTP-12875 Aux Id: seq12878 </p>
1327        </item>
1328        <item>
1329          <p>
1330	    Fix broken socket feature, that is on Linux systems a
1331	    socket may be opened before starting Erlang and then
1332	    passed to Erlangs tftp daemon. This is useful as the wrap
1333	    program can open a privileged port and Erlang does not
1334	    have to be run as root.</p>
1335          <p>
1336	    Own Id: OTP-12898 Aux Id: seq12900 </p>
1337        </item>
1338        <item>
1339          <p>
1340	    httpc_handler should react properly to cancel requests
1341	    even when the request to be canceled was already finished
1342	    but httpc_manager did not get notified about that yet.</p>
1343          <p>
1344	    Own Id: OTP-12922</p>
1345        </item>
1346      </list>
1347    </section>
1348
1349
1350    <section><title>Improvements and New Features</title>
1351      <list>
1352        <item>
1353          <p>
1354	    Added format_status function to httpd process to avoid
1355	    sensitive information to be printed in supervisor logs.</p>
1356          <p>
1357	    Own Id: OTP-12976</p>
1358        </item>
1359        <item>
1360          <p>
1361	    Return meaningful error reason disregarding whether a
1362	    http proxy is used or not.</p>
1363          <p>
1364	    Own Id: OTP-12984</p>
1365        </item>
1366      </list>
1367    </section>
1368
1369</section>
1370
1371<section><title>Inets 6.0</title>
1372
1373    <section><title>Fixed Bugs and Malfunctions</title>
1374      <list>
1375        <item>
1376          <p>
1377	    Fix race condition in httpc. If the socket is closed by
1378	    the peer do not try to close it again.</p>
1379          <p>
1380	    Own Id: OTP-11845</p>
1381        </item>
1382        <item>
1383          <p>
1384	    Avoid process leak by gracefully terminating httpc
1385	    request handler process when send operation fails.</p>
1386          <p>
1387	    Own Id: OTP-12362</p>
1388        </item>
1389        <item>
1390          <p>
1391	    Reject messages with a Content-Length less than 0</p>
1392          <p>
1393	    Own Id: OTP-12739 Aux Id: seq12860 </p>
1394        </item>
1395        <item>
1396          <p>
1397	    Let gen_tcp:controlling_process/2 and
1398	    inet_sctp:connect/[45] propagate prim_inet:setopt/3
1399	    errors instead of having them generate badmatch
1400	    exceptions.</p>
1401          <p>
1402	    Own Id: OTP-12798</p>
1403        </item>
1404      </list>
1405    </section>
1406
1407
1408    <section><title>Improvements and New Features</title>
1409      <list>
1410        <item>
1411          <p>
1412	    Remove Server Side Include support from inets, as this is
1413	    an old technic that has security issues and was not well
1414	    tested.</p>
1415          <p>
1416	    *** POTENTIAL INCOMPATIBILITY ***</p>
1417          <p>
1418	    Own Id: OTP-12156</p>
1419        </item>
1420        <item>
1421          <p>
1422	    New value in <c>server_tokens</c> config for limiting
1423	    banner grabbing attempts. </p>
1424          <p>
1425	    By setting <c>{server_tokens, none}</c> in
1426	    <c>ServiceConfig</c> for <c>inets:start(httpd,
1427	    ServiceConfig)</c>, the "Server:" header will not be set
1428	    in messages from the server.</p>
1429          <p>
1430	    Own Id: OTP-12661 Aux Id: seq12840 </p>
1431        </item>
1432        <item>
1433          <p>
1434	    To enable the HTTP server to run in a virtualized
1435	    environment, where there can be more that one server that
1436	    has the same ip-address and port, we add a new option
1437	    profile.</p>
1438          <p>
1439	    Own Id: OTP-12674</p>
1440        </item>
1441        <item>
1442          <p>
1443	    httpc: Fix implementation of gracefull shudown to work as
1444	    intended for keep alive connections not using pipelining.</p>
1445          <p>
1446	    Own Id: OTP-12803</p>
1447        </item>
1448        <item>
1449          <p>
1450	    Correct handling of proxy options when using persistent
1451	    connections.</p>
1452          <p>
1453	    Own Id: OTP-12822</p>
1454        </item>
1455      </list>
1456    </section>
1457
1458</section>
1459
1460<section><title>Inets 5.10.9</title>
1461
1462    <section><title>Improvements and New Features</title>
1463      <list>
1464        <item>
1465          <p>
1466	    Add behaviour with optional callbacks to customize the
1467	    inets HTTP server.</p>
1468          <p>
1469	    Own Id: OTP-12776</p>
1470        </item>
1471      </list>
1472    </section>
1473
1474</section>
1475
1476<section><title>Inets 5.10.8</title>
1477
1478    <section><title>Fixed Bugs and Malfunctions</title>
1479      <list>
1480        <item>
1481          <p>
1482	    Reject messages with a Content-Length less than 0</p>
1483          <p>
1484	    Own Id: OTP-12739 Aux Id: seq12860 </p>
1485        </item>
1486      </list>
1487    </section>
1488
1489</section>
1490
1491<section><title>Inets 5.10.7</title>
1492
1493    <section><title>Improvements and New Features</title>
1494      <list>
1495        <item>
1496          <p>
1497	    New value in <c>server_tokens</c> config for limiting
1498	    banner grabbing attempts. </p>
1499          <p>
1500	    By setting <c>{server_tokens, none}</c> in
1501	    <c>ServiceConfig</c> for <c>inets:start(httpd,
1502	    ServiceConfig)</c>, the "Server:" header will not be set
1503	    in messages from the server.</p>
1504          <p>
1505	    Own Id: OTP-12661 Aux Id: seq12840 </p>
1506        </item>
1507      </list>
1508    </section>
1509
1510</section>
1511
1512<section><title>Inets 5.10.6</title>
1513
1514    <section><title>Fixed Bugs and Malfunctions</title>
1515      <list>
1516        <item>
1517          <p>
1518	    inets: parse correctly 'Set-Cookie' header with empty
1519	    value</p>
1520          <p>
1521	    httpc_cookie should parse cookies with empty values and
1522	    no attributes set in the 'Set-Cookie' headers.</p>
1523          <p>
1524	    Own Id: OTP-12455</p>
1525        </item>
1526      </list>
1527    </section>
1528
1529
1530    <section><title>Improvements and New Features</title>
1531      <list>
1532        <item>
1533          <p>
1534	    Add parsing of URI fragments to http_uri:parse</p>
1535          <p>
1536	    This fixes a bug in httpc where redirection URIs could
1537	    lead to bad requests if they contained fragments.</p>
1538          <p>
1539	    Own Id: OTP-12398</p>
1540        </item>
1541        <item>
1542          <p>
1543	    httpc: http client now ignores invalid set-cookie headers</p>
1544          <p>
1545	    Own Id: OTP-12430</p>
1546        </item>
1547      </list>
1548    </section>
1549
1550</section>
1551
1552<section><title>Inets 5.10.5</title>
1553
1554    <section><title>Fixed Bugs and Malfunctions</title>
1555      <list>
1556        <item>
1557          <p>
1558	    mod_alias now handles https-URIs properly</p>
1559          <p>
1560	    Consistent view of configuration parameter
1561	    keep_alive_timeout, should be presented in the
1562	    httpd:info/[1,2] function in the same unit as it is
1563	    inputted.</p>
1564          <p>
1565	    Own Id: OTP-12436 Aux Id: seq12786 </p>
1566        </item>
1567      </list>
1568    </section>
1569
1570
1571    <section><title>Improvements and New Features</title>
1572      <list>
1573        <item>
1574          <p>
1575	    Gracefully handle invalid content-length headers instead
1576	    of crashing in list_to_integer.</p>
1577          <p>
1578	    Own Id: OTP-12429</p>
1579        </item>
1580      </list>
1581    </section>
1582
1583</section>
1584
1585<section><title>Inets 5.10.4</title>
1586
1587    <section><title>Fixed Bugs and Malfunctions</title>
1588      <list>
1589        <item>
1590          <p>
1591	    Fixed a spelling mistake in httpc documentation.</p>
1592          <p>
1593	    Own Id: OTP-12221</p>
1594        </item>
1595      </list>
1596    </section>
1597
1598
1599    <section><title>Improvements and New Features</title>
1600      <list>
1601        <item>
1602          <p>
1603	    Add option {ftp_extension, boolean} to enable use of
1604	    extended commands EPSV and EPRT, as specified in RFC
1605	    2428, for IPv4 instead of using the legacy commands. Ipv6
1606	    cannot be supported without the extended commands.</p>
1607          <p>
1608	    Own Id: OTP-12255</p>
1609        </item>
1610      </list>
1611    </section>
1612
1613</section>
1614
1615<section><title>Inets 5.10.3</title>
1616
1617    <section><title>Fixed Bugs and Malfunctions</title>
1618      <list>
1619        <item>
1620          <p>
1621	    Fix some spelling mistakes in documentation</p>
1622          <p>
1623	    Own Id: OTP-12152</p>
1624        </item>
1625      </list>
1626    </section>
1627
1628
1629    <section><title>Improvements and New Features</title>
1630      <list>
1631        <item>
1632          <p>
1633	    httpd: Seperate timeout for TLS/SSL handshake from
1634	    keepalive timeout</p>
1635          <p>
1636	    Own Id: OTP-12013</p>
1637        </item>
1638        <item>
1639          <p>
1640	    Warning: this is experimental and may disappear or change
1641	    without previous warning.</p>
1642          <p>
1643	    Experimental support for running Quickcheck and PropEr
1644	    tests from common_test suites is added to common_test.
1645	    See the reference manual for the new module
1646	    <c>ct_property_testing</c>.</p>
1647          <p>
1648	    Experimental property tests are added under
1649	    <c>lib/{inet,ssh}/test/property_test</c>. They can be run
1650	    directly or from the commont_test suites
1651	    <c>inet/ftp_property_test_SUITE.erl</c> and
1652	    <c>ssh/test/ssh_property_test_SUITE.erl</c>.</p>
1653          <p>
1654	    See the code in the <c>test</c> directories and the man
1655	    page for details.</p>
1656          <p>
1657	    (Thanks to Tuncer Ayaz for a patch adding Triq)</p>
1658          <p>
1659	    Own Id: OTP-12119</p>
1660        </item>
1661      </list>
1662    </section>
1663
1664</section>
1665
1666<section><title>Inets 5.10.2</title>
1667
1668    <section><title>Fixed Bugs and Malfunctions</title>
1669      <list>
1670        <item>
1671          <p>
1672	    httpc: Fix streaming bugs when handling small responses</p>
1673          <p>
1674	    Own Id: OTP-11992</p>
1675        </item>
1676      </list>
1677    </section>
1678
1679</section>
1680
1681<section><title>Inets 5.10.1</title>
1682
1683    <section><title>Fixed Bugs and Malfunctions</title>
1684      <list>
1685        <item>
1686          <p>
1687	    Correct distirbing mode for httpd:reload_config/2</p>
1688          <p>
1689	    Own Id: OTP-11914</p>
1690        </item>
1691      </list>
1692    </section>
1693
1694
1695    <section><title>Improvements and New Features</title>
1696      <list>
1697        <item>
1698          <p>
1699	    Improved handling of invalid strings in the HTTP request
1700	    line.</p>
1701          <p>
1702	    Impact: May improve memory consumption</p>
1703          <p>
1704	    Own Id: OTP-11925 Aux Id: Sequence 12601 </p>
1705        </item>
1706      </list>
1707    </section>
1708
1709</section>
1710
1711<section><title>Inets 5.10</title>
1712
1713    <section><title>Fixed Bugs and Malfunctions</title>
1714      <list>
1715        <item>
1716          <p>
1717	    Fixed a spelling mistake in httpc doc (Thanks to Wasif
1718	    Riaz Malik)</p>
1719          <p>
1720	    Own Id: OTP-11538</p>
1721        </item>
1722        <item>
1723          <p>
1724	    Application upgrade (appup) files are corrected for the
1725	    following applications: </p>
1726          <p>
1727	    <c>asn1, common_test, compiler, crypto, debugger,
1728	    dialyzer, edoc, eldap, erl_docgen, et, eunit, gs, hipe,
1729	    inets, observer, odbc, os_mon, otp_mibs, parsetools,
1730	    percept, public_key, reltool, runtime_tools, ssh,
1731	    syntax_tools, test_server, tools, typer, webtool, wx,
1732	    xmerl</c></p>
1733          <p>
1734	    A new test utility for testing appup files is added to
1735	    test_server. This is now used by most applications in
1736	    OTP.</p>
1737          <p>
1738	    (Thanks to Tobias Schlager)</p>
1739          <p>
1740	    Own Id: OTP-11744</p>
1741        </item>
1742        <item>
1743          <p>
1744	    ftp now sanitize file name, user name and passwords from
1745	    &lt;CR&gt; and &lt;LF&gt; tags (Thanks to Sergei Golovan)</p>
1746          <p>
1747	    Own Id: OTP-11750</p>
1748        </item>
1749        <item>
1750          <p>
1751	    Corrected error handling in the HTTP client, making it
1752	    behave more graceful.</p>
1753          <p>
1754	    Thanks to Kirilll Zaborsky</p>
1755          <p>
1756	    Own Id: OTP-11794</p>
1757        </item>
1758        <item>
1759          <p>
1760	    Support identity transfer-encoding in httpc.</p>
1761          <p>
1762	    Thanks to Anthony Ramine</p>
1763          <p>
1764	    Own Id: OTP-11802</p>
1765        </item>
1766        <item>
1767          <p>
1768	    Ignore empty Set-Cookie headers to increase
1769	    interoperability with servers that violate the RFC. </p>
1770          <p>
1771	    Thanks to Kirilll Zaborsky</p>
1772          <p>
1773	    Own Id: OTP-11803</p>
1774        </item>
1775      </list>
1776    </section>
1777
1778
1779    <section><title>Improvements and New Features</title>
1780      <list>
1781        <item>
1782          <p>
1783	    The commit 6189bc07 "inets: httpc improve pipelining" has
1784	    been reverted, as it turned out to break things rather
1785	    than improve pipelining utilization. It is instead up to
1786	    the user to configure httpc and use it wisely to be able
1787	    to get the most out of pipelining.</p>
1788          <p>
1789	    Own Id: OTP-11756</p>
1790        </item>
1791        <item>
1792          <p>
1793	    Handle all response codes in httpd_util:message/3</p>
1794          <p>
1795	    Own Id: OTP-11838</p>
1796        </item>
1797      </list>
1798    </section>
1799
1800</section>
1801
1802<section><title>Inets 5.9.8</title>
1803
1804    <section><title>Improvements and New Features</title>
1805      <list>
1806        <item>
1807          <p>
1808	    Mend max_clients check that was broken and avoid too
1809	    extensive logging that could cause memory problems.</p>
1810          <p>
1811	    Own Id: OTP-11557 Aux Id: seq12478 </p>
1812        </item>
1813      </list>
1814    </section>
1815
1816</section>
1817
1818<section><title>Inets 5.9.7</title>
1819
1820    <section><title>Fixed Bugs and Malfunctions</title>
1821      <list>
1822        <item>
1823          <p>
1824	    Fix httpd config option 'script_timeout' and fixed httpd
1825	    config option 'keep_alive_timeout'. Thanks to Johannes
1826	    Weissl.</p>
1827          <p>
1828	    Own Id: OTP-11276</p>
1829        </item>
1830        <item>
1831          <p>
1832	    Make httpc:request_cancel/[1,2] asynchronous. Previously
1833	    these functions tried to guarantee request answer would
1834	    not reach the client, which only worked for some of the
1835	    use cases. Now these functions are totally asynchronous
1836	    which makes it the clients responsibility to disregard
1837	    possible answers to canceled requests. </p>
1838          <p>
1839	    Also pipelining implementation has been changed to
1840	    improve the utilization factor. Further investigation of
1841	    possible enhancements in this area are planned for later.</p>
1842          <p>
1843	    *** POTENTIAL INCOMPATIBILITY ***</p>
1844          <p>
1845	    Own Id: OTP-11312</p>
1846        </item>
1847        <item>
1848          <p>
1849	    [httpd] Add handling of new response for mod_head
1850	    (otherwise causing case_clause crash). Also updated
1851	    logging: Removed logging for keep-alive connections
1852	    timeout (this is a normal occurrence and not an error)
1853	    and some access-log body size corrections.</p>
1854          <p>
1855	    Own Id: OTP-11328</p>
1856        </item>
1857      </list>
1858    </section>
1859
1860
1861    <section><title>Improvements and New Features</title>
1862      <list>
1863        <item>
1864          <p>
1865	    The ftp client now supports ftp over tls (ftps).</p>
1866          <p>
1867	    Own Id: OTP-11037</p>
1868        </item>
1869      </list>
1870    </section>
1871
1872</section>
1873
1874<section><title>Inets 5.9.6</title>
1875
1876    <section><title>Improvements and New Features</title>
1877      <list>
1878        <item>
1879          <p>
1880	    httpc: Allow content body in DELETE requests. Thanks to
1881	    James Wheare.</p>
1882          <p>
1883	    Own Id: OTP-11190</p>
1884        </item>
1885        <item>
1886          <p>
1887	    Add missing brackets to report formatting on ftp_progress
1888	    process exit. Thanks to Artur Wilniewczyc.</p>
1889          <p>
1890	    Own Id: OTP-11202</p>
1891        </item>
1892        <item>
1893          <p>
1894	    Fix some errors in the inets documentation. Thanks to
1895	    Johannes Weissl.</p>
1896          <p>
1897	    Own Id: OTP-11210</p>
1898        </item>
1899        <item>
1900          <p>
1901	    Fix various typos in httpd, inets. Thanks to Tomohiko
1902	    Aono.</p>
1903          <p>
1904	    Own Id: OTP-11226</p>
1905        </item>
1906        <item>
1907          <p>
1908	    Fix httpd config option 'erl_script_nocache'. Thanks to
1909	    Johannes Weissl.</p>
1910          <p>
1911	    Own Id: OTP-11260</p>
1912        </item>
1913      </list>
1914    </section>
1915
1916</section>
1917
1918<section><title>Inets 5.9.5</title>
1919
1920    <section><title>Fixed Bugs and Malfunctions</title>
1921      <list>
1922        <item>
1923          <p>
1924	    Reverted incorrect commit that broke cookie handling when
1925	    using httpc-profiles.</p>
1926          <p>
1927	    Own Id: OTP-10956</p>
1928        </item>
1929      </list>
1930    </section>
1931    <section><title>Improvements and New Features</title>
1932      <list>
1933        <item>
1934          <p>
1935	    Fix http_request:http_headers/1 to send content-length
1936	    when length is zero. Thanks to CA Meijer.</p>
1937          <p>
1938	    Own Id: OTP-10934</p>
1939        </item>
1940        <item>
1941          <p>
1942	    Integrate elliptic curve contribution from Andreas
1943	    Schultz </p>
1944          <p>
1945	    In order to be able to support elliptic curve cipher
1946	    suites in SSL/TLS, additions to handle elliptic curve
1947	    infrastructure has been added to public_key and crypto.</p>
1948          <p>
1949	    This also has resulted in a rewrite of the crypto API to
1950	    gain consistency and remove unnecessary overhead. All OTP
1951	    applications using crypto has been updated to use the new
1952	    API.</p>
1953          <p>
1954	    Impact: Elliptic curve cryptography (ECC) offers
1955	    equivalent security with smaller key sizes than other
1956	    public key algorithms. Smaller key sizes result in
1957	    savings for power, memory, bandwidth, and computational
1958	    cost that make ECC especially attractive for constrained
1959	    environments.</p>
1960          <p>
1961	    Own Id: OTP-11009</p>
1962        </item>
1963        <item>
1964          <p>
1965	    Fix {stream, {self, once}} in httpc to work as expected.
1966	    Thanks to Masatake Daimon</p>
1967          <p>
1968	    Own Id: OTP-11122</p>
1969        </item>
1970      </list>
1971    </section>
1972
1973</section>
1974
1975<section><title>Inets 5.9.4</title>
1976    <section><title>Improvements and New Features</title>
1977      <list>
1978        <item>
1979          <p>
1980	    httpd: The modules option now defaults to the documented
1981	    value.</p>
1982          <p>
1983	    Own Id: OTP-10844</p>
1984        </item>
1985        <item>
1986          <p>
1987	    httpc: Fixed persistent connection implementation that
1988	    was broken by a patch to R13. The patch made persisten
1989	    connections behaved the same way as pipelining.</p>
1990          <p>
1991	    Own Id: OTP-10845</p>
1992        </item>
1993        <item>
1994          <p>
1995	    httpd: Simplified configuration of ssl in httpd, this
1996	    also enables all ssl options to be configured. The old
1997	    and limited way is no longer documented but will be
1998	    supported for backwards comatibility for some time.</p>
1999          <p>
2000	    Own Id: OTP-10846</p>
2001        </item>
2002        <item>
2003          <p>
2004	    Handle correctly the "No files found or file unavailable"
2005	    error code. Thanks to Serge Aleynikov</p>
2006          <p>
2007	    Own Id: OTP-10886</p>
2008        </item>
2009      </list>
2010    </section>
2011
2012</section>
2013
2014<section><title>Inets 5.9.3</title>
2015
2016    <section><title>Improvements and New Features</title>
2017      <list>
2018        <item>
2019          <p>
2020	    httpc: The HTTP client now supports HTTPS through proxies</p>
2021          <p>
2022	    Own Id: OTP-10256 Aux Id: kunagi-2
2023	    [ce2e800e-c99f-4050-a1c4-f47023d9c7aa-1] </p>
2024        </item>
2025        <item>
2026	    <p> Some examples overflowing the width of PDF pages have
2027	    been corrected. </p>
2028          <p>
2029	    Own Id: OTP-10665</p>
2030        </item>
2031        <item>
2032          <p>
2033	    Fix autoredirect for POST requests responding 303. Thanks
2034	    to Hans Svensson.</p>
2035          <p>
2036	    Own Id: OTP-10765</p>
2037        </item>
2038      </list>
2039    </section>
2040
2041</section>
2042<section><title>Inets 5.9.2.2</title>
2043
2044    <section><title>Improvements and New Features</title>
2045      <list>
2046        <item>
2047          <p>
2048	    Make log_alert configurable as option in ssl, SSLLogLevel
2049	    added as option to inets conf file</p>
2050          <p>
2051	    Own Id: OTP-11259</p>
2052	</item>
2053      </list>
2054    </section>
2055</section>
2056<section><title>Inets 5.9.2.1</title>
2057    <section><title>Improvements and New Features</title>
2058      <list>
2059        <item>
2060          <p>
2061	    Fixed obsolete error report in inets.</p>
2062	  <p>
2063	    Own Id: OTP-11185 Aux Id: seq12357 </p>
2064	</item>
2065      </list>
2066    </section>
2067</section>
2068
2069<section><title>Inets 5.9.2</title>
2070
2071    <section><title>Improvements and New Features</title>
2072      <list>
2073        <item>
2074          <p>
2075	    Minimum bytes per second</p>
2076          <p>
2077	    New option to http server, {minimum_bytes_per_second,
2078	    integer()}, for a connection, if it is not reached the
2079	    socket will close for that specific connection. Can be
2080	    used to prevent hanging requests from faulty clients.</p>
2081          <p>
2082	    Own Id: OTP-10392</p>
2083        </item>
2084      </list>
2085    </section>
2086
2087</section>
2088
2089<section>
2090    <title>Inets 5.9.1</title>
2091
2092    <section>
2093      <title>Improvements and New Features</title>
2094      <!--
2095	  <p>-</p>
2096      -->
2097
2098      <list>
2099        <item>
2100          <p>Better handling of errorI(s) during update of the session
2101	  database. </p>
2102	  <p>Also added and updated some debugging functions
2103	  <seealso marker="httpc#which_sessions-0">which_sessions/[0,1]</seealso>
2104	  and
2105	  <seealso marker="httpc#info-0">info/0</seealso>. </p>
2106	  <p>Own Id: OTP-10093</p>
2107          <p>Aux Id: Seq 12062</p>
2108        </item>
2109
2110	<item>
2111	  <p>Removed R14B compatible version of (inets-service and
2112	  tftp) behaviour definition. </p>
2113	  <p>Own Id: OTP-10095</p>
2114	</item>
2115
2116	<item>
2117	  <p>[httpc] Documentation of KeepAlive and Pipeline timeout
2118	  options have been improved. </p>
2119	  <p>Own Id: OTP-10114</p>
2120	</item>
2121      </list>
2122
2123    </section>
2124
2125    <section>
2126      <title>Fixed Bugs and Malfunctions</title>
2127      <!--
2128      <p>-</p>
2129      -->
2130
2131      <list>
2132        <item>
2133          <p>[httpc] Cancel request does not work due to incorrect
2134	  handler table creation (wrong keypos). </p>
2135	  <p>Vyacheslav Vorobyov</p>
2136	  <p>Own Id: OTP-10092</p>
2137        </item>
2138
2139      </list>
2140
2141    </section>
2142
2143    <section>
2144      <title>Incompatibilities</title>
2145      <p>-</p>
2146
2147    <!--
2148	<list>
2149	<item>
2150	<p>[httpc|httpd] The old ssl implementation (based on OpenSSL),
2151	has been deprecated. The config option that specified usage of
2152	this version of the ssl app, <c>ossl</c>, has been removed. </p>
2153	<p>Own Id: OTP-9522</p>
2154	</item>
2155
2156	</list>
2157    -->
2158
2159    </section>
2160
2161  </section> <!-- 5.9.1 -->
2162
2163
2164  <section>
2165    <title>Inets 5.9</title>
2166
2167    <section>
2168      <title>Improvements and New Features</title>
2169      <!--
2170	  <p>-</p>
2171      -->
2172
2173      <list>
2174	<item>
2175          <p>[httpd] Make the server header configurable with new config
2176	  option
2177	  <seealso marker="httpd#prop_server_tokens">server_tokens</seealso>.
2178	  The value of the server header, which was previously hard-coded
2179	  (at compile time), is now possible to manipulate through the means
2180	  of the
2181	  <seealso marker="httpd#prop_server_tokens">server_tokens</seealso>
2182	  config option. </p>
2183	  <p>Own Id: OTP-9805</p>
2184        </item>
2185
2186        <item>
2187	  <p>Improve inets support for inets as an included application. </p>
2188	  <p><c>inets_app</c> calls <c>supervisor:start_link/3</c> directly
2189	  rather than calling the root supervisor function
2190	  <c>inets_sup:start_link/0</c>.
2191	  This precludes using included_applications to start inets without
2192	  having a wrapper function. </p>
2193	  <p>Jay Nelson</p>
2194	  <p>Own Id: OTP-9960</p>
2195        </item>
2196
2197        <item>
2198          <p>[httpc] Add function for retrieving current options,
2199	  <seealso marker="httpc#get_options-1">get_options/[1,2]</seealso>. </p>
2200	  <p>Own Id: OTP-9979</p>
2201        </item>
2202
2203        <item>
2204          <p>Utility module
2205	  <seealso marker="http_uri">http_uri</seealso>
2206	  now officially supported. </p>
2207	  <p>Also, the
2208	  <seealso marker="http_uri#parse">parse</seealso>
2209	  function has been extended with more
2210	  scheme support and a way to provide your own scheme info. </p>
2211	  <p>Own Id: OTP-9983</p>
2212          <p>Aux Id: Seq 12022</p>
2213        </item>
2214
2215      </list>
2216
2217    </section>
2218
2219    <section><title>Fixed Bugs and Malfunctions</title>
2220    <p>-</p>
2221
2222<!--
2223      <list>
2224        <item>
2225          <p>[httpd] Fix logging of content length in mod_log. </p>
2226	  <p>Garrett Smith</p>
2227	  <p>Own Id: OTP-9715</p>
2228        </item>
2229
2230      </list>
2231-->
2232
2233    </section>
2234
2235<!--
2236    <section>
2237      <title>Incompatibilities</title>
2238      <p>-</p>
2239
2240      <list>
2241        <item>
2242          <p>[httpc|httpd] The old ssl implementation (based on OpenSSL),
2243	  has been deprecated. The config option that specified usage of
2244	  this version of the ssl app, <c>ossl</c>, has been removed. </p>
2245	  <p>Own Id: OTP-9522</p>
2246        </item>
2247
2248      </list>
2249
2250    </section>
2251-->
2252
2253  </section> <!-- 5.9 -->
2254
2255
2256  <section><title>Inets 5.8.1</title>
2257    <section><title>Improvements and New Features</title>
2258    <p>-</p>
2259
2260<!--
2261      <list>
2262        <item>
2263          <p>[httpc|httpd] Added support for IPv6 with ssl. </p>
2264          <p>Own Id: OTP-5566</p>
2265        </item>
2266
2267      </list>
2268-->
2269
2270    </section>
2271
2272    <section><title>Fixed Bugs and Malfunctions</title>
2273<!--
2274    <p>-</p>
2275-->
2276
2277      <list>
2278        <item>
2279          <p>[ftp] Fails to open IPv6 connection due to badly formatted
2280          IPv6 address in EPRT command. The address part of the command
2281          incorrectly contained decimal elements instead of hexadecimal. </p>
2282          <p>Own Id: OTP-9827</p>
2283          <p>Aux Id: Seq 11970 </p>
2284        </item>
2285
2286        <item>
2287          <p>[httpc] Bad Keep Alive Mode. When selecting a session,
2288          the "state" of the session (specifically if the server has
2289          responded) was not taken into account. </p>
2290          <p>Own Id: OTP-9847</p>
2291        </item>
2292
2293        <item>
2294          <p>[httpc] The client incorrectly streams 404 responses.
2295          The documentation specifies that only 200 and 206 responses
2296          shall be streamed. </p>
2297          <p>Shane Evens</p>
2298          <p>Own Id: OTP-9860</p>
2299        </item>
2300
2301      </list>
2302    </section>
2303
2304  </section> <!-- 5.8.1 -->
2305
2306
2307  <section><title>Inets 5.8</title>
2308
2309    <section><title>Improvements and New Features</title>
2310<!--
2311    <p>-</p>
2312-->
2313
2314      <list>
2315        <item>
2316          <p>[ftpc] Add a config option to specify a
2317	  <seealso marker="ftp:ftp#dtimeout">data connect timeout</seealso>.
2318	  That is how long the ftp client will wait for the server to connect
2319	  to the data socket. If this timeout occurs, an error will be
2320	  returned to the caller and the ftp client process will be
2321	  terminated. </p>
2322	  <p>Own Id: OTP-9545</p>
2323        </item>
2324
2325        <item>
2326          <p>[httpc] Wrong Host header in IPv6 HTTP requests.
2327	  When a URI with a IPv6 host is parsed, the brackets that encapsulates
2328	  the address part is removed. This value is then supplied as the host
2329	  header. This can cause problems with some servers.
2330	  A workaround for this is to use headers_as_is and provide the host
2331	  header with the requst call.
2332	  To solve this a new option has been added,
2333	  <seealso marker="httpc#ipv6_host_with_brackets">ipv6_host_with_brackets</seealso>.
2334	  This option specifies if the host value of the host header shall
2335	  include the brackets or not. By default, it does not (as before).
2336	  </p>
2337	  <p>Own Id: OTP-9628</p>
2338        </item>
2339
2340      </list>
2341
2342    </section>
2343
2344    <section><title>Fixed Bugs and Malfunctions</title>
2345<!--
2346    <p>-</p>
2347-->
2348
2349      <list>
2350        <item>
2351          <p>[httpd] Fix logging of content length in mod_log. </p>
2352	  <p>Garrett Smith</p>
2353	  <p>Own Id: OTP-9715</p>
2354        </item>
2355
2356        <item>
2357          <p>[httpd] Sometimes entries in the transfer log was written
2358	  with the message size as list of numbers. This list was actually
2359	  the size as a string, e.g. "123", written with the control
2360	  sequence ~w. This has now been corrected so that any string is
2361	  converted to an integer (if possible). </p>
2362	  <p>Own Id: OTP-9733</p>
2363        </item>
2364
2365        <item>
2366          <p>Fixed various problems detected by Dialyzer. </p>
2367	  <p>Own Id: OTP-9736</p>
2368        </item>
2369
2370      </list>
2371
2372    </section>
2373
2374    <section>
2375      <title>Incompatibilities</title>
2376      <list>
2377        <item>
2378          <p>[httpc] Deprecated interface module <c>http</c> has been removed.
2379	  It has (long) been replaced by http client interface module
2380	  <seealso marker="httpc">httpc</seealso>. </p>
2381	  <p>Own Id: OTP-9359</p>
2382        </item>
2383
2384        <item>
2385          <p>[httpc|httpd] The old ssl implementation (based on OpenSSL),
2386	  has been deprecated. The config option that specified usage of
2387	  this version of the ssl app, <c>ossl</c>, has been removed. </p>
2388	  <p>Own Id: OTP-9522</p>
2389        </item>
2390
2391      </list>
2392
2393    </section>
2394
2395  </section> <!-- 5.8 -->
2396
2397
2398  <section><title>Inets 5.7.2</title>
2399    <section><title>Improvements and New Features</title>
2400    <p>-</p>
2401
2402<!--
2403      <list>
2404        <item>
2405          <p>[httpc|httpd] Added support for IPv6 with ssl. </p>
2406	  <p>Own Id: OTP-5566</p>
2407        </item>
2408
2409      </list>
2410-->
2411
2412    </section>
2413
2414    <section><title>Fixed Bugs and Malfunctions</title>
2415<!--
2416    <p>-</p>
2417-->
2418
2419      <list>
2420        <item>
2421          <p>[httpd] XSS prevention did not work for hex-encoded URL's. </p>
2422          <p>Own Id: OTP-9655</p>
2423        </item>
2424
2425        <item>
2426          <p>[httpd] GET request with malformed header date caused
2427	  server crash (non-fatal) with no reply to client. Will
2428	  now result in a reply with status code 400. </p>
2429          <p>Own Id: OTP-9674</p>
2430          <p>Aux Id: seq11936</p>
2431        </item>
2432
2433      </list>
2434    </section>
2435
2436<!--
2437    <section>
2438      <title>Incompatibilities</title>
2439      <p>-</p>
2440
2441      <list>
2442        <item>
2443          <p>[httpc] Deprecated interface module <c>http</c> has been removed.
2444	  It has (long) been replaced by http client interface module
2445	  <seealso marker="httpc#">httpc</seealso>. </p>
2446	  <p>Own Id: OTP-9359</p>
2447        </item>
2448
2449      </list>
2450
2451    </section>
2452-->
2453
2454  </section> <!-- 5.7.2 -->
2455
2456
2457  <section><title>Inets 5.7.1</title>
2458
2459    <section><title>Improvements and New Features</title>
2460    <p>-</p>
2461
2462<!--
2463      <list>
2464        <item>
2465          <p>[httpc|httpd] Added support for IPv6 with ssl. </p>
2466          <p>Own Id: OTP-5566</p>
2467        </item>
2468
2469      </list>
2470-->
2471
2472    </section>
2473
2474    <section><title>Fixed Bugs and Malfunctions</title>
2475<!--
2476    <p>-</p>
2477-->
2478
2479      <list>
2480        <item>
2481          <p>[httpc] Parsing of a cookie expire date should be more forgiving.
2482          That is, if the parsing fails, the date should be ignored.
2483          Also added support for (yet another) date format:
2484          "Tue Jan 01 08:00:01 2036 GMT". </p>
2485          <p>Own Id: OTP-9433</p>
2486        </item>
2487
2488        <item>
2489          <p>[httpc] Rewrote cookie parsing. Among other things solving
2490          cookie processing from www.expedia.com. </p>
2491          <p>Own Id: OTP-9434</p>
2492        </item>
2493
2494        <item>
2495          <p>[httpd] Fix httpd directory traversal on Windows.
2496          Directory traversal was possible on Windows where
2497          backward slash is used as directory separator. </p>
2498          <p>András Veres-Szentkirályi.</p>
2499          <p>Own Id: OTP-9561</p>
2500        </item>
2501
2502      </list>
2503    </section>
2504
2505  </section> <!-- 5.7.1 -->
2506
2507
2508  <section><title>Inets 5.7</title>
2509
2510    <section><title>Improvements and New Features</title>
2511<!--
2512    <p>-</p>
2513-->
2514
2515      <list>
2516        <item>
2517          <p>[httpc|httpd] Added support for IPv6 with ssl. </p>
2518	  <p>Own Id: OTP-5566</p>
2519        </item>
2520
2521      </list>
2522
2523    </section>
2524
2525    <section><title>Fixed Bugs and Malfunctions</title>
2526<!--
2527    <p>-</p>
2528-->
2529
2530      <list>
2531        <item>
2532          <p>[httpc] Remove unnecessary usage of iolist_to_binary when
2533	  processing body (for PUT and POST). </p>
2534	  <p>Filipe David Manana</p>
2535	  <p>Own Id: OTP-9317</p>
2536        </item>
2537
2538        <item>
2539          <p>[ftp] FTP client doesn't work with IPv6 host.</p>
2540	  <p>Attila Rajmund Nohl</p>
2541          <p>Own Id: OTP-9342 Aux Id: seq11853</p>
2542        </item>
2543
2544        <item>
2545          <p>[httpd] Peer/sockname resolv doesn't work with IPv6 addrs
2546	  in HTTP. </p>
2547	  <p>Attila Rajmund Nohl.</p>
2548	  <p>Own Id: OTP-9343</p>
2549        </item>
2550
2551        <item>
2552          <p>[httpc] Clients started stand-alone not properly handled.
2553	  Also it was not documented how to use them, that is that
2554	  once started, they are represented by a <c>pid()</c> and not by
2555	  their <c>profile()</c>. </p>
2556	  <p>Own Id: OTP-9365</p>
2557        </item>
2558
2559      </list>
2560    </section>
2561
2562  </section> <!-- 5.7 -->
2563
2564
2565  <section><title>Inets 5.6</title>
2566
2567    <section><title>Improvements and New Features</title>
2568
2569      <list>
2570        <item>
2571          <p>[httpc] Add support for upload body streaming (PUT and POST).</p>
2572	  <p>For more info,
2573	  see the definition of the <c>Body</c> argument of the
2574	  <seealso marker="httpc#request-4">request/[4,5]</seealso>
2575	  function. </p>
2576	  <p>Filipe David Manana</p>
2577	  <p>Own Id: OTP-9094</p>
2578        </item>
2579
2580        <item>
2581          <p>[ftp] Added (type) spec for all exported functions.</p>
2582          <p>Own Id: OTP-9114 Aux Id: seq11799</p>
2583        </item>
2584
2585        <item>
2586          <p>[httpd]
2587	  <seealso marker="mod_esi#deliver-2">mod_esi:deliver/2</seealso>
2588	  made to accept binary data. </p>
2589          <p>Bernard Duggan</p>
2590          <p>Own Id: OTP-9123</p>
2591        </item>
2592
2593        <item>
2594          <p>[httpd] Prevent XSS in error pages.
2595	  Prevent user controlled input from being interpreted
2596	  as HTML in error pages by encoding the reserved HTML
2597	  characters. </p>
2598	  <p>Michael Santos</p>
2599          <p>Own Id: OTP-9124</p>
2600        </item>
2601
2602        <item>
2603          <p>[httpd] Improved error messages. </p>
2604	  <p>Ricardo Catalinas Jiménez</p>
2605          <p>Own Id: OTP-9157</p>
2606        </item>
2607
2608        <item>
2609          <p>[httpd] Extended support for file descriptors.
2610	  In order to be able to bind to a privileged port
2611	  without running the erlang VM as root, the support
2612	  for using file descriptors has been improved.
2613	  It is now possible to add the file descriptor to the config
2614	  (option fd) when calling the
2615	  <seealso marker="inets#start-2">inets:start(httpd, ...)</seealso>
2616	  function. </p>
2617	  <p>Attila Rajmund Nohl</p>
2618          <p>Own Id: OTP-9202</p>
2619          <p>Aux Id: seq11819</p>
2620        </item>
2621
2622        <item>
2623          <p>The default ssl kind has now been changed to <c>essl</c>. </p>
2624	  <p><c>ossl</c> will work for as long as the ssl application
2625	  supports it. </p>
2626	  <p>See the httpd
2627	  <seealso marker="httpd#props_comm">socket_type</seealso>
2628	  communication property or the httpc
2629	  <seealso marker="httpc#request-4">request/[4,5]</seealso> function
2630	  for more info. </p>
2631	  <p>Own Id: OTP-9230</p>
2632	  <p>*** POTENTIAL INCOMPATIBILITY ***</p>
2633        </item>
2634
2635      </list>
2636    </section>
2637
2638    <section><title>Fixed Bugs and Malfunctions</title>
2639<!--
2640    <p>-</p>
2641-->
2642
2643      <list>
2644        <item>
2645          <p>[httpd] Wrong
2646	  <seealso marker="httpd#props_sec">security property</seealso>
2647	  names used in documentation. </p>
2648	  <p><c>security_data_file</c> used instead of <c>data_file</c>. </p>
2649	  <p><c>security_max_retries</c> used instead of <c>max_retries</c>. </p>
2650	  <p><c>security_block_time</c> used instead of <c>block_time</c>. </p>
2651	  <p><c>security_fail_expire_time</c> used instead of <c>fail_expire_time</c>. </p>
2652	  <p><c>security_auth_timeout</c> used instead of <c>auth_timeout</c>. </p>
2653	  <p>Garrett Smith</p>
2654	  <p>Own Id: OTP-9131</p>
2655        </item>
2656
2657        <item>
2658          <p>[httpd] Fix timeout message generated by mod_esi.
2659	  When a mod_esi request times out, the code to send a
2660	  timeout response was incorrect and generated an
2661	  internal server error as well as an invalid response
2662	  line. </p>
2663	  <p>Bernard Duggan</p>
2664	  <p>Own Id: OTP-9158</p>
2665        </item>
2666
2667        <item>
2668          <p>[httpc] httpc manager crashes.
2669	  When a request results in a retry, the request id will be "reused"
2670	  in the previous implementation a race condition could occur causing
2671	  the manager to crash. </p>
2672	  <p>This is now avoided by using proc_lib:init_ack and
2673	  gen_server:enter_loop to allow mor advanced initialization of
2674	  httpc_handlers without blocking the httpc_manger and eliminating
2675	  extra processes that can cause race conditions. </p>
2676          <p>Own Id: OTP-9246</p>
2677        </item>
2678
2679        <item>
2680          <p>[httpc] Issuing a request (<c>httpc:request</c>) to an
2681	  host with the ssl option
2682	  <c>{ip, {127,0,0,1}}</c> results in an handler crash.
2683	  The reason was that the connect call resulted in an exit with
2684	  reason <c>badarg</c>
2685	  (this was the same for both <c>ssl</c> and <c>gen_tcp</c>). </p>
2686	  <p>Exits was not catched. This has now been improved. </p>
2687          <p>Own Id: OTP-9289</p>
2688          <p>Aux Id: seq11845</p>
2689        </item>
2690
2691      </list>
2692    </section>
2693
2694  </section> <!-- 5.6 -->
2695
2696
2697  <section><title>Inets 5.5.2</title>
2698
2699    <section><title>Improvements and New Features</title>
2700    <p>-</p>
2701
2702<!--
2703      <list>
2704        <item>
2705          <p>
2706	    Miscellaneous inet6 related problems.</p>
2707          <p>Own Id: OTP-8927</p>
2708        </item>
2709      </list>
2710-->
2711
2712    </section>
2713
2714    <section><title>Fixed Bugs and Malfunctions</title>
2715      <list>
2716        <item>
2717          <p>[httpd] httpd_response:send_chunk handles empty list and
2718          empty binary - i.e. no chunk is sent, but it does
2719	  not handle a list with an empty binary [&lt;&lt;&gt;&gt;].
2720	  This will be sent as an empty chunk - which in turn
2721	  will be encoded by http_chunk to the same as a final
2722	  chunk, which will make the http client believe that
2723	  the end of the page is reached.</p>
2724	  <p>Own Id: OTP-8906</p>
2725        </item>
2726      </list>
2727    </section>
2728
2729  </section> <!-- 5.5.2 -->
2730
2731
2732  <section><title>Inets 5.5.1</title>
2733
2734    <section><title>Improvements and New Features</title>
2735      <list>
2736        <item>
2737          <p>Miscellaneous inet6 related problems.</p>
2738          <p>Own Id: OTP-8927</p>
2739        </item>
2740        <item>
2741          <p>Updated http-server to make sure URLs in error-messages
2742	  are URL-encoded. Added support in http-client to use
2743	  URL-encoding. Also added the missing include directory
2744	  for the inets application.</p>
2745          <p>Own Id: OTP-8940</p>
2746          <p>Aux Id: seq11735</p>
2747        </item>
2748      </list>
2749    </section>
2750
2751    <section><title>Fixed Bugs and Malfunctions</title>
2752      <list>
2753        <item>
2754	  <p>Fix format_man_pages so it handles all man sections
2755	  and remove warnings/errors in various man pages. </p>
2756	  <p>Own Id: OTP-8600</p>
2757        </item>
2758        <item>
2759          <p>[httpc] Pipelined and queued requests not processed when
2760	  connection closed remotelly.</p>
2761          <p>Own Id: OTP-8906</p>
2762        </item>
2763      </list>
2764    </section>
2765
2766  </section> <!-- 5.5.1 -->
2767
2768
2769  <section><title>Inets 5.5</title>
2770
2771    <section><title>Fixed Bugs and Malfunctions</title>
2772      <list>
2773        <item>
2774          <p>
2775	    [httpc] If a request times out (not connect timeout), the
2776	    handler process exited (normal) but neglected to inform
2777	    the manager process. For this reason, the manager did not
2778	    clean up the request table., resulting in a memory leak.
2779	    Also the manager did not create a monitor for the
2780	    handler, so in an unforseen handler crash, this could
2781	    also create a memory leak.</p>
2782          <p>
2783	    Own Id: OTP-8739</p>
2784        </item>
2785        <item>
2786          <p>
2787	    The service tftp was spelled wrong in documentation and
2788	    in some parts of the code. It should be tftp.</p>
2789          <p>
2790	    Own Id: OTP-8741 Aux Id: seq11635 </p>
2791        </item>
2792        <item>
2793          <p>
2794	    [httpc] Replaced the old http client api module (http)
2795	    with the new, httpc in the users guide.</p>
2796          <p>
2797	    Own Id: OTP-8742</p>
2798        </item>
2799      </list>
2800    </section>
2801
2802
2803    <section><title>Improvements and New Features</title>
2804      <list>
2805        <item>
2806          <p>
2807	    Eliminated warnings for auto-imported BIF clashes.</p>
2808          <p>
2809	    Own Id: OTP-8840</p>
2810        </item>
2811      </list>
2812    </section>
2813
2814  </section> <!-- 5.5 -->
2815
2816
2817  <section><title>Inets 5.4</title>
2818
2819    <section><title>Improvements and New Features</title>
2820<!--
2821      <p>-</p>
2822-->
2823
2824      <list>
2825        <item>
2826	  <p>[httpc|httpd] - Now allow the use of the "new" ssl, by using
2827            the <c>essl</c> tag instead. </p>
2828          <p>See the <c>http_option</c> option in the
2829            <seealso marker="httpc#request-4">request/[4,5]</seealso> or
2830            the <seealso marker="httpd#props_comm">socket-type</seealso>
2831            section of the Communication properties chapter for more info, </p>
2832	  <p>Own Id: OTP-7907</p>
2833        </item>
2834
2835        <item>
2836	  <p>Deprecated functions designated to be removed in R14 has been
2837            removed. Also, some new functions has been marked as deprecated
2838            (the old http client api module). </p>
2839	  <p>Own Id: OTP-8564</p>
2840	  <p>*** POTENTIAL INCOMPATIBILITY ***</p>
2841        </item>
2842
2843        <item>
2844	  <p>[httpd] - Improved mod_alias.
2845            Now able to do better URL rewrites. </p>
2846          <p>See
2847            <seealso marker="httpd#props_alias">URL aliasing properties</seealso>
2848            and the
2849            <seealso marker="httpd#props_cgi">CGI properties</seealso>
2850            section(s) for more info, </p>
2851	  <p>Own Id: OTP-8573</p>
2852        </item>
2853
2854      </list>
2855    </section>
2856
2857    <section><title>Fixed Bugs and Malfunctions</title>
2858
2859      <p>-</p>
2860
2861<!--
2862      <list>
2863        <item>
2864	  <p>[httpd] The server did not fully support the documented module
2865            callback api. Specifically, the load function should be able to
2866            return the atom <c>ok</c>, but this was not accepted. </p>
2867	  <p>Own Id: OTP-8359</p>
2868        </item>
2869
2870      </list>
2871-->
2872
2873    </section>
2874
2875  </section> <!-- 5.4 -->
2876
2877
2878  <section><title>Inets 5.3.3</title>
2879
2880    <section><title>Improvements and New Features</title>
2881      <p>-</p>
2882
2883<!--
2884      <list>
2885        <item>
2886	  <p>[httpc] - Allow users to pass socket options to the transport
2887            module when making requests. </p>
2888          <p>See the <c>socket_opts</c> option in the
2889            <seealso marker="httpc#request2">request/4</seealso> or
2890            <seealso marker="httpc#set_options">set_options/1,2</seealso>
2891            for more info, </p>
2892	  <p>Own Id: OTP-8352</p>
2893        </item>
2894
2895      </list>
2896-->
2897    </section>
2898
2899    <section><title>Fixed Bugs and Malfunctions</title>
2900
2901<!--
2902      <p>-</p>
2903-->
2904
2905      <list>
2906        <item>
2907	  <p>[httpc] - Made cookie handling more case insensitive.</p>
2908	  <p>Own Id: OTP-8609</p>
2909          <p>Nicolas Thauvin</p>
2910        </item>
2911
2912        <item>
2913	  <p>[httpc|httpd] - Netscape cookie dates can also be given with a
2914            2-digit year (e.g. 06 = 2006). </p>
2915	  <p>Own Id: OTP-8610</p>
2916          <p>Nicolas Thauvin</p>
2917        </item>
2918
2919        <item>
2920	  <p>[httpd] - Added support (again) for the documented debugging
2921            features. See the User's Guide
2922            <seealso marker="http_server#config">Configuration</seealso>
2923            chapter for more info. </p>
2924	  <p>Own Id: OTP-8624</p>
2925        </item>
2926
2927      </list>
2928    </section>
2929
2930  </section> <!-- 5.3.3 -->
2931
2932
2933  <section><title>Inets 5.3.2</title>
2934
2935    <section><title>Improvements and New Features</title>
2936      <p>-</p>
2937
2938<!--
2939      <list>
2940        <item>
2941	  <p>[httpc] - Allow users to pass socket options to the transport
2942            module when making requests. </p>
2943          <p>See the <c>socket_opts</c> option in the
2944            <seealso marker="httpc#request2">request/4</seealso> or
2945            <seealso marker="httpc#set_options">set_options/1,2</seealso>
2946            for more info, </p>
2947	  <p>Own Id: OTP-8352</p>
2948        </item>
2949
2950      </list>
2951-->
2952    </section>
2953
2954    <section><title>Fixed Bugs and Malfunctions</title>
2955
2956<!--
2957      <p>-</p>
2958-->
2959
2960      <list>
2961        <item>
2962	  <p>[httpc] - Memory leak plugged.
2963            The profile manager never cleaned up in its handler database.
2964            This meant that with each new request handler, another entry
2965            was created that was never deleted. Eventually the request
2966            id counter (used as a key) would wrap, but the machine would
2967            most likely run out of memory before that happened.</p>
2968	  <p>Own Id: OTP-8542</p>
2969          <p>Lev Walkin</p>
2970        </item>
2971
2972        <item>
2973	  <p>[httpc] - https requests with default port (443) not handled
2974            properly. </p>
2975	  <p>Own Id: OTP-8607</p>
2976          <p>jebu ittiachen</p>
2977        </item>
2978
2979      </list>
2980    </section>
2981
2982  </section> <!-- 5.3.2 -->
2983
2984
2985  <section><title>Inets 5.3.1</title>
2986
2987    <section><title>Improvements and New Features</title>
2988      <p>-</p>
2989
2990<!--
2991      <list>
2992        <item>
2993	  <p>[httpc] - Allow users to pass socket options to the transport
2994            module when making requests. </p>
2995          <p>See the <c>socket_opts</c> option in the
2996            <seealso marker="httpc#request2">request/4</seealso> or
2997            <seealso marker="httpc#set_options">set_options/1,2</seealso>
2998            for more info, </p>
2999	  <p>Own Id: OTP-8352</p>
3000        </item>
3001
3002      </list>
3003-->
3004    </section>
3005
3006    <section><title>Fixed Bugs and Malfunctions</title>
3007
3008<!--
3009      <p>-</p>
3010-->
3011
3012      <list>
3013        <item>
3014	  <p>[httpc] - Badly formated error reason for errors occuring
3015            during initial connect to a server.
3016            Also, the possible error reasons was
3017            not properly documented.</p>
3018	  <p>Own Id: OTP-8508</p>
3019	  <p>Aux Id: seq11407</p>
3020        </item>
3021
3022        <item>
3023	  <p>[httpd] - Issues with ESI erl_script_timeout. </p>
3024          <list type="bulleted">
3025	    <item>
3026	      <p>The <c>erl_script_timeout</c> config option is ducumented
3027              as a number of seconds. But when parsing the config, in the
3028              new format (not a config file), it was handled as if in
3029              number of milliseconds. </p>
3030            </item>
3031	    <item>
3032	      <p>When the erl-script-timeout time was exceeded, the server
3033              incorrectly marked the answer as sent, thereby leaving
3034              client hanging (with an incomplete answer).
3035              This has been changed, so that now the socket will be
3036              closed. </p>
3037	    </item>
3038	  </list>
3039	  <p>Own Id: OTP-8509</p>
3040        </item>
3041      </list>
3042    </section>
3043
3044  </section> <!-- 5.3.1 -->
3045
3046
3047  <section><title>Inets 5.3</title>
3048
3049    <section><title>Improvements and New Features</title>
3050<!--
3051      <p>-</p>
3052-->
3053
3054      <list>
3055        <item>
3056	  <p>[httpc] - Allow users to pass socket options to the transport
3057            module when making requests. </p>
3058          <p>See the <c>socket_opts</c> option in the
3059            <seealso marker="httpc#request-4">request/4</seealso> or
3060            <seealso marker="httpc#set_options-1">set_options/[1,2]</seealso>
3061            for more info, </p>
3062	  <p>Own Id: OTP-8352</p>
3063        </item>
3064
3065        <item>
3066          <p>[httpc] Fix bug crafting Host header when port is not 80. </p>
3067          <p>The host header should include the port number as well as the
3068            host name when making a request to a server listening on a port
3069            other than the HTTP default of 80. Currently, only the host
3070            name is included. This is important to make the http client
3071            more compliant with the HTTP specification. </p>
3072          <p>Own Id: OTP-8371</p>
3073          <p>Kelly McLaughlin</p>
3074        </item>
3075
3076        <item>
3077	  <p>[httpc|httpd] http_chunk data handling/passing improvement. </p>
3078          <p>This is a modification to the http_chunk module to forward any
3079            full chunk received, regardless of whether the size field for the
3080            following chunk has been received yet.  This allows http_chunk to
3081            be used in situations where a long term HTTP connection is used to
3082            send periodic status updates as individual chunks.  Previously a
3083            given chunk would not be forwarded to the client process until the
3084            size for the next chunk had been read which rendered the module
3085            difficult to use for the scenario described. </p>
3086          <p>Bernard Duggan</p>
3087	  <p>Own Id: OTP-8351</p>
3088        </item>
3089
3090        <item>
3091	  <p>Include the inets test suite in the release of the
3092            application. </p>
3093	  <p>Own Id: OTP-8349</p>
3094        </item>
3095
3096        <item>
3097	  <p>[httpc] - It is now possible to configure the client to
3098            deliver an async reply to more receivers then the calling
3099            process. </p>
3100          <p>See the
3101            <seealso marker="httpc#request-2">receiver</seealso>
3102            option for more info, </p>
3103	  <p>Own Id: OTP-8106</p>
3104        </item>
3105
3106	<item>
3107	  <p>[httpd] - Methods "PUT" and "DELETE" now allowed. </p>
3108          <p>huntermorris@gmail.com</p>
3109	  <p>Own Id: OTP-8103</p>
3110        </item>
3111
3112        <item>
3113          <p>[httpc] Several more or less critical fixes:</p>
3114          <list type="bulleted">
3115	    <item>
3116	      <p>Initial call between the httpc manager and request
3117              handler was synchronous. </p>
3118	      <p>When the manager starts a new request handler,
3119              this is no longer a synchronous operation. Previously,
3120              the new request handler made the connection to the
3121              server and issuing of the first request (the reason
3122              for starting it) in the gen_server init function.
3123              If the connection for some reason "took some time",
3124              the manager hanged, leaving all other activities by
3125              that manager also hanging. </p>
3126            </item>
3127<!--
3128	      <item>
3129	        <p>Copying of data between processes</p>
3130	        <p>TBD</p>
3131	      </item>
3132	      <item>
3133	        <p>Reading of requests</p>
3134	        <p>TBD</p>
3135	      </item>
3136-->
3137	  </list>
3138          <p>As a side-effect of these changes, some modules was also
3139            renamed, and a new api module,
3140            <seealso marker="httpc">httpc</seealso>, has been introduced
3141            (the old module <c>http</c> is <em>not</em> removed, but is
3142            now just wrapper for <c>httpc</c>). </p>
3143          <p>Own Id: OTP-8016</p>
3144	  <p>*** POTENTIAL INCOMPATIBILITY ***</p>
3145        </item>
3146
3147      </list>
3148    </section>
3149
3150    <section><title>Fixed Bugs and Malfunctions</title>
3151
3152<!--
3153      <p>-</p>
3154-->
3155
3156      <list>
3157        <item>
3158	  <p>[httpd] The server did not fully support the documented module
3159            callback api. Specifically, the load function should be able to
3160            return the atom <c>ok</c>, but this was not accepted. </p>
3161	  <p>Own Id: OTP-8359</p>
3162        </item>
3163
3164        <item>
3165          <p>Fixing various documentation-related bugs (bad quotes).</p>
3166          <p>Own Id: OTP-8327</p>
3167        </item>
3168
3169        <item>
3170	  <p>Fixing minor Dialyzer and copyright problem(s). </p>
3171	  <p>Own Id: OTP-8315</p>
3172        </item>
3173
3174        <item>
3175	  <p>[httpc] - Added basic sanity check of option value
3176            combinations.</p>
3177          <p>adam.kocoloski@gmail.com</p>
3178	  <p>Own Id: OTP-8056</p>
3179        </item>
3180      </list>
3181    </section>
3182
3183  </section> <!-- 5.3 -->
3184
3185
3186  <section><title>Inets 5.2</title>
3187
3188    <section><title>Improvements and New Features</title>
3189<!--
3190      <p>-</p>
3191-->
3192        <list>
3193          <item>
3194	    <p>[ftpc] - Start of the FTP client has been changed in
3195              the following way: </p>
3196	      <list type="bulleted">
3197		<item>
3198		  <p>It is now also possible to start a standalone FTP client
3199		    process using the re-introduced
3200                    <seealso marker="ftp:ftp#open">ftp:open</seealso>
3201                    function. </p>
3202                  <p>This is an alternative to starting the client using the
3203		    <seealso marker="ftp:ftp#service_start">inets service framework</seealso>. </p>
3204		  <p>The old <c>ftp:open/1</c>, undocumented, function,
3205                    caused the client to be hooken into the inets service
3206                    supervision framework. This is <em>no</em> longer the
3207                    case. </p>
3208                  <p>*** POTENTIAL INCOMPATIBILITY ***</p>
3209		</item>
3210		<item>
3211                  <p>Previously, the FTP client attempted to use IPv6,
3212                    unless otherwise instructed (the <c>ip_v6_disabled</c>
3213                    flag), and only used IPv4 if this did not work.
3214                    This has now been <em>changed</em>. </p>
3215                  <p>A new option,
3216                    <seealso marker="ftp:ftp#ipfamily">ipfamily</seealso>,
3217                    has been introduced, with the default value
3218                    <c>inet</c> (IPv4). </p>
3219                  <p>See <seealso marker="ftp:ftp#open">ftp:open</seealso>
3220                    for more info.</p>
3221                  <p>*** POTENTIAL INCOMPATIBILITY ***</p>
3222		</item>
3223              </list>
3224	    <p>Own Id: OTP-8258</p>
3225	    <!-- <p>Aux Id: seq11407</p> -->
3226	  </item>
3227
3228          <item>
3229            <p>The documentation is now built with open source tools
3230              (<em>xsltproc</em> and <em>fop</em>) that exists on most
3231              platforms. One visible change is that the frames are removed.</p>
3232            <p>Own Id: OTP-8249</p>
3233          </item>
3234
3235        </list>
3236    </section>
3237
3238    <section><title>Fixed Bugs and Malfunctions</title>
3239
3240<!--
3241      <p>-</p>
3242-->
3243
3244      <list>
3245        <item>
3246	  <p>[httpc] - Streaming to file did not work.</p>
3247          <p>dizzyd@gmail.com</p>
3248	  <p>Own Id: OTP-8204</p>
3249        </item>
3250
3251        <item>
3252	  <p>[ftpc] - The
3253            <seealso marker="ftp:ftp#ls2">ls/2</seealso> function (LIST command)
3254            and the
3255            <seealso marker="ftp:ftp#nlist2">nlist/2</seealso> function
3256            (NLST command)
3257            with wildcards did
3258            not work properly. </p>
3259          <p>These functions is documented as working on directories, but
3260            this is actually not according the standard. The LIST and NLST
3261            commands are specified to operate on a directory or other
3262            group of files, or a file.</p>
3263          <p>Previously, an attempt was made to check if the listing
3264            returned by the server was actually an error message. This
3265            was done by changing remote directory (cd) into the
3266            (assumed) "directory". This may work if Pathname was actually
3267            a directory, but as this is not always the case, this test
3268            does not work. Instead, we now return the actual server
3269            result and leave the interpretation to the caller. </p>
3270          <p>*** POTENTIAL INCOMPATIBILITY ***</p>
3271	  <p>Own Id: OTP-8247</p>
3272	  <p>Aux Id: seq11407</p>
3273        </item>
3274
3275        <item>
3276	  <p>[httpc] - Fixes various bugs in timeout and keep-alive queue
3277            handling. </p>
3278          <list type="bulleted">
3279            <item>
3280              <p>When a queued request times, out the error mssage is sent
3281                the owner of the active request. </p>
3282	    </item>
3283
3284            <item>
3285              <p>Requests in the keep-alive queue is forgotten when
3286                handler terminates. </p>
3287	    </item>
3288
3289            <item>
3290              <p>Timeout out requests are retried. </p>
3291	    </item>
3292          </list>
3293          <p>Jean-S&#233;bastien P&#233;dron</p>
3294	  <p>Own Id: OTP-8248</p>
3295        </item>
3296
3297        <item>
3298	  <p>[httpd] - Unnecessarily strict matching when handling closing sockets. </p>
3299	  <p>Own Id: OTP-8280</p>
3300        </item>
3301
3302      </list>
3303    </section>
3304
3305  </section> <!-- 5.2 -->
3306
3307
3308  <section><title>Inets 5.1.3</title>
3309
3310    <section><title>Improvements and New Features</title>
3311      <p>-</p>
3312<!--
3313        <list>
3314          <item>
3315            <p>[httpc] Added support for web services using only basic auth,
3316              with a token as the user part and no password part.</p>
3317            <p>twoggle@gmail.com</p>
3318            <p>Own Id: OTP-7998</p>
3319          </item>
3320
3321        </list>
3322-->
3323    </section>
3324
3325    <section><title>Fixed Bugs and Malfunctions</title>
3326
3327<!--
3328      <p>-</p>
3329-->
3330
3331      <list>
3332        <item>
3333	  <p>[httpc] - Raise condition.
3334            When http:request is called and httpc_manager selects a session
3335            where there's already a pending request, then the connection
3336            handler for that session effectively resets its parser, readying
3337            it for the response to the second request. But if there are still
3338            some inbound packets for the response to the first request, things
3339            get confused.</p>
3340          <p>tomas.abrahamsson@gmail.com</p>
3341	  <p>Own Id: OTP-8154</p>
3342        </item>
3343
3344      </list>
3345    </section>
3346
3347  </section> <!-- 5.1.3 -->
3348
3349
3350  <section><title>Inets 5.1.2</title>
3351<!--
3352        <p>-</p>
3353-->
3354
3355      <section><title>Improvements and New Features</title>
3356<!--
3357        <p>-</p>
3358-->
3359
3360        <list>
3361	  <item>
3362	    <p>[httpc] - Added http option <c>connect_timeout</c> for http
3363              client request.
3364              The <c>connect_timeout</c> option is used for the initial
3365              request, when the client connects to the server. Default
3366              value is that of the <c>timeout</c> option. </p>
3367            <p>See the
3368	      <seealso marker="httpc#request-4">request/[4,5]</seealso>
3369              function for more info. </p>
3370	    <p>Own Id: OTP-7298</p>
3371	    <!-- <p>Aux Id: seq11086</p> -->
3372          </item>
3373
3374        </list>
3375      </section>
3376
3377
3378      <section><title>Fixed Bugs and Malfunctions</title>
3379<!--
3380        <p>-</p>
3381-->
3382
3383        <list>
3384	  <item>
3385	    <p>[httpd] - Failed to create listen socket with invalid
3386              option combo. The http-server failed to create its listen
3387              socket when the bind-address was an IPv4-address (a tuple of
3388              size 4) and the ipfamily option was inet6fb4. </p>
3389	    <p>Own Id: OTP-8118</p>
3390	    <p>Aux Id: seq11321</p>
3391          </item>
3392
3393	  <item>
3394	    <p>[httpd] - Removed documentation for non-existing function
3395              (httpd_util:header/2,3,4). </p>
3396	    <p>Own Id: OTP-8101</p>
3397	    <!-- <p>Aux Id: seq11321</p> -->
3398          </item>
3399
3400        </list>
3401      </section>
3402
3403  </section> <!-- 5.1.2 -->
3404
3405
3406  <section><title>Inets 5.1.1</title>
3407<!--
3408        <p>-</p>
3409-->
3410
3411      <section><title>Improvements and New Features</title>
3412        <list>
3413	  <item>
3414	    <p>[httpd] - When starting inets (the web-server) and supplying
3415              a descriptor on the command line
3416              (example: erl -httpd_8888 &lt;descriptor&gt;)
3417              it is now possible to specify which ip-family to use:
3418              <c>inet | inet6 | inet6fb4</c>. </p>
3419            <p>Example: erl -httpd_8888 10|inet6</p>
3420            <p>When starting the web-server either using a file with
3421              property list (the proplist_file) or a an property list,
3422              using the ipfamily option:
3423              <c>{ipfamily, inet | inet6 | inet6fb4}</c>. </p>
3424            <p>Finally, when starting the web-server using the classical
3425              apache-style config file, the <c>BindAddress</c> directive
3426              has been augmented to allow the specification of the
3427              IpFamily: <c>BindAddress blirk.ericsson.se|inet</c></p>
3428            <p>Default is <c>inet6fb4</c> which emulates the
3429              behaviour of the previous version. </p>
3430            <p>See the
3431	      <seealso marker="httpd#props_comm">Communication properties</seealso>
3432              section for more info. </p>
3433	    <p>Own Id: OTP-8069</p>
3434	    <p>Aux Id: seq11086</p>
3435          </item>
3436
3437        </list>
3438      </section>
3439
3440
3441      <section><title>Fixed Bugs and Malfunctions</title>
3442<!--
3443        <p>-</p>
3444-->
3445
3446        <list>
3447	  <item>
3448	    <p>[httpc] - Reception of unexpected data causes handler crash. </p>
3449	    <p>Own Id: OTP-8052</p>
3450          </item>
3451
3452        </list>
3453      </section>
3454
3455  </section> <!-- 5.1.1 -->
3456
3457
3458  <section><title>Inets 5.1</title>
3459
3460      <section><title>Improvements and New Features</title>
3461        <list>
3462          <item>
3463            <p>[httpc] Added support for web services using only basic auth,
3464              with a token as the user part and no password part.</p>
3465            <p>twoggle@gmail.com</p>
3466            <p>Own Id: OTP-7998</p>
3467          </item>
3468
3469	  <item>
3470	    <p>[httpc] - Bind HTTP client to IP-addr. It is now possible
3471              to specify an alternate ip-address and port to be used when
3472              the client connects to the server. </p>
3473	    <p>As a side-effect of this, the option <c>ipv6</c> has been
3474              removed and replaced by the <c>ipfamily</c> option. </p>
3475	    <p>See <seealso marker="httpc#set_options-1">http:set_options/[1,2]</seealso>
3476              for more info. </p>
3477            <p>*** POTENTIAL INCOMPATIBILITY ***</p>
3478	    <p>Own Id: OTP-8004</p>
3479          </item>
3480
3481        </list>
3482      </section>
3483
3484
3485      <section><title>Fixed Bugs and Malfunctions</title>
3486<!--
3487        <p>-</p>
3488-->
3489
3490        <list>
3491          <item>
3492            <p>Updated guard tests (i.e. is_list(L) instead of
3493              list(L) and possibly andalso/orelse instead of ","/";"). </p>
3494            <p>Own Id: OTP-7994</p>
3495          </item>
3496
3497          <item>
3498            <p>[httpc] - Remove use of the deprecated regexp module. </p>
3499            <p>Own Id: OTP-8001</p>
3500          </item>
3501
3502	  <item>
3503	    <p>[httpc] - The option <c>max_keep_alive_length</c> was
3504              not handled properly. </p>
3505	    <p>Own Id: OTP-8005</p>
3506          </item>
3507
3508
3509        </list>
3510      </section>
3511
3512  </section> <!-- 5.1 -->
3513
3514  <!--
3515       <p>For information about older versions see
3516       <url href="part_notes_history_frame.html">release notes history</url>.</p>
3517  -->
3518
3519</chapter>
3520