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 <CR> and <LF> 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 [<<>>]. 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ébastien Pé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 <descriptor>) 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