diff options
Diffstat (limited to 'lib')
80 files changed, 1352 insertions, 894 deletions
diff --git a/lib/appmon/doc/src/notes.xml b/lib/appmon/doc/src/notes.xml index 29e66411a6..ace163bcad 100644 --- a/lib/appmon/doc/src/notes.xml +++ b/lib/appmon/doc/src/notes.xml @@ -30,6 +30,22 @@ </header> <p>This document describes the changes made to the Appmon application.</p> +<section><title>Appmon 2.1.13</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + An obsolete compiler directive for native code generation + was removed from a source file.</p> + <p> + Own Id: OTP-8839</p> + </item> + </list> + </section> + +</section> + <section><title>Appmon 2.1.12</title> <section><title>Improvements and New Features</title> diff --git a/lib/appmon/vsn.mk b/lib/appmon/vsn.mk index 0675a4eb8b..fa17345daf 100644 --- a/lib/appmon/vsn.mk +++ b/lib/appmon/vsn.mk @@ -1 +1 @@ -APPMON_VSN = 2.1.12 +APPMON_VSN = 2.1.13 diff --git a/lib/asn1/doc/src/notes.xml b/lib/asn1/doc/src/notes.xml index c5ec682e0f..375e859d20 100644 --- a/lib/asn1/doc/src/notes.xml +++ b/lib/asn1/doc/src/notes.xml @@ -31,6 +31,50 @@ <p>This document describes the changes made to the asn1 application.</p> +<section><title>Asn1 1.6.14.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Extension Addition Groups are now supported by the parser + and in all backends.</p> + <p> + Own Id: OTP-8598 Aux Id: seq-11557 </p> + </item> + <item> + <p> + Extension Addition Groups are now supported in nested + types within a SEQUENCE and CHOICE as well (missed that + in previous fix)</p> + <p> + Own Id: OTP-8797 Aux Id: seq-11557 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Bug in UNALIGNED PER regarding encoding and decoding of + constrained numbers with a valuerange > 1024. (Thanks to + Vincent de Phily)</p> + <p> + Own Id: OTP-8779</p> + </item> + <item> + <p> + Minor corrections in the User Guide.</p> + <p> + Own Id: OTP-8829</p> + </item> + </list> + </section> + +</section> + <section><title>Asn1 1.6.14</title> <section><title>Improvements and New Features</title> diff --git a/lib/asn1/vsn.mk b/lib/asn1/vsn.mk index c0393f84fe..0399ff2732 100644 --- a/lib/asn1/vsn.mk +++ b/lib/asn1/vsn.mk @@ -1,2 +1,2 @@ #next version number to use is 1.6.15 | 1.7 | 2.0 -ASN1_VSN = 1.6.14 +ASN1_VSN = 1.6.14.1 diff --git a/lib/common_test/doc/src/notes.xml b/lib/common_test/doc/src/notes.xml index eadfc83c07..af9dbfa9ec 100644 --- a/lib/common_test/doc/src/notes.xml +++ b/lib/common_test/doc/src/notes.xml @@ -32,6 +32,69 @@ <file>notes.xml</file> </header> +<section><title>Common_Test 1.5.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Returning {return_group_result,failed} from end_per_group + in a group that is part of a sequence, did not cause the + proceeding cases (or groups) to get skipped. This has + been fixed.</p> + <p> + Own Id: OTP-8753 Aux Id: seq11644 </p> + </item> + <item> + <p> + ct:install now works as the documentation describes.</p> + <p> + Own Id: OTP-8818 Aux Id: seq-11666 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Common Test has been updated to handle start options and + test specification terms for test case groups (and test + cases in groups). Also, an option named 'label', has been + added that associates the test run with a name that + Common Test prints in the overview HTML logs.</p> + <p> + Own Id: OTP-8725 Aux Id: OTP-8727 </p> + </item> + <item> + <p> + Andrey Pampukha has been added to the AUTHORS file. Thank + you Andrey for your work on configuration data handling, + Large Scale Testing improvements, and other useful + updates and fixes.</p> + <p> + Own Id: OTP-8803</p> + </item> + <item> + <p> + The Configuration Data chapter in the User's Guide has + been updated.</p> + <p> + Own Id: OTP-8804</p> + </item> + <item> + <p> + Milliseconds are now included in timestamps in Common + Test log entries. (Thanks to Tomas Johansson.)</p> + <p> + Own Id: OTP-8808</p> + </item> + </list> + </section> + +</section> + <section><title>Common_Test 1.5</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/compiler/doc/src/notes.xml b/lib/compiler/doc/src/notes.xml index c08839bc7b..00ea0da55c 100644 --- a/lib/compiler/doc/src/notes.xml +++ b/lib/compiler/doc/src/notes.xml @@ -31,6 +31,21 @@ <p>This document describes the changes made to the Compiler application.</p> +<section><title>Compiler 4.7.1</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Eliminated warnings for auto-imported BIF clashes.</p> + <p> + Own Id: OTP-8840</p> + </item> + </list> + </section> + +</section> + <section><title>Compiler 4.7</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/compiler/vsn.mk b/lib/compiler/vsn.mk index 47feab5fe1..4658eccd19 100644 --- a/lib/compiler/vsn.mk +++ b/lib/compiler/vsn.mk @@ -1 +1 @@ -COMPILER_VSN = 4.7 +COMPILER_VSN = 4.7.1 diff --git a/lib/crypto/doc/src/notes.xml b/lib/crypto/doc/src/notes.xml index 79798331ca..3c571eb2a3 100644 --- a/lib/crypto/doc/src/notes.xml +++ b/lib/crypto/doc/src/notes.xml @@ -30,6 +30,56 @@ </header> <p>This document describes the changes made to the Crypto application.</p> +<section><title>Crypto 2.0.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Crypto dialyzer type error in md5_mac and sha_mac.</p> + <p> + Own Id: OTP-8718</p> + </item> + <item> + <p> + RC4 stream cipher didn't work. This since the new NIF + implementation of <c>crypto:rc4_encrypt_with_state/2</c> + introduced in <c>crypto-2.0</c> didn't return an updated + state. (Thanks to Paul Guyot)</p> + <p> + Own Id: OTP-8781</p> + </item> + <item> + <p> + A number of memory leaks in the crypto NIF library have + been fixed.</p> + <p> + Own Id: OTP-8810</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Added erlang:system_info(build_type) which makes it + easier to chose drivers, NIF libraries, etc based on + build type of the runtime system.</p> + <p> + The NIF library for crypto can now be built for valgrind + and/or debug as separate NIF libraries that will be + automatically loaded if the runtime system has been built + with a matching build type.</p> + <p> + Own Id: OTP-8760</p> + </item> + </list> + </section> + +</section> + <section><title>Crypto 2.0</title> <section><title>Improvements and New Features</title> diff --git a/lib/crypto/vsn.mk b/lib/crypto/vsn.mk index d04736fc2b..e3549f0c50 100644 --- a/lib/crypto/vsn.mk +++ b/lib/crypto/vsn.mk @@ -1 +1 @@ -CRYPTO_VSN = 2.0 +CRYPTO_VSN = 2.0.1 diff --git a/lib/debugger/doc/src/notes.xml b/lib/debugger/doc/src/notes.xml index c5f611b8f3..c72a5271ba 100644 --- a/lib/debugger/doc/src/notes.xml +++ b/lib/debugger/doc/src/notes.xml @@ -32,6 +32,22 @@ <p>This document describes the changes made to the Debugger application.</p> +<section><title>Debugger 3.2.4</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Type specs have been added/cleaned up. (Thanks to Kostis + Sagonas.)</p> + <p> + Own Id: OTP-8757</p> + </item> + </list> + </section> + +</section> + <section><title>Debugger 3.2.3</title> <section><title>Improvements and New Features</title> diff --git a/lib/debugger/vsn.mk b/lib/debugger/vsn.mk index f33d66b5cf..654dc11e20 100644 --- a/lib/debugger/vsn.mk +++ b/lib/debugger/vsn.mk @@ -1 +1 @@ -DEBUGGER_VSN = 3.2.3 +DEBUGGER_VSN = 3.2.4 diff --git a/lib/dialyzer/doc/src/notes.xml b/lib/dialyzer/doc/src/notes.xml index 856af01525..ac3857b9ef 100755 --- a/lib/dialyzer/doc/src/notes.xml +++ b/lib/dialyzer/doc/src/notes.xml @@ -31,6 +31,21 @@ <p>This document describes the changes made to the Dialyzer application.</p> +<section><title>Dialyzer 2.3.1</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Eliminated warnings for auto-imported BIF clashes.</p> + <p> + Own Id: OTP-8840</p> + </item> + </list> + </section> + +</section> + <section><title>Dialyzer 2.3.0</title> <section><title>Improvements and New Features</title> diff --git a/lib/dialyzer/vsn.mk b/lib/dialyzer/vsn.mk index f2daf86def..d3574e0a71 100644 --- a/lib/dialyzer/vsn.mk +++ b/lib/dialyzer/vsn.mk @@ -1 +1 @@ -DIALYZER_VSN = 2.3.0 +DIALYZER_VSN = 2.3.1 diff --git a/lib/docbuilder/doc/src/notes.xml b/lib/docbuilder/doc/src/notes.xml index 725aae0a68..019cf1b083 100644 --- a/lib/docbuilder/doc/src/notes.xml +++ b/lib/docbuilder/doc/src/notes.xml @@ -31,6 +31,22 @@ <p>This document describes the changes made to the DocBuilder application.</p> +<section><title>Docbuilder 0.9.8.8</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> Fixed problem with a centered table that was + transformed into an xml document which then produced + mis-formatted html. </p> + <p> + Own Id: OTP-8784</p> + </item> + </list> + </section> + +</section> + <section><title>Docbuilder 0.9.8.7</title> <section><title>Improvements and New Features</title> diff --git a/lib/docbuilder/vsn.mk b/lib/docbuilder/vsn.mk index 5bb92fd209..b23ee521c7 100644 --- a/lib/docbuilder/vsn.mk +++ b/lib/docbuilder/vsn.mk @@ -1 +1 @@ -DOCB_VSN = 0.9.8.7 +DOCB_VSN = 0.9.8.8 diff --git a/lib/edoc/doc/src/notes.xml b/lib/edoc/doc/src/notes.xml index 74fa2d3ab6..83ad27ed31 100644 --- a/lib/edoc/doc/src/notes.xml +++ b/lib/edoc/doc/src/notes.xml @@ -31,6 +31,21 @@ <p>This document describes the changes made to the EDoc application.</p> +<section><title>Edoc 0.7.6.7</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p>Edoc now uses the new API functions to <c>inets</c> + instead of the deprecated ones.</p> + <p> + Own Id: OTP-8749</p> + </item> + </list> + </section> + +</section> + <section><title>Edoc 0.7.6.6</title> <section><title>Improvements and New Features</title> diff --git a/lib/edoc/vsn.mk b/lib/edoc/vsn.mk index 2de2641b4a..75e9a5c971 100644 --- a/lib/edoc/vsn.mk +++ b/lib/edoc/vsn.mk @@ -1 +1 @@ -EDOC_VSN = 0.7.6.6 +EDOC_VSN = 0.7.6.7 diff --git a/lib/erl_docgen/doc/src/notes.xml b/lib/erl_docgen/doc/src/notes.xml index ce6ba3d923..5b5398fec6 100644 --- a/lib/erl_docgen/doc/src/notes.xml +++ b/lib/erl_docgen/doc/src/notes.xml @@ -29,7 +29,22 @@ <file>notes.xml</file> </header> <p>This document describes the changes made to the erl_docgen application.</p> - <section><title>erl_docgen 0.2.1</title> + <section><title>Erl_Docgen 0.2.2</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> Fixed the transformation from xml to html of the + funcs block in comref pages. </p> + <p> + Own Id: OTP-8792</p> + </item> + </list> + </section> + +</section> + +<section><title>erl_docgen 0.2.1</title> <section><title>Fixed Bugs and Malfunctions</title> <list> diff --git a/lib/erl_docgen/vsn.mk b/lib/erl_docgen/vsn.mk index 33d8c1f708..0bc01f7d49 100644 --- a/lib/erl_docgen/vsn.mk +++ b/lib/erl_docgen/vsn.mk @@ -1 +1 @@ -ERL_DOCGEN_VSN = 0.2.1 +ERL_DOCGEN_VSN = 0.2.2 diff --git a/lib/erl_interface/configure.in b/lib/erl_interface/configure.in index 7728cb97be..72ac8c7bbf 100644 --- a/lib/erl_interface/configure.in +++ b/lib/erl_interface/configure.in @@ -288,13 +288,7 @@ case "$threads_disabled" in ;; win32_threads) EI_THREADS="true" - AC_MSG_CHECKING([for __declspec(thread) usability]) - if test "X$GCC" = "Xyes"; then - AC_MSG_RESULT([no]) - else - THR_DEFS="$THR_DEFS -DUSE_DECLSPEC_THREAD" - AC_MSG_RESULT([yes]) - fi + THR_DEFS="$THR_DEFS -D_WIN32_WINNT=0x0500 -DWINVER=0x0500" ;; pthread) EI_THREADS="true" diff --git a/lib/erl_interface/doc/src/ei_connect.xml b/lib/erl_interface/doc/src/ei_connect.xml index 36dfb149cc..f562615ddd 100644 --- a/lib/erl_interface/doc/src/ei_connect.xml +++ b/lib/erl_interface/doc/src/ei_connect.xml @@ -4,7 +4,7 @@ <cref> <header> <copyright> - <year>2001</year><year>2009</year> + <year>2001</year><year>2010</year> <holder>Ericsson AB. All Rights Reserved.</holder> </copyright> <legalnotice> @@ -508,7 +508,7 @@ if (ei_decode_version(result.buff, &index) < 0 same as the port number that was previously bound to the socket.</p> <p><c><![CDATA[addr]]></c> is the 32-bit IP address of the local host.</p> <p>To unregister with epmd, simply close the returned - descriptor. See also <c><![CDATA[ei_unpublish()]]></c>.</p> + descriptor. Do not use <c><![CDATA[ei_unpublish()]]></c>, which is deprecated anyway.</p> <p>On success, the functions return a descriptor connecting the calling process to epmd. On failure, they return -1 and set <c><![CDATA[erl_errno]]></c> to <c><![CDATA[EIO]]></c>.</p> @@ -558,18 +558,21 @@ typedef struct { </func> <func> <name><ret>int</ret><nametext>ei_unpublish(ei_cnode *ec)</nametext></name> - <fsummary>Unpublish a node name</fsummary> + <fsummary>Forcefully unpublish a node name</fsummary> <desc> <p>This function can be called by a process to unregister a - specified node from epmd on the localhost. This may be - useful, for example, when epmd has not detected the failure of a - node, and will not allow the name to be reused. If you use this - function to unregister your own process, be sure to also close - the descriptor that was returned by <c><![CDATA[ei_publish()]]></c>.</p> - <note> - <p>Careless use of this function may have unpredictable - results, if the registered node is in fact still running.</p> - </note> + specified node from epmd on the localhost. This is however usually not + allowed, unless epmd was started with the -relaxed_command_check + flag, which it normally isn't.</p> + + <p>To unregister a node you have published, you should + close the descriptor that was returned by + <c><![CDATA[ei_publish()]]></c>.</p> + + <warning> + <p>This function is deprecated and will be removed in a future + release.</p> + </warning> <p><c><![CDATA[ec]]></c> is the node structure of the node to unregister.</p> <p>If the node was successfully unregistered from epmd, the function returns 0. Otherwise, it returns -1 and sets diff --git a/lib/erl_interface/doc/src/erl_connect.xml b/lib/erl_interface/doc/src/erl_connect.xml index b2235925b2..bd5e637244 100644 --- a/lib/erl_interface/doc/src/erl_connect.xml +++ b/lib/erl_interface/doc/src/erl_connect.xml @@ -4,7 +4,7 @@ <cref> <header> <copyright> - <year>1996</year><year>2009</year> + <year>1996</year><year>2010</year> <holder>Ericsson AB. All Rights Reserved.</holder> </copyright> <legalnotice> @@ -451,7 +451,7 @@ typedef struct { <p><c><![CDATA[port]]></c> is the local name to register, and should be the same as the port number that was previously bound to the socket.</p> <p>To unregister with epmd, simply close the returned - descriptor. See also <c><![CDATA[erl_unpublish()]]></c>. + descriptor. </p> <p>On success, the functions return a descriptor connecting the calling process to epmd. On failure, they return -1 and set @@ -507,21 +507,24 @@ typedef struct { </func> <func> <name><ret>int</ret><nametext>erl_unpublish(alive)</nametext></name> - <fsummary>Unpublish a node name</fsummary> + <fsummary>Forcefully unpublish a node name</fsummary> <type> <v>char *alive;</v> </type> <desc> - <p>This function can be called by a process to unregister a - specified node name from epmd on the localhost. This may be - useful, for example, when epmd has not detected the failure of a - node, and will not allow the name to be reused. If you use this - function to unregister your own process, be sure to also close - the descriptor that was returned by <c><![CDATA[erl_publish()]]></c>.</p> - <note> - <p>Careless use of this function may have unpredictable - results, if the registered node is in fact still running.</p> - </note> + <p>This function can be called by a process to unregister a + specified node from epmd on the localhost. This is however usually not + allowed, unless epmd was started with the -relaxed_command_check + flag, which it normally isn't.</p> + + <p>To unregister a node you have published, you should instead + close the descriptor that was returned by + <c><![CDATA[ei_publish()]]></c>.</p> + + <warning> + <p>This function is deprecated and will be removed in a future + release.</p> + </warning> <p><c><![CDATA[alive]]></c> is the name of the node to unregister, i.e., the first component of the nodename, without the <c><![CDATA[@hostname]]></c>.</p> <p>If the node was successfully unregistered from epmd, the diff --git a/lib/erl_interface/doc/src/notes.xml b/lib/erl_interface/doc/src/notes.xml index 848da9cb23..8e379463ad 100644 --- a/lib/erl_interface/doc/src/notes.xml +++ b/lib/erl_interface/doc/src/notes.xml @@ -30,6 +30,60 @@ </header> <p>This document describes the changes made to the Erl_interface application.</p> +<section><title>Erl_Interface 3.7.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Removed unused variable in <c>ei_decode_term.c</c>.</p> + <p> + Fixed faulty deallocation in <c>erl_call</c>.</p> + <p> + Own Id: OTP-8748</p> + </item> + <item> + <p>ei_connect: correct man page examples (Thanks to + Michael Santos)</p> + <p> + Own Id: OTP-8813</p> + </item> + <item> + <p>ei: prevent overflow in <c>ei_connect_init</c> and + <c>ei_xconnect</c></p> <p>Add length check of the buffer + before copying. (Thanks to Michael Santos)</p> + <p> + Own Id: OTP-8814</p> + </item> + <item> + <p>Remove DECLSPEC feature which fails on Windows Vista + and use the fallback implementation instead.</p> + <p> + Own Id: OTP-8826</p> + </item> + <item> + <p>erl_call: fix multiple buffer overflows (Thanks to + Michael Santos)</p> + <p> + Own Id: OTP-8827</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p>Fix incorrect writev iovec buffer handling in + <c>erl_interface</c> (Thanks to Steve Vinoski)</p> + <p> + Own Id: OTP-8837</p> + </item> + </list> + </section> + +</section> + <section><title>Erl_Interface 3.7</title> <section><title>Improvements and New Features</title> diff --git a/lib/erl_interface/src/connect/ei_connect.c b/lib/erl_interface/src/connect/ei_connect.c index e191f3fbf0..99ccba0686 100644 --- a/lib/erl_interface/src/connect/ei_connect.c +++ b/lib/erl_interface/src/connect/ei_connect.c @@ -366,16 +366,16 @@ static int initWinSock(void) WORD wVersionRequested; WSADATA wsaData; int i; - /* FIXME problem for threaded ? */ - static int initialized = 0; + + static LONG volatile initialized = 0; wVersionRequested = MAKEWORD(1, 1); - if (!initialized) { - initialized = 1; + if (InterlockedCompareExchange((LPLONG) &initialized,1L,0L) == 0L) { /* FIXME not terminate, just a message?! */ if ((i = WSAStartup(wVersionRequested, &wsaData))) { EI_TRACE_ERR1("ei_connect_init", "ERROR: can't initialize windows sockets: %d",i); + initialized = 2L; return 0; } @@ -383,10 +383,14 @@ static int initWinSock(void) EI_TRACE_ERR0("initWinSock","ERROR: this version of windows " "sockets not supported"); WSACleanup(); + initialized = 2L; return 0; } + initialized = 3L; + } else while (initialized < 2) { + SwitchToThread(); } - return 1; + return (int) (initialized - 2); } #endif diff --git a/lib/erl_interface/src/epmd/ei_epmd.h b/lib/erl_interface/src/epmd/ei_epmd.h index 40e5ece572..ccacfed244 100644 --- a/lib/erl_interface/src/epmd/ei_epmd.h +++ b/lib/erl_interface/src/epmd/ei_epmd.h @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 1998-2009. All Rights Reserved. + * Copyright Ericsson AB 1998-2010. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -40,20 +40,13 @@ #define EI_MYPROTO 0 /* tcp/ip */ #endif -/* epmd r3 protocol */ -#ifndef EI_EPMD_ALIVE_REQ -#define EI_EPMD_ALIVE_REQ 'a' -#define EI_EPMD_ALIVE_OK_RESP 'Y' -#define EI_EPMD_PORT_REQ 'p' -#define EI_EPMD_STOP_REQ 's' -#endif - /* epmd r4 */ #ifndef EI_EPMD_ALIVE2_REQ #define EI_EPMD_ALIVE2_REQ 120 #define EI_EPMD_ALIVE2_RESP 121 #define EI_EPMD_PORT2_REQ 122 #define EI_EPMD_PORT2_RESP 119 +#define EI_EPMD_STOP_REQ 's' #endif /* internal functions */ diff --git a/lib/erl_interface/src/epmd/epmd_port.c b/lib/erl_interface/src/epmd/epmd_port.c index cf6122fafa..698c75c217 100644 --- a/lib/erl_interface/src/epmd/epmd_port.c +++ b/lib/erl_interface/src/epmd/epmd_port.c @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 1998-2009. All Rights Reserved. + * Copyright Ericsson AB 1998-2010. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -92,70 +92,6 @@ int ei_epmd_connect_tmo(struct in_addr *inaddr, unsigned ms) return sd; } -/* get the given node's listen port using old epmd protocol */ -static int ei_epmd_r3_port (struct in_addr *addr, const char *alive, - unsigned ms) -{ - char buf[EPMDBUF]; - char *s = buf; - int len = strlen(alive) + 1; - int fd; - int port; - int res; -#if defined(VXWORKS) - char ntoabuf[32]; -#endif - - if (len > sizeof(buf) - 3) - { - erl_errno = ERANGE; - return -1; - } - - put16be(s,len); - put8(s,EI_EPMD_PORT_REQ); - strcpy(s,alive); - - /* connect to epmd */ - if ((fd = ei_epmd_connect_tmo(addr,ms)) < 0) - { - /* ei_epmd_connect_tmo() sets erl_errno */ - return -1; - } - - if ((res = ei_write_fill_t(fd, buf, len+2, ms)) != len+2) { - closesocket(fd); - erl_errno = (res == -2) ? ETIMEDOUT : EIO; - return -1; - } - -#ifdef VXWORKS - /* FIXME use union/macro for level. Correct level? */ - if (ei_tracelevel > 2) { - inet_ntoa_b(*addr,ntoabuf); - EI_TRACE_CONN2("ei_epmd_r3_port", - "-> PORT_REQ alive=%s ip=%s",alive,ntoabuf); - } -#else - EI_TRACE_CONN2("ei_epmd_r3_port", - "-> PORT_REQ alive=%s ip=%s",alive,inet_ntoa(*addr)); -#endif - - if ((res = ei_read_fill_t(fd, buf, 2, ms)) != 2) { - EI_TRACE_ERR0("ei_epmd_r3_port","<- CLOSE"); - closesocket(fd); - erl_errno = (res == -2) ? ETIMEDOUT : EIO; - return -1; - } - closesocket(fd); - s = buf; - port = get16be(s); - - EI_TRACE_CONN1("ei_epmd_r3_port","<- PORT_RESP port=%d",port); - - return port; -} - static int ei_epmd_r4_port (struct in_addr *addr, const char *alive, int *dist, unsigned ms) { @@ -297,15 +233,6 @@ int ei_epmd_port_tmo (struct in_addr *addr, const char *alive, int *dist, { int i; - /* try the new one first, then the old one */ - i = ei_epmd_r4_port(addr,alive,dist,ms); - - /* -2: new protocol not understood */ - if (i == -2) { - *dist = 0; - i = ei_epmd_r3_port(addr,alive,ms); - } - - return i; + return ei_epmd_r4_port(addr,alive,dist,ms); } diff --git a/lib/erl_interface/src/epmd/epmd_publish.c b/lib/erl_interface/src/epmd/epmd_publish.c index 09b3dce43b..a9b8727747 100644 --- a/lib/erl_interface/src/epmd/epmd_publish.c +++ b/lib/erl_interface/src/epmd/epmd_publish.c @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 1998-2009. All Rights Reserved. + * Copyright Ericsson AB 1998-2010. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -55,62 +55,6 @@ /* publish our listen port and alive name */ /* return the (useless) creation number */ -static int ei_epmd_r3_publish (int port, const char *alive, unsigned ms) -{ - char buf[EPMDBUF]; - char *s = buf; - int fd; - int len = strlen(alive) + 3; - int res,creation; - - s = buf; - put16be(s,len); - put8(s,EI_EPMD_ALIVE_REQ); - put16be(s,port); - strcpy(s, alive); - - if ((fd = ei_epmd_connect_tmo(NULL,ms)) < 0) return fd; - - if ((res = ei_write_fill_t(fd, buf, len+2, ms)) != len+2) { - closesocket(fd); - erl_errno = (res == -2) ? ETIMEDOUT : EIO; - return -1; - } - - EI_TRACE_CONN2("ei_epmd_r3_publish", - "-> ALIVE_REQ alive=%s port=%d",alive,port); - - if ((res = ei_read_fill_t(fd, buf, 3, ms)) != 3) { - closesocket(fd); - erl_errno = (res == -2) ? ETIMEDOUT : EIO; - return -1; - } - - s = buf; - if ((res=get8(s)) != EI_EPMD_ALIVE_OK_RESP) { - EI_TRACE_ERR1("ei_epmd_r3_publish", - "<- ALIVE_NOK result=%d (failure)",res); - closesocket(fd); - erl_errno = EIO; - return -1; - } - - creation = get16be(s); - - EI_TRACE_CONN1("ei_epmd_r3_publish","<- ALIVE_OK creation=%d",creation); - - /* Don't close fd here! It keeps us registered with epmd */ - - /* probably should save fd so we can close it later... */ - /* epmd_saveconn(OPEN,fd,alive); */ - - /* return the creation number, for no good reason */ - /* return creation; */ - - /* no! return the descriptor */ - return fd; -} - /* publish our listen port and alive name */ /* return the (useless) creation number */ /* this protocol is a lot more complex than the old one */ @@ -200,15 +144,7 @@ int ei_epmd_publish(int port, const char *alive) int ei_epmd_publish_tmo(int port, const char *alive, unsigned ms) { - int i; - - /* try the new one first, then the old one */ - i = ei_epmd_r4_publish(port,alive, ms); - - /* -2: new protocol not understood */ - if (i == -2) i = ei_epmd_r3_publish(port,alive, ms); - - return i; + return ei_epmd_r4_publish(port,alive, ms);; } diff --git a/lib/erl_interface/src/misc/ei_portio.c b/lib/erl_interface/src/misc/ei_portio.c index b73ebebbe1..c4e397f1e0 100644 --- a/lib/erl_interface/src/misc/ei_portio.c +++ b/lib/erl_interface/src/misc/ei_portio.c @@ -171,6 +171,8 @@ int ei_writev_fill_t(int fd, const struct iovec *iov, int iovcnt, unsigned } while (i > 0) { if (i < current_iov[0].iov_len) { + char *p = (char*)current_iov[0].iov_base; + current_iov[0].iov_base = p + i; current_iov[0].iov_len -= i; i = 0; } else { diff --git a/lib/erl_interface/test/ei_accept_SUITE.erl b/lib/erl_interface/test/ei_accept_SUITE.erl index bc83d6a62e..a97c874e5f 100644 --- a/lib/erl_interface/test/ei_accept_SUITE.erl +++ b/lib/erl_interface/test/ei_accept_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2001-2009. All Rights Reserved. +%% Copyright Ericsson AB 2001-2010. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -31,7 +31,7 @@ all(suite) -> [ei_accept, ei_threaded_accept]. init_per_testcase(_Case, Config) -> - Dog = ?t:timetrap(?t:minutes(0.25)), + Dog = ?t:timetrap(?t:seconds(30)), [{watchdog, Dog}|Config]. fin_per_testcase(_Case, Config) -> @@ -43,8 +43,6 @@ ei_accept(Config) when is_list(Config) -> ?line P = runner:start(?interpret), ?line 0 = ei_connect_init(P, 42, erlang:get_cookie(), 0), -% ?line AMsg={a,[message, with], " strings in it!", [-12, -23], 1.001}, - %% shouldn't this be a bif or function or something? ?line Myname= hd(tl(string:tokens(atom_to_list(node()), "@"))), ?line io:format("Myname ~p ~n", [Myname]), ?line EINode= list_to_atom("c42@"++Myname), @@ -52,9 +50,13 @@ ei_accept(Config) when is_list(Config) -> ?line Self= self(), ?line TermToSend= {call, Self, "Test"}, ?line F= fun() -> - timer:sleep(500), - {any, EINode} ! TermToSend, - Self ! sent_ok, + case waitfornode("c42",20) of + true -> + {any, EINode} ! TermToSend, + Self ! sent_ok; + false -> + Self ! never_published + end, ok end, @@ -72,7 +74,7 @@ ei_accept(Config) when is_list(Config) -> after 1000 -> io:format("timeout ~n") end, - ?line ok= ei_unpublish(P), + ?line runner:finish(P), ok. ei_threaded_accept(Config) when is_list(Config) -> @@ -90,12 +92,29 @@ ei_threaded_accept(Config) when is_list(Config) -> || I <- lists:seq(0, N-1) ], ok. +waitfornode(String,0) -> + io:format("~s never published itself.~n",[String]), + false; +waitfornode(String,N) -> + Registered = [X || {X,_} <- element(2,erl_epmd:names())], + case lists:member(String,Registered) of + true -> + true; + false -> + timer:sleep(1000), + waitfornode(String,N-1) + end. + send_rec_einode(N, TestServerPid) -> ?line Myname= hd(tl(string:tokens(atom_to_list(node()), "@"))), - ?line EINode= list_to_atom("eiacc" ++ integer_to_list(N) ++ "@" ++ Myname), + ?line FirstPart = "eiacc" ++ integer_to_list(N), + ?line EINode= list_to_atom(FirstPart ++ "@" ++ Myname), ?line io:format("EINode ~p ~n", [EINode]), ?line Self= self(), - ?line timer:sleep(10*1000), + ?line case waitfornode(FirstPart,20) of + true -> ok; + false -> test_server:fail({never_published,EINode}) + end, ?line {any, EINode} ! Self, ?line receive {N,_}=X -> @@ -136,13 +155,6 @@ ei_receive(P, Fd) -> {term, T}= get_term(P), T. -ei_unpublish(P) -> - send_command(P, ei_unpublish, []), - case get_term(P) of - {term,{0, _}} -> ok; - {term,{_X, Errno}} -> {error,Errno} - end. - send_command(P, Name, Args) -> runner:send_term(P, {Name,list_to_tuple(Args)}). diff --git a/lib/erl_interface/test/ei_connect_SUITE.erl b/lib/erl_interface/test/ei_connect_SUITE.erl index 56f478edad..fe82a73ef9 100644 --- a/lib/erl_interface/test/ei_connect_SUITE.erl +++ b/lib/erl_interface/test/ei_connect_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2001-2009. All Rights Reserved. +%% Copyright Ericsson AB 2001-2010. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -103,10 +103,12 @@ ei_threaded_send(Config) when is_list(Config) -> ?line Einode = filename:join(?config(data_dir, Config), "einode"), ?line N = 15, ?line Host = atom_to_list(node()), - ?line spawn_link(fun() -> start_einode(Einode, N, Host) end), ?line TestServerPid = self(), ?line [ spawn_link(fun() -> rec_einode(I, TestServerPid) end) || I <- lists:seq(0, N-1) ], + ?line [ receive {I,registered} -> ok end + || I <- lists:seq(0, N-1) ], + ?line spawn_link(fun() -> start_einode(Einode, N, Host) end), ?line [ receive I -> ok end || I <- lists:seq(0, N-1) ], ok. @@ -114,6 +116,7 @@ ei_threaded_send(Config) when is_list(Config) -> rec_einode(N, TestServerPid) -> ?line Regname = list_to_atom("mth"++integer_to_list(N)), ?line register(Regname, self()), + ?line TestServerPid ! {N, registered}, ?line io:format("~p waiting~n", [Regname]), ?line receive X -> diff --git a/lib/erl_interface/vsn.mk b/lib/erl_interface/vsn.mk index 672b1be55f..c642cc5002 100644 --- a/lib/erl_interface/vsn.mk +++ b/lib/erl_interface/vsn.mk @@ -1 +1 @@ -EI_VSN = 3.7 +EI_VSN = 3.7.1 diff --git a/lib/et/doc/src/notes.xml b/lib/et/doc/src/notes.xml index 8611955d3d..4ce7548414 100644 --- a/lib/et/doc/src/notes.xml +++ b/lib/et/doc/src/notes.xml @@ -36,6 +36,32 @@ one section in this document. The title of each section is the version number of <c>Event Tracer (ET)</c>.</p> +<section><title>ET 1.4.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> Fixed broken links in the documentation. </p> + <p> + Own Id: OTP-8796</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Fixed gui crash on windows.</p> + <p> + Own Id: OTP-8830</p> + </item> + </list> + </section> + +</section> + <section><title>ET 1.4</title> <section><title>Improvements and New Features</title> diff --git a/lib/et/vsn.mk b/lib/et/vsn.mk index 04ecb8c82e..b5b7fa52f4 100644 --- a/lib/et/vsn.mk +++ b/lib/et/vsn.mk @@ -1 +1 @@ -ET_VSN = 1.4 +ET_VSN = 1.4.1 diff --git a/lib/gs/doc/src/notes.xml b/lib/gs/doc/src/notes.xml index 352c335e23..744efbd4fc 100644 --- a/lib/gs/doc/src/notes.xml +++ b/lib/gs/doc/src/notes.xml @@ -30,7 +30,27 @@ </header> <p>This document describes the changes made to the GS application.</p> - <section> + <section><title>GS 1.5.13</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + The documentation for GS is updated with the warning that + it should not be used in new applications. GS is planned + to be deprecated soon and might be removed from the + distribution already in the next major release (R15). For + graphical applications we recommend the use of WX + instead.</p> + <p> + Own Id: OTP-8824</p> + </item> + </list> + </section> + +</section> + +<section> <title>GS 1.5.10</title> <section> diff --git a/lib/gs/vsn.mk b/lib/gs/vsn.mk index 35976d556a..4c91857572 100644 --- a/lib/gs/vsn.mk +++ b/lib/gs/vsn.mk @@ -1,2 +1,2 @@ -GS_VSN = 1.5.12 +GS_VSN = 1.5.13 diff --git a/lib/hipe/doc/src/notes.xml b/lib/hipe/doc/src/notes.xml index 7b34a4f427..cf30db0482 100644 --- a/lib/hipe/doc/src/notes.xml +++ b/lib/hipe/doc/src/notes.xml @@ -30,6 +30,29 @@ </header> <p>This document describes the changes made to HiPE.</p> +<section><title>Hipe 3.7.7</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p>The HiPE compiler could crash when compiling certain + modules (the bug has been latent, and been exposed by new + optimizations introduced in the BEAM compiler in R14A). + (Thanks to Mikael Pettersson.)</p> + <p> + Own Id: OTP-8800</p> + </item> + <item> + <p> + hipe:load/1 was broken. (Thanks to Paul Guyot.)</p> + <p> + Own Id: OTP-8802</p> + </item> + </list> + </section> + +</section> + <section><title>Hipe 3.7.6</title> <section><title>Improvements and New Features</title> diff --git a/lib/hipe/vsn.mk b/lib/hipe/vsn.mk index 31c860ddec..8e421ce9b2 100644 --- a/lib/hipe/vsn.mk +++ b/lib/hipe/vsn.mk @@ -1 +1 @@ -HIPE_VSN = 3.7.6 +HIPE_VSN = 3.7.7 diff --git a/lib/inets/doc/src/notes.xml b/lib/inets/doc/src/notes.xml index 23ad5c0df0..7b16189860 100644 --- a/lib/inets/doc/src/notes.xml +++ b/lib/inets/doc/src/notes.xml @@ -32,7 +32,54 @@ <file>notes.xml</file> </header> - <section><title>Inets 5.4</title> + <section><title>Inets 5.5</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + [httpc] If a request times out (not connect timeout), the + handler process exited (normal) but neglected to inform + the manager process. For this reason, the manager did not + clean up the request table., resulting in a memory leak. + Also the manager did not create a monitor for the + handler, so in an unforseen handler crash, this could + also create a memory leak.</p> + <p> + Own Id: OTP-8739</p> + </item> + <item> + <p> + The service tftp was spelled wrong in documentation and + in some parts of the code. It should be tftp.</p> + <p> + Own Id: OTP-8741 Aux Id: seq11635 </p> + </item> + <item> + <p> + [httpc] Replaced the old http client api module (http) + with the new, httpc in the users guide.</p> + <p> + Own Id: OTP-8742</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Eliminated warnings for auto-imported BIF clashes.</p> + <p> + Own Id: OTP-8840</p> + </item> + </list> + </section> + +</section> + +<section><title>Inets 5.4</title> <section><title>Improvements and New Features</title> <!-- diff --git a/lib/inets/src/inets_app/inets.appup.src b/lib/inets/src/inets_app/inets.appup.src index 64fe664006..84d8c9278d 100644 --- a/lib/inets/src/inets_app/inets.appup.src +++ b/lib/inets/src/inets_app/inets.appup.src @@ -18,74 +18,14 @@ {"%VSN%", [ - {"5.3.3", + {"5.4", [ {restart_application, inets} ] - }, - {"5.3.2", - [ - {restart_application, inets} - ] - }, - {"5.3.1", - [ - {restart_application, inets} - ] - }, - {"5.3", - [ - {restart_application, inets} - ] - }, - {"5.2", - [ - {restart_application, inets} - ] - }, - {"5.1.3", - [ - {restart_application, inets} - ] - }, - {"5.1.2", - [ - {restart_application, inets} - ] - } + } ], [ - {"5.3.3", - [ - {restart_application, inets} - ] - }, - {"5.3.2", - [ - {restart_application, inets} - ] - }, - {"5.3.1", - [ - {restart_application, inets} - ] - }, - {"5.3", - [ - {restart_application, inets} - ] - }, - {"5.2", - [ - {restart_application, inets} - ] - }, - {"5.1.3", - [ - {restart_application, inets} - ] - }, - {"5.1.2", + {"5.4", [ {restart_application, inets} ] diff --git a/lib/inets/vsn.mk b/lib/inets/vsn.mk index b53d47d99c..5eff9e4e3f 100644 --- a/lib/inets/vsn.mk +++ b/lib/inets/vsn.mk @@ -1,4 +1,5 @@ APPLICATION = inets -INETS_VSN = 5.4 +INETS_VSN = 5.5 PRE_VSN = APP_VSN = "$(APPLICATION)-$(INETS_VSN)$(PRE_VSN)" + diff --git a/lib/inviso/doc/src/notes.xml b/lib/inviso/doc/src/notes.xml index 443aaf523b..48a71e314c 100644 --- a/lib/inviso/doc/src/notes.xml +++ b/lib/inviso/doc/src/notes.xml @@ -31,7 +31,23 @@ <p>This document describes the changes made to the Inviso application.</p> - <section><title>Inviso 0.6.1</title> + <section><title>Inviso 0.6.2</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + The obsolete guards has now been changed to the new guard + interface.</p> + <p> + Own Id: OTP-8747</p> + </item> + </list> + </section> + +</section> + +<section><title>Inviso 0.6.1</title> <section><title>Improvements and New Features</title> <list> diff --git a/lib/inviso/vsn.mk b/lib/inviso/vsn.mk index cab3bc0ff3..79093597fe 100644 --- a/lib/inviso/vsn.mk +++ b/lib/inviso/vsn.mk @@ -1 +1 @@ -INVISO_VSN = 0.6.1 +INVISO_VSN = 0.6.2 diff --git a/lib/jinterface/doc/src/notes.xml b/lib/jinterface/doc/src/notes.xml index 977a7a7f98..a571de6916 100644 --- a/lib/jinterface/doc/src/notes.xml +++ b/lib/jinterface/doc/src/notes.xml @@ -30,6 +30,22 @@ </header> <p>This document describes the changes made to the Jinterface application.</p> +<section><title>Jinterface 1.5.3.1</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + An pom.xml file is now generated. (Thanks to Gabor + Liptak.)</p> + <p> + Own Id: OTP-8841</p> + </item> + </list> + </section> + +</section> + <section><title>Jinterface 1.5.3</title> <section><title>Improvements and New Features</title> diff --git a/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpEpmd.java b/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpEpmd.java index 3bb678c2cc..deac528133 100644 --- a/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpEpmd.java +++ b/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpEpmd.java @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2000-2009. All Rights Reserved. + * Copyright Ericsson AB 2000-2010. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -71,11 +71,6 @@ public class OtpEpmd { // common values private static final byte stopReq = (byte) 115; - // version specific value - private static final byte port3req = (byte) 112; - private static final byte publish3req = (byte) 97; - private static final byte publish3ok = (byte) 89; - private static final byte port4req = (byte) 122; private static final byte port4resp = (byte) 119; private static final byte publish4req = (byte) 120; @@ -123,11 +118,7 @@ public class OtpEpmd { * if there was no response from the name server. */ public static int lookupPort(final AbstractNode node) throws IOException { - try { return r4_lookupPort(node); - } catch (final IOException e) { - return r3_lookupPort(node); - } } /** @@ -147,11 +138,7 @@ public class OtpEpmd { throws IOException { Socket s = null; - try { - s = r4_publish(node); - } catch (final IOException e) { - s = r3_publish(node); - } + s = r4_publish(node); node.setEpmd(s); @@ -196,67 +183,6 @@ public class OtpEpmd { } } - private static int r3_lookupPort(final AbstractNode node) - throws IOException { - int port = 0; - Socket s = null; - - try { - final OtpOutputStream obuf = new OtpOutputStream(); - s = new Socket(node.host(), EpmdPort.get()); - - // build and send epmd request - // length[2], tag[1], alivename[n] (length = n+1) - obuf.write2BE(node.alive().length() + 1); - obuf.write1(port3req); - obuf.writeN(node.alive().getBytes()); - - // send request - obuf.writeTo(s.getOutputStream()); - - if (traceLevel >= traceThreshold) { - System.out.println("-> LOOKUP (r3) " + node); - } - - // receive and decode reply - final byte[] tmpbuf = new byte[100]; - - s.getInputStream().read(tmpbuf); - final OtpInputStream ibuf = new OtpInputStream(tmpbuf, 0); - - port = ibuf.read2BE(); - } catch (final IOException e) { - if (traceLevel >= traceThreshold) { - System.out.println("<- (no response)"); - } - throw new IOException("Nameserver not responding on " + node.host() - + " when looking up " + node.alive()); - } catch (final OtpErlangDecodeException e) { - if (traceLevel >= traceThreshold) { - System.out.println("<- (invalid response)"); - } - throw new IOException("Nameserver not responding on " + node.host() - + " when looking up " + node.alive()); - } finally { - try { - if (s != null) { - s.close(); - } - } catch (final IOException e) { /* ignore close errors */ - } - s = null; - } - - if (traceLevel >= traceThreshold) { - if (port == 0) { - System.out.println("<- NOT FOUND"); - } else { - System.out.println("<- PORT " + port); - } - } - return port; - } - private static int r4_lookupPort(final AbstractNode node) throws IOException { int port = 0; @@ -288,8 +214,6 @@ public class OtpEpmd { final int n = s.getInputStream().read(tmpbuf); if (n < 0) { - // this was an r3 node => not a failure (yet) - s.close(); throw new IOException("Nameserver not responding on " + node.host() + " when looking up " + node.alive()); @@ -342,81 +266,13 @@ public class OtpEpmd { return port; } - private static Socket r3_publish(final OtpLocalNode node) - throws IOException { - Socket s = null; - - try { - final OtpOutputStream obuf = new OtpOutputStream(); - s = new Socket((String) null, EpmdPort.get()); - - obuf.write2BE(node.alive().length() + 3); - - obuf.write1(publish3req); - obuf.write2BE(node.port()); - obuf.writeN(node.alive().getBytes()); - - // send request - obuf.writeTo(s.getOutputStream()); - if (traceLevel >= traceThreshold) { - System.out.println("-> PUBLISH (r3) " + node + " port=" - + node.port()); - } - - final byte[] tmpbuf = new byte[100]; - - final int n = s.getInputStream().read(tmpbuf); - - if (n < 0) { - s.close(); - if (traceLevel >= traceThreshold) { - System.out.println("<- (no response)"); - } - return null; - } - - final OtpInputStream ibuf = new OtpInputStream(tmpbuf, 0); - - if (ibuf.read1() == publish3ok) { - node.creation = ibuf.read2BE(); - if (traceLevel >= traceThreshold) { - System.out.println("<- OK"); - } - return s; // success - don't close socket - } - } catch (final IOException e) { - // epmd closed the connection = fail - if (s != null) { - s.close(); - } - if (traceLevel >= traceThreshold) { - System.out.println("<- (no response)"); - } - throw new IOException("Nameserver not responding on " + node.host() - + " when publishing " + node.alive()); - } catch (final OtpErlangDecodeException e) { - if (s != null) { - s.close(); - } - if (traceLevel >= traceThreshold) { - System.out.println("<- (invalid response)"); - } - throw new IOException("Nameserver not responding on " + node.host() - + " when publishing " + node.alive()); - } - - if (s != null) { - s.close(); - } - return null; // failure - } - /* - * this function will get an exception if it tries to talk to an r3 epmd, or - * if something else happens that it cannot forsee. In both cases we return - * an exception (and the caller should try again, using the r3 protocol). If - * we manage to successfully communicate with an r4 epmd, we return either - * the socket, or null, depending on the result. + * this function will get an exception if it tries to talk to a + * very old epmd, or if something else happens that it cannot + * forsee. In both cases we return an exception. We no longer + * support r3, so the exception is fatal. If we manage to + * successfully communicate with an r4 epmd, we return either the + * socket, or null, depending on the result. */ private static Socket r4_publish(final OtpLocalNode node) throws IOException { @@ -454,7 +310,6 @@ public class OtpEpmd { final int n = s.getInputStream().read(tmpbuf); if (n < 0) { - // this was an r3 node => not a failure (yet) if (s != null) { s.close(); } diff --git a/lib/jinterface/vsn.mk b/lib/jinterface/vsn.mk index 26613febbf..ed085b5d4d 100644 --- a/lib/jinterface/vsn.mk +++ b/lib/jinterface/vsn.mk @@ -1 +1 @@ -JINTERFACE_VSN = 1.5.3 +JINTERFACE_VSN = 1.5.3.1 diff --git a/lib/kernel/doc/src/notes.xml b/lib/kernel/doc/src/notes.xml index b503716037..9859183390 100644 --- a/lib/kernel/doc/src/notes.xml +++ b/lib/kernel/doc/src/notes.xml @@ -30,6 +30,104 @@ </header> <p>This document describes the changes made to the Kernel application.</p> +<section><title>Kernel 2.14.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Fixed: inet:setopts(S, [{linger,{true,2}}]) returned + {error,einval} for SCTP sockets. The inet_drv had a bug + when checking the option size.</p> + <p> + Own Id: OTP-8726 Aux Id: seq11617 </p> + </item> + <item> + <p> + gen_udp:connect/3 was broken for SCTP enabled builds. It + did not detect remote end errors as it should.</p> + <p> + Own Id: OTP-8729</p> + </item> + <item> + <p>reference() has been substituted for ref() in the + documentation.</p> + <p> + Own Id: OTP-8733</p> + </item> + <item> + <p>A bug introduced in kernel-2.13.5.3 has been fixed. If + running <c>net_kernel:set_net_ticktime/1</c> twice within + the <c>TransitionPerod</c> the second call caused the + net_kernel process to crash with a <c>badmatch</c>.</p> + <p> + Own Id: OTP-8787 Aux Id: seq11657, OTP-8643 </p> + </item> + <item> + <p> + inet:getsockopt for SCTP sctp_default_send_param had a + bug to not initialize required feilds causing random + answers. It is now corrected.</p> + <p> + Own Id: OTP-8795 Aux Id: seq11655 </p> + </item> + <item> + <p>For a socket in the HTTP packet mode, the return value + from <c>gen_tcp:recv/2,3</c> if there is an error in the + header will be <c>{ok,{http_error,String}}</c> instead of + <c>{error,{http_error,String}}</c> to be consistent with + <c>ssl:recv/2,3</c>.</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-8831</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Even when configuring erlang with --enable-native-libs, + the native code for modules loaded very early (such as + lists) would not get loaded. This has been corrected. + (Thanks to Paul Guyot.)</p> + <p> + Own Id: OTP-8750</p> + </item> + <item> + <p> + The undocumented function inet:ifget/2 has been improved + to return interface hardware address (MAC) on platforms + supporting getaddrinfo() (such as BSD unixes). Note it + still does not work on all platforms for example not + Windows nor Solaris, so the function is still + undocumented.</p> + <p> + Buffer overflow and field init bugs for inet:ifget/2 and + inet:getservbyname/2 has also been fixed.</p> + <p> + Thanks to Michael Santos.</p> + <p> + Own Id: OTP-8816</p> + </item> + <item> + <p> + As a usability improvement the 'inet6' option to + functions gen_tcp:listen/2, gen_tcp:connect/3-4, + gen_udp:open/2 and gen_sctp:open/1-2 is now implicit if + the address argument or the 'ip' option contain an IPv6 + address (8-tuple).</p> + <p> + Own Id: OTP-8822</p> + </item> + </list> + </section> + +</section> + <section><title>Kernel 2.14</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/kernel/src/erl_epmd.erl b/lib/kernel/src/erl_epmd.erl index 4a22637304..91af49f303 100644 --- a/lib/kernel/src/erl_epmd.erl +++ b/lib/kernel/src/erl_epmd.erl @@ -210,19 +210,6 @@ open({A,B,C,D,E,F,G,H}=EpmdAddr, Timeout) when ?ip6(A,B,C,D,E,F,G,H) -> close(Socket) -> gen_tcp:close(Socket). - -do_register_node_v0(NodeName, TcpPort) -> - case open() of - {ok, Socket} -> - Name = cstring(NodeName), - Len = 1+2+length(Name), - gen_tcp:send(Socket, [?int16(Len), ?EPMD_ALIVE, - ?int16(TcpPort), Name]), - wait_for_reg_reply_v0(Socket, []); - Error -> - Error - end. - do_register_node(NodeName, TcpPort) -> case open() of {ok, Socket} -> @@ -240,14 +227,7 @@ do_register_node(NodeName, TcpPort) -> Name, ?int16(Elen), Extra]), - case wait_for_reg_reply(Socket, []) of - {error, epmd_close} -> - %% could be old epmd; try old protocol -% erlang:display('trying old'), - do_register_node_v0(NodeName, TcpPort); - Other -> - Other - end; + wait_for_reg_reply(Socket, []); Error -> Error end. @@ -305,41 +285,9 @@ wait_for_reg_reply(Socket, SoFar) -> {error, no_reg_reply_from_epmd} end. -wait_for_reg_reply_v0(Socket, SoFar) -> - receive - {tcp, Socket, Data0} -> - case SoFar ++ Data0 of - [$Y, A, B] -> - {alive, Socket, ?u16(A, B)}; - Data when length(Data) < 3 -> - wait_for_reg_reply(Socket, Data); - Garbage -> - {error, {garbage_from_epmd, Garbage}} - end; - {tcp_closed, Socket} -> - {error, duplicate_name} % A guess -- the most likely reason. - after 10000 -> - gen_tcp:close(Socket), - {error, no_reg_reply_from_epmd} - end. %% %% Lookup a node "Name" at Host %% -get_port_v0(Node, EpmdAddress) -> - case open(EpmdAddress) of - {ok, Socket} -> - Name = cstring(Node), - Len = 1+length(Name), - gen_tcp:send(Socket, [?int16(Len),?EPMD_PORT_PLEASE, Name]), - wait_for_port_reply_v0(Socket, []); - _Error -> - ?port_please_failure(), - noport - end. - -%%% Not used anymore -%%% get_port(Node, EpmdAddress) -> -%%% get_port(Node, EpmdAddress, infinity). get_port(Node, EpmdAddress, Timeout) -> case open(EpmdAddress, Timeout) of @@ -347,40 +295,12 @@ get_port(Node, EpmdAddress, Timeout) -> Name = to_string(Node), Len = 1+length(Name), gen_tcp:send(Socket, [?int16(Len),?EPMD_PORT_PLEASE2_REQ, Name]), - Reply = wait_for_port_reply(Socket, []), - case Reply of - closed -> - get_port_v0(Node, EpmdAddress); - Other -> - Other - end; + wait_for_port_reply(Socket, []); _Error -> ?port_please_failure2(_Error), noport end. -wait_for_port_reply_v0(Socket, SoFar) -> - receive - {tcp, Socket, Data0} -> -% io:format("got ~p~n", [Data0]), - case SoFar ++ Data0 of - [A, B] -> - wait_for_close(Socket, {port, ?u16(A, B), 0}); -% wait_for_close(Socket, {port, ?u16(A, B)}); - Data when length(Data) < 2 -> - wait_for_port_reply_v0(Socket, Data); - Garbage -> - ?port_please_failure(), - {error, {garbage_from_epmd, Garbage}} - end; - {tcp_closed, Socket} -> - ?port_please_failure(), - noport - after 10000 -> - ?port_please_failure(), - gen_tcp:close(Socket), - noport - end. wait_for_port_reply(Socket, SoFar) -> receive @@ -487,8 +407,6 @@ wait_for_close(Socket, Reply) -> %% %% Creates a (flat) null terminated string from atom or list. %% -cstring(S) when is_atom(S) -> cstring(atom_to_list(S)); -cstring(S) when is_list(S) -> S ++ [0]. to_string(S) when is_atom(S) -> atom_to_list(S); to_string(S) when is_list(S) -> S. diff --git a/lib/kernel/src/erl_epmd.hrl b/lib/kernel/src/erl_epmd.hrl index 47ab6195d8..5a50fda508 100644 --- a/lib/kernel/src/erl_epmd.hrl +++ b/lib/kernel/src/erl_epmd.hrl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1998-2009. All Rights Reserved. +%% Copyright Ericsson AB 1998-2010. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -17,16 +17,13 @@ %% %CopyrightEnd% %% --define(EPMD_ALIVE, $a). --define(EPMD_PORT_PLEASE, $p). --define(EPMD_NAMES, $n). --define(EPMD_DUMP, $d). --define(EPMD_KILL, $k). --define(EPMD_STOP, $s). - --define(EPMD_ALIVE_OK, $Y). - -define(EPMD_ALIVE2_REQ, $x). -define(EPMD_PORT_PLEASE2_REQ, $z). -define(EPMD_ALIVE2_RESP, $y). -define(EPMD_PORT2_RESP, $w). +-define(EPMD_NAMES, $n). + +%% Commands used only by interactive client +-define(EPMD_DUMP, $d). +-define(EPMD_KILL, $k). +-define(EPMD_STOP, $s). diff --git a/lib/kernel/test/gen_udp_SUITE.erl b/lib/kernel/test/gen_udp_SUITE.erl index 44dd8607b9..bbdfbd3cb0 100644 --- a/lib/kernel/test/gen_udp_SUITE.erl +++ b/lib/kernel/test/gen_udp_SUITE.erl @@ -415,15 +415,15 @@ connect(suite) -> connect(doc) -> ["Test that connect/3 has effect"]; connect(Config) when is_list(Config) -> - Addr = {127,0,0,1}, - {ok,S1} = gen_udp:open(0), - {ok,P1} = inet:port(S1), - {ok,S2} = gen_udp:open(0), - ok = inet:setopts(S2, [{active,false}]), - ok = gen_udp:close(S1), - ok = gen_udp:connect(S2, Addr, P1), - ok = gen_udp:send(S2, <<16#deadbeef:32>>), - {error,econnrefused} = gen_udp:recv(S2, 0, 5), + ?line Addr = {127,0,0,1}, + ?line {ok,S1} = gen_udp:open(0), + ?line {ok,P1} = inet:port(S1), + ?line {ok,S2} = gen_udp:open(0), + ?line ok = inet:setopts(S2, [{active,false}]), + ?line ok = gen_udp:close(S1), + ?line ok = gen_udp:connect(S2, Addr, P1), + ?line ok = gen_udp:send(S2, <<16#deadbeef:32>>), + ?line {error,econnrefused} = gen_udp:recv(S2, 0, 5), ok. implicit_inet6(Config) when is_list(Config) -> diff --git a/lib/kernel/vsn.mk b/lib/kernel/vsn.mk index 651d082379..03fe63e385 100644 --- a/lib/kernel/vsn.mk +++ b/lib/kernel/vsn.mk @@ -1 +1 @@ -KERNEL_VSN = 2.14.1 +KERNEL_VSN = 2.14.2 diff --git a/lib/megaco/doc/src/notes.xml b/lib/megaco/doc/src/notes.xml index af6e87b56b..81c9305542 100644 --- a/lib/megaco/doc/src/notes.xml +++ b/lib/megaco/doc/src/notes.xml @@ -35,7 +35,22 @@ thus constitutes one section in this document. The title of each section is the version number of Megaco.</p> - <section> + <section><title>Megaco 3.15</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Fixing auto-import issues.</p> + <p> + Own Id: OTP-8842</p> + </item> + </list> + </section> + +</section> + +<section> <title>Megaco 3.14.1.1</title> <p>Version 3.14.1.1 supports code replacement in runtime from/to diff --git a/lib/megaco/src/app/megaco.appup.src b/lib/megaco/src/app/megaco.appup.src index d904e8ab33..66068f650f 100644 --- a/lib/megaco/src/app/megaco.appup.src +++ b/lib/megaco/src/app/megaco.appup.src @@ -130,100 +130,53 @@ %% | %% v %% 3.14.1.1 +%% | +%% v +%% 3.15 %% %% {"%VSN%", [ - {"3.14.1", - [ - ] - }, - {"3.14", - [ - {load_module, megaco_messenger, soft_purge, soft_purge, [megaco_monitor]}, - {update, megaco_monitor, soft, soft_purge, soft_purge, []}, - {update, megaco_config, soft, soft_purge, soft_purge, []} - ] - }, - {"3.13", - [ - {load_module, megaco_messenger, soft_purge, soft_purge, [megaco_monitor]}, - {load_module, megaco_filter, soft_purge, soft_purge, []}, - {update, megaco_monitor, soft, soft_purge, soft_purge, []}, - {update, megaco_config, soft, soft_purge, soft_purge, []}, - {update, megaco_flex_scanner_handler, {advanced, downgrade_to_pre_3_13_1}, - soft_purge, soft_purge, []} - ] - }, - {"3.12", - [ - {load_module, megaco_filter, soft_purge, soft_purge, []}, - {load_module, megaco_udp, soft_purge, soft_purge, []}, - {load_module, megaco_messenger, soft_purge, soft_purge, [megaco_monitor]}, - {update, megaco_config, soft, soft_purge, soft_purge, []}, - {update, megaco_monitor, soft, soft_purge, soft_purge, []}, - {update, megaco_flex_scanner_handler, {advanced, downgrade_to_pre_3_13_1}, - soft_purge, soft_purge, []} - ] - }, - {"3.11.3", + {"3.14.1.1", [ - {load_module, megaco_filter, soft_purge, soft_purge, []}, - {load_module, megaco_udp, soft_purge, soft_purge, []}, - {load_module, megaco_messenger, soft_purge, soft_purge, - [megaco_config, megaco_monitor]}, - {update, megaco_monitor, soft, soft_purge, soft_purge, []}, - {update, megaco_config, {advanced, upgrade_from_pre_3_12}, - soft_purge, soft_purge, []}, - {update, megaco_flex_scanner_handler, {advanced, downgrade_to_pre_3_13_1}, - soft_purge, soft_purge, []} + {load_module, megaco_binary_transformer_prev3a, soft_purge, soft_purge, []}, + {load_module, megaco_binary_transformer_prev3b, soft_purge, soft_purge, []}, + {load_module, megaco_binary_transformer_prev3c, soft_purge, soft_purge, []}, + {load_module, megaco_sdp, soft_purge, soft_purge, []}, + {load_module, megaco_compact_text_encoder_v1, soft_purge, soft_purge, []}, + {load_module, megaco_pretty_text_encoder_v1, soft_purge, soft_purge, []}, + {load_module, megaco_compact_text_encoder_v2, soft_purge, soft_purge, []}, + {load_module, megaco_pretty_text_encoder_v2, soft_purge, soft_purge, []}, + {load_module, megaco_compact_text_encoder_prev3a, soft_purge, soft_purge, []}, + {load_module, megaco_pretty_text_encoder_prev3a, soft_purge, soft_purge, []}, + {load_module, megaco_compact_text_encoder_prev3b, soft_purge, soft_purge, []}, + {load_module, megaco_pretty_text_encoder_prev3b, soft_purge, soft_purge, []}, + {load_module, megaco_compact_text_encoder_prev3c, soft_purge, soft_purge, []}, + {load_module, megaco_pretty_text_encoder_prev3c, soft_purge, soft_purge, []}, + {load_module, megaco_compact_text_encoder_v3, soft_purge, soft_purge, []}, + {load_module, megaco_pretty_text_encoder_v3, soft_purge, soft_purge, []} ] } ], [ - {"3.14.1", - [ - ] - }, - {"3.14", - [ - {load_module, megaco_messenger, soft_purge, soft_purge, [megaco_monitor]}, - {update, megaco_monitor, soft, soft_purge, soft_purge, []}, - {update, megaco_config, soft, soft_purge, soft_purge, []} - ] - }, - {"3.13", - [ - {load_module, megaco_messenger, soft_purge, soft_purge, [megaco_monitor]}, - {load_module, megaco_filter, soft_purge, soft_purge, []}, - {update, megaco_monitor, soft, soft_purge, soft_purge, []}, - {update, megaco_config, soft, soft_purge, soft_purge, []}, - {update, megaco_flex_scanner_handler, {advanced, upgrade_from_pre_3_13_1}, - soft_purge, soft_purge, []} - ] - }, - {"3.12", - [ - {load_module, megaco_filter, soft_purge, soft_purge, []}, - {load_module, megaco_udp, soft_purge, soft_purge, []}, - {load_module, megaco_messenger, soft_purge, soft_purge, [megaco_monitor]}, - {update, megaco_config, soft, soft_purge, soft_purge, []}, - {update, megaco_monitor, soft, soft_purge, soft_purge, []}, - {update, megaco_flex_scanner_handler, {advanced, upgrade_from_pre_3_13_1}, - soft_purge, soft_purge, []} - ] - }, - {"3.11.3", + {"3.14.1.1", [ - {load_module, megaco_filter, soft_purge, soft_purge, []}, - {load_module, megaco_udp, soft_purge, soft_purge, []}, - {load_module, megaco_messenger, soft_purge, soft_purge, - [megaco_config, megaco_monitor]}, - {update, megaco_monitor, soft, soft_purge, soft_purge, []}, - {update, megaco_config, {advanced, downgrade_to_pre_3_12}, - soft_purge, soft_purge, []}, - {update, megaco_flex_scanner_handler, {advanced, upgrade_from_pre_3_13_1}, - soft_purge, soft_purge, []} + {load_module, megaco_binary_transformer_prev3a, soft_purge, soft_purge, []}, + {load_module, megaco_binary_transformer_prev3b, soft_purge, soft_purge, []}, + {load_module, megaco_binary_transformer_prev3c, soft_purge, soft_purge, []}, + {load_module, megaco_sdp, soft_purge, soft_purge, []}, + {load_module, megaco_compact_text_encoder_v1, soft_purge, soft_purge, []}, + {load_module, megaco_pretty_text_encoder_v1, soft_purge, soft_purge, []}, + {load_module, megaco_compact_text_encoder_v2, soft_purge, soft_purge, []}, + {load_module, megaco_pretty_text_encoder_v2, soft_purge, soft_purge, []}, + {load_module, megaco_compact_text_encoder_prev3a, soft_purge, soft_purge, []}, + {load_module, megaco_pretty_text_encoder_prev3a, soft_purge, soft_purge, []}, + {load_module, megaco_compact_text_encoder_prev3b, soft_purge, soft_purge, []}, + {load_module, megaco_pretty_text_encoder_prev3b, soft_purge, soft_purge, []}, + {load_module, megaco_compact_text_encoder_prev3c, soft_purge, soft_purge, []}, + {load_module, megaco_pretty_text_encoder_prev3c, soft_purge, soft_purge, []}, + {load_module, megaco_compact_text_encoder_v3, soft_purge, soft_purge, []}, + {load_module, megaco_pretty_text_encoder_v3, soft_purge, soft_purge, []} ] } ] diff --git a/lib/megaco/vsn.mk b/lib/megaco/vsn.mk index 73ac5bbc63..9fc0e0f2fa 100644 --- a/lib/megaco/vsn.mk +++ b/lib/megaco/vsn.mk @@ -1,4 +1,4 @@ APPLICATION = megaco -MEGACO_VSN = 3.14.1.1 +MEGACO_VSN = 3.15 PRE_VSN = APP_VSN = "$(APPLICATION)-$(MEGACO_VSN)$(PRE_VSN)" diff --git a/lib/mnesia/doc/src/notes.xml b/lib/mnesia/doc/src/notes.xml index b0bead0ba0..2352f11b93 100644 --- a/lib/mnesia/doc/src/notes.xml +++ b/lib/mnesia/doc/src/notes.xml @@ -38,7 +38,22 @@ thus constitutes one section in this document. The title of each section is the version number of Mnesia.</p> - <section><title>Mnesia 4.4.14</title> + <section><title>Mnesia 4.4.15</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Eliminated warnings for auto-imported BIF clashes.</p> + <p> + Own Id: OTP-8840</p> + </item> + </list> + </section> + +</section> + +<section><title>Mnesia 4.4.14</title> <section><title>Improvements and New Features</title> <list> diff --git a/lib/mnesia/vsn.mk b/lib/mnesia/vsn.mk index ab2bb73c33..bce0f7b739 100644 --- a/lib/mnesia/vsn.mk +++ b/lib/mnesia/vsn.mk @@ -1 +1 @@ -MNESIA_VSN = 4.4.14 +MNESIA_VSN = 4.4.15 diff --git a/lib/orber/doc/src/notes.xml b/lib/orber/doc/src/notes.xml index 1013d370e4..17f7ac8270 100644 --- a/lib/orber/doc/src/notes.xml +++ b/lib/orber/doc/src/notes.xml @@ -32,7 +32,22 @@ <file>notes.xml</file> </header> - <section> + <section><title>Orber 3.6.17</title> + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Eliminated warnings for auto-imported BIF clashes.</p> + <p> + Own Id: OTP-8840</p> + </item> + </list> + </section> + +</section> + +<section> <title>Orber 3.6.16</title> <section> <title>Improvements and New Features</title> diff --git a/lib/orber/vsn.mk b/lib/orber/vsn.mk index cf80e27a61..681b82b51b 100644 --- a/lib/orber/vsn.mk +++ b/lib/orber/vsn.mk @@ -1 +1 @@ -ORBER_VSN = 3.6.16 +ORBER_VSN = 3.6.17 diff --git a/lib/parsetools/doc/src/notes.xml b/lib/parsetools/doc/src/notes.xml index 63c37bc27d..544850308e 100644 --- a/lib/parsetools/doc/src/notes.xml +++ b/lib/parsetools/doc/src/notes.xml @@ -30,6 +30,21 @@ </header> <p>This document describes the changes made to the Parsetools application.</p> +<section><title>Parsetools 2.0.4</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p>Running HiPE-compiled Yecc parsers no longer results + in a <c>function_clause</c> error.</p> + <p> + Own Id: OTP-8771</p> + </item> + </list> + </section> + +</section> + <section><title>Parsetools 2.0.3</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/public_key/doc/src/notes.xml b/lib/public_key/doc/src/notes.xml index 13a9151869..baa0e6c464 100644 --- a/lib/public_key/doc/src/notes.xml +++ b/lib/public_key/doc/src/notes.xml @@ -34,6 +34,47 @@ <file>notes.xml</file> </header> +<section><title>Public_Key 0.8</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Handling of unknown CA certificates was changed in ssl + and public_key to work as intended.</p> + <p> + Own Id: OTP-8788</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Revise the public_key API - Cleaned up and documented the + public_key API to make it useful for general use, also + changed ssl to use the new API.</p> + <p> + Own Id: OTP-8722</p> + </item> + <item> + <p> + Added the functionality so that the verification fun will + be called when a certificate is considered valid by the + path validation to allow access to each certificate in + the path to the user application. Also try to verify + subject-AltName, if unable to verify it let the + application verify it.</p> + <p> + Own Id: OTP-8825</p> + </item> + </list> + </section> + +</section> + <section><title>Public_Key 0.7</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/runtime_tools/doc/src/notes.xml b/lib/runtime_tools/doc/src/notes.xml index e1f954dda7..92629c18e5 100644 --- a/lib/runtime_tools/doc/src/notes.xml +++ b/lib/runtime_tools/doc/src/notes.xml @@ -31,6 +31,27 @@ <p>This document describes the changes made to the Runtime_Tools application.</p> +<section><title>Runtime_Tools 1.8.4.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Minor corrections and removal of a temporary workaround.</p> + <p> + Own Id: OTP-8755 Aux Id: seq-11628, seq-11639 </p> + </item> + <item> + <p> + Small fix in inviso_autostart_server.</p> + <p> + Own Id: OTP-8783 Aux Id: seq11628 </p> + </item> + </list> + </section> + +</section> + <section><title>Runtime_Tools 1.8.4</title> <section><title>Improvements and New Features</title> diff --git a/lib/runtime_tools/vsn.mk b/lib/runtime_tools/vsn.mk index 9e87d5b144..8be4ae613b 100644 --- a/lib/runtime_tools/vsn.mk +++ b/lib/runtime_tools/vsn.mk @@ -1 +1 @@ -RUNTIME_TOOLS_VSN = 1.8.4 +RUNTIME_TOOLS_VSN = 1.8.4.1 diff --git a/lib/snmp/doc/src/notes.xml b/lib/snmp/doc/src/notes.xml index d5d6605b64..493e7aa092 100644 --- a/lib/snmp/doc/src/notes.xml +++ b/lib/snmp/doc/src/notes.xml @@ -32,7 +32,23 @@ <file>notes.xml</file> </header> - <section> + <section><title>SNMP 4.18</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + When the function FilterMod:accept_recv/2 returned false + the SNMP agent stopped collecting messages from UDP.</p> + <p> + Own Id: OTP-8761</p> + </item> + </list> + </section> + +</section> + +<section> <title>SNMP Development Toolkit 4.17.1</title> <p>Version 4.17.1 supports code replacement in runtime from/to version 4.17, 4.16.2, 4.16.1, 4.16, 4.15, 4.14 and 4.13.5.</p> diff --git a/lib/snmp/src/app/snmp.appup.src b/lib/snmp/src/app/snmp.appup.src index 2bd26e11db..2375e3df70 100644 --- a/lib/snmp/src/app/snmp.appup.src +++ b/lib/snmp/src/app/snmp.appup.src @@ -22,134 +22,43 @@ %% ----- U p g r a d e ------------------------------------------------------- [ - {"4.17", - [ - {load_module, snmpa_net_if, soft_purge, soft_purge, []} - ] - }, - {"4.16.2", + {"4.17.1", [ - {load_module, snmp_log, soft_purge, soft_purge, []}, - {load_module, snmpa, soft_purge, soft_purge, [snmpa_agent]}, - {load_module, snmpa_mpd, soft_purge, soft_purge, [snmpa_usm]}, + {load_module, snmp_community_mib, soft_purge, soft_purge, []}, + {load_module, snmp_framework_mib, soft_purge, soft_purge, []}, + {load_module, snmp_generic, soft_purge, soft_purge, []}, + {load_module, snmp_notification_mib, soft_purge, soft_purge, []}, + {load_module, snmp_standard_mib, soft_purge, soft_purge, []}, + {load_module, snmp_target_mib, soft_purge, soft_purge, []}, + {load_module, snmp_user_based_sm_mib, soft_purge, soft_purge, []}, + {load_module, snmp_view_based_acm_mib, soft_purge, soft_purge, []}, + {load_module, snmpa_conf, soft_purge, soft_purge, []}, + {update, snmpa_target_cache, soft, soft_purge, soft_purge, []}, {load_module, snmpa_usm, soft_purge, soft_purge, []}, - {update, snmpa_agent, soft, soft_purge, soft_purge, []}, - {load_module, snmpa_net_if, soft_purge, soft_purge, []}, - - {load_module, snmpm_mpd, soft_purge, soft_purge, []} - ] - }, - {"4.16.1", - [ - {load_module, snmp_log, soft_purge, soft_purge, []}, - {load_module, snmp_pdus, soft_purge, soft_purge, []}, - {load_module, snmp_usm, soft_purge, soft_purge, []}, - - {load_module, snmpa, soft_purge, soft_purge, [snmpa_agent]}, - {load_module, snmpa_mpd, soft_purge, soft_purge, [snmpa_usm]}, - {load_module, snmpa_usm, soft_purge, soft_purge, [snmp_usm]}, - {update, snmpa_mib, soft, soft_purge, soft_purge, []}, - {update, snmpa_agent, soft, soft_purge, soft_purge, [snmpa_mib]}, - {load_module, snmpa_net_if, soft_purge, soft_purge, []}, - - {load_module, snmpm_mpd, soft_purge, soft_purge, []}, - {update, snmpm_server, soft, soft_purge, soft_purge, []} - ] - }, - {"4.16", - [ - {load_module, snmp_log, soft_purge, soft_purge, []}, - {load_module, snmp_pdus, soft_purge, soft_purge, []}, - {load_module, snmp_usm, soft_purge, soft_purge, []}, - - {load_module, snmpa, soft_purge, soft_purge, [snmpa_agent]}, - {load_module, snmpa_general_db, soft_purge, soft_purge, []}, - {load_module, snmpa_mpd, soft_purge, soft_purge, [snmpa_usm]}, - {load_module, snmpa_usm, soft_purge, soft_purge, [snmp_usm]}, - {update, snmpa_mib, soft, soft_purge, soft_purge, []}, - {update, snmpa_agent, soft, soft_purge, soft_purge, [snmpa_mib]}, - {load_module, snmpa_net_if, soft_purge, soft_purge, []}, - - {load_module, snmpm_mpd, soft_purge, soft_purge, []}, - {update, snmpm_net_if, soft, soft_purge, soft_purge, []}, - {update, snmpm_server, soft, soft_purge, soft_purge, []} - ] - }, - {"4.15", - [ - {load_module, snmp_config, soft_purge, soft_purge, []}, - {load_module, snmp_log, soft_purge, soft_purge, []}, - {load_module, snmp_pdus, soft_purge, soft_purge, []}, - {load_module, snmp_usm, soft_purge, soft_purge, []}, - - {load_module, snmpa, soft_purge, soft_purge, [snmp_log, snmpa_agent]}, - {load_module, snmpa_general_db, soft_purge, soft_purge, []}, - {load_module, snmpa_mpd, soft_purge, soft_purge, [snmpa_usm]}, - {load_module, snmpa_usm, soft_purge, soft_purge, [snmp_usm]}, - {update, snmpa_net_if, {advanced, upgrade_from_pre_4_16}, - soft_purge, soft_purge, [snmpa_agent, snmp_log]}, - {update, snmpa_mib, soft, soft_purge, soft_purge, []}, - {update, snmpa_agent, soft, soft_purge, soft_purge, [snmpa_mib]}, - - {load_module, snmpm_mpd, soft_purge, soft_purge, []}, - {update, snmpm_net_if, {advanced, upgrade_from_pre_4_16}, - soft_purge, soft_purge, [snmpm_config, snmp_log]}, + {load_module, snmpm, soft_purge, soft_purge, []}, + {load_module, snmpm_conf, soft_purge, soft_purge, []}, {update, snmpm_config, soft, soft_purge, soft_purge, []}, - {update, snmpm_server, soft, soft_purge, soft_purge, []} + {load_module, snmpm_usm, soft_purge, soft_purge, []} ] - }, - {"4.14", + }, + {"4.17", [ - {load_module, snmp_config, soft_purge, soft_purge, []}, - {load_module, snmp_log, soft_purge, soft_purge, []}, - {load_module, snmp_pdus, soft_purge, soft_purge, []}, - {load_module, snmp_usm, soft_purge, soft_purge, []}, - - {load_module, snmpa, soft_purge, soft_purge, [snmp_log, snmpa_agent]}, - {load_module, snmpa_general_db, soft_purge, soft_purge, []}, - {load_module, snmpa_mpd, soft_purge, soft_purge, [snmpa_usm]}, - {load_module, snmpa_usm, soft_purge, soft_purge, [snmp_usm]}, - {update, snmpa_net_if, {advanced, upgrade_from_pre_4_16}, - soft_purge, soft_purge, [snmp_log, snmpa_agent]}, - {update, snmpa_mib, soft, soft_purge, soft_purge, []}, - {update, snmpa_agent, soft, soft_purge, soft_purge, [snmpa_mib]}, - - {load_module, snmpm_mpd, soft_purge, soft_purge, []}, - {load_module, snmpm_user, soft_purge, soft_purge, []}, - {load_module, snmpm_user_default, soft_purge, soft_purge, [snmpm_user]}, - {update, snmpm_net_if, {advanced, upgrade_from_pre_4_16}, - soft_purge, soft_purge, [snmpm_config, snmp_log]}, + {load_module, snmp_community_mib, soft_purge, soft_purge, []}, + {load_module, snmp_framework_mib, soft_purge, soft_purge, []}, + {load_module, snmp_generic, soft_purge, soft_purge, []}, + {load_module, snmp_notification_mib, soft_purge, soft_purge, []}, + {load_module, snmp_standard_mib, soft_purge, soft_purge, []}, + {load_module, snmp_target_mib, soft_purge, soft_purge, []}, + {load_module, snmp_user_based_sm_mib, soft_purge, soft_purge, []}, + {load_module, snmp_view_based_acm_mib, soft_purge, soft_purge, []}, + {load_module, snmpa_conf, soft_purge, soft_purge, []}, + {update, snmpa_target_cache, soft, soft_purge, soft_purge, []}, + {load_module, snmpa_usm, soft_purge, soft_purge, []}, + {load_module, snmpm, soft_purge, soft_purge, []}, + {load_module, snmpm_conf, soft_purge, soft_purge, []}, {update, snmpm_config, soft, soft_purge, soft_purge, []}, - {update, snmpm_server, soft, soft_purge, soft_purge, - [snmpm_user_default]} - ] - }, - {"4.13.5", - [ - {load_module, snmp_config, soft_purge, soft_purge, []}, - {load_module, snmp_log, soft_purge, soft_purge, []}, - {load_module, snmp_pdus, soft_purge, soft_purge, []}, - {load_module, snmp_usm, soft_purge, soft_purge, []}, - - {load_module, snmpa, soft_purge, soft_purge, [snmp_log, snmpa_agent]}, - {load_module, snmpa_general_db, soft_purge, soft_purge, []}, - {load_module, snmpa_mib_data, soft_purge, soft_purge, []}, - {load_module, snmpa_mpd, soft_purge, soft_purge, [snmpa_usm]}, - {load_module, snmpa_usm, soft_purge, soft_purge, [snmp_usm]}, - {update, snmpa_net_if, {advanced, upgrade_from_pre_4_16}, - soft_purge, soft_purge, [snmpa_agent, snmp_log]}, - {update, snmpa_mib, soft, soft_purge, soft_purge, [snmpa_mib_data]}, - {update, snmpa_agent, soft, soft_purge, soft_purge, [snmpa_mib]}, - - {load_module, snmpm_mpd, soft_purge, soft_purge, []}, - {load_module, snmpm_user, soft_purge, soft_purge, []}, - {load_module, snmpm_user_default, soft_purge, soft_purge, [snmpm_user]}, - {update, snmpm_net_if, {advanced, upgrade_from_pre_4_14}, - soft_purge, soft_purge, [snmpm_config, snmp_log]}, - {update, snmpm_config, soft, soft_purge, soft_purge, []}, - {update, snmpm_server, soft, soft_purge, soft_purge, [snmpm_user_default]}, - {add_module, snmpm_net_if_filter}, - {add_module, snmpm_network_interface_filter} + {load_module, snmpm_usm, soft_purge, soft_purge, []}, + {load_module, snmpa_net_if, soft_purge, soft_purge, []} ] } ], @@ -157,136 +66,43 @@ %% ------D o w n g r a d e --------------------------------------------------- [ - {"4.17", + {"4.17.1", [ - {load_module, snmpa_net_if, soft_purge, soft_purge, []} - ] - }, - {"4.16.2", - [ - {load_module, snmp_log, soft_purge, soft_purge, []}, - - {load_module, snmpa, soft_purge, soft_purge, [snmpa_agent]}, - {load_module, snmpa_mpd, soft_purge, soft_purge, [snmpa_usm]}, + {load_module, snmp_community_mib, soft_purge, soft_purge, []}, + {load_module, snmp_framework_mib, soft_purge, soft_purge, []}, + {load_module, snmp_generic, soft_purge, soft_purge, []}, + {load_module, snmp_notification_mib, soft_purge, soft_purge, []}, + {load_module, snmp_standard_mib, soft_purge, soft_purge, []}, + {load_module, snmp_target_mib, soft_purge, soft_purge, []}, + {load_module, snmp_user_based_sm_mib, soft_purge, soft_purge, []}, + {load_module, snmp_view_based_acm_mib, soft_purge, soft_purge, []}, + {load_module, snmpa_conf, soft_purge, soft_purge, []}, + {update, snmpa_target_cache, soft, soft_purge, soft_purge, []}, {load_module, snmpa_usm, soft_purge, soft_purge, []}, - {update, snmpa_agent, soft, soft_purge, soft_purge, []}, - {load_module, snmpa_net_if, soft_purge, soft_purge, []}, - - {load_module, snmpm_mpd, soft_purge, soft_purge, []} - ] - }, - {"4.16.1", - [ - {load_module, snmp_log, soft_purge, soft_purge, []}, - {load_module, snmp_pdus, soft_purge, soft_purge, []}, - {load_module, snmp_usm, soft_purge, soft_purge, []}, - - {load_module, snmpa, soft_purge, soft_purge, [snmpa_agent]}, - {load_module, snmpa_mpd, soft_purge, soft_purge, [snmpa_usm]}, - {load_module, snmpa_usm, soft_purge, soft_purge, [snmp_usm]}, - {update, snmpa_mib, soft, soft_purge, soft_purge, []}, - {update, snmpa_agent, soft, soft_purge, soft_purge, [snmpa_mib]}, - {load_module, snmpa_net_if, soft_purge, soft_purge, []}, - - {load_module, snmpm_mpd, soft_purge, soft_purge, []}, - {update, snmpm_server, soft, soft_purge, soft_purge, []} - ] - }, - {"4.16", - [ - {load_module, snmp_log, soft_purge, soft_purge, []}, - {load_module, snmp_pdus, soft_purge, soft_purge, []}, - {load_module, snmp_usm, soft_purge, soft_purge, []}, - - {load_module, snmpa, soft_purge, soft_purge, [snmpa_agent]}, - {load_module, snmpa_general_db, soft_purge, soft_purge, []}, - {load_module, snmpa_mpd, soft_purge, soft_purge, [snmpa_usm]}, - {load_module, snmpa_usm, soft_purge, soft_purge, [snmp_usm]}, - {update, snmpa_mib, soft, soft_purge, soft_purge, []}, - {update, snmpa_agent, soft, soft_purge, soft_purge, [snmpa_mib]}, - {load_module, snmpa_net_if, soft_purge, soft_purge, []}, - - {load_module, snmpm_mpd, soft_purge, soft_purge, []}, - {update, snmpm_net_if, soft, soft_purge, soft_purge, []}, - {update, snmpm_server, soft, soft_purge, soft_purge, []} - ] - }, - {"4.15", - [ - {load_module, snmp_config, soft_purge, soft_purge, []}, - {load_module, snmp_log, soft_purge, soft_purge, []}, - {load_module, snmp_pdus, soft_purge, soft_purge, []}, - {load_module, snmp_usm, soft_purge, soft_purge, []}, - - {load_module, snmpa, soft_purge, soft_purge, [snmpa_agent, snmp_log]}, - {load_module, snmpa_general_db, soft_purge, soft_purge, []}, - {load_module, snmpa_mpd, soft_purge, soft_purge, [snmpa_usm]}, - {load_module, snmpa_usm, soft_purge, soft_purge, [snmp_usm]}, - {update, snmpa_net_if, {advanced, downgrade_to_pre_4_16}, - soft_purge, soft_purge, [snmpa_agent, snmp_log]}, - {update, snmpa_mib, soft, soft_purge, soft_purge, []}, - {update, snmpa_agent, soft, soft_purge, soft_purge, [snmpa_mib]}, - - {load_module, snmpm_mpd, soft_purge, soft_purge, []}, - {update, snmpm_net_if, {advanced, downgrade_to_pre_4_16}, - soft_purge, soft_purge, [snmpm_config, snmp_log]}, + {load_module, snmpm, soft_purge, soft_purge, []}, + {load_module, snmpm_conf, soft_purge, soft_purge, []}, {update, snmpm_config, soft, soft_purge, soft_purge, []}, - {update, snmpm_server, soft, soft_purge, soft_purge, []} + {load_module, snmpm_usm, soft_purge, soft_purge, []} ] }, - {"4.14", + {"4.17", [ - {load_module, snmp_config, soft_purge, soft_purge, []}, - {load_module, snmp_log, soft_purge, soft_purge, []}, - {load_module, snmp_pdus, soft_purge, soft_purge, []}, - {load_module, snmp_usm, soft_purge, soft_purge, []}, - - {load_module, snmpa, soft_purge, soft_purge, [snmpa_agent, snmp_log]}, - {load_module, snmpa_general_db, soft_purge, soft_purge, []}, - {load_module, snmpa_mpd, soft_purge, soft_purge, [snmpa_usm]}, - {load_module, snmpa_usm, soft_purge, soft_purge, [snmp_usm]}, - {update, snmpa_net_if, {advanced, downgrade_to_pre_4_16}, - soft_purge, soft_purge, [snmpa_agent, snmp_log]}, - {update, snmpa_mib, soft, soft_purge, soft_purge, []}, - {update, snmpa_agent, soft, soft_purge, soft_purge, [snmpa_mib]}, - - {load_module, snmpm_mpd, soft_purge, soft_purge, []}, - {load_module, snmpm_user, soft_purge, soft_purge, []}, - {load_module, snmpm_user_default, soft_purge, soft_purge, [snmpm_user]}, - {update, snmpm_net_if, {advanced, downgrade_to_pre_4_16}, - soft_purge, soft_purge, [snmpm_config, snmp_log]}, + {load_module, snmp_community_mib, soft_purge, soft_purge, []}, + {load_module, snmp_framework_mib, soft_purge, soft_purge, []}, + {load_module, snmp_generic, soft_purge, soft_purge, []}, + {load_module, snmp_notification_mib, soft_purge, soft_purge, []}, + {load_module, snmp_standard_mib, soft_purge, soft_purge, []}, + {load_module, snmp_target_mib, soft_purge, soft_purge, []}, + {load_module, snmp_user_based_sm_mib, soft_purge, soft_purge, []}, + {load_module, snmp_view_based_acm_mib, soft_purge, soft_purge, []}, + {load_module, snmpa_conf, soft_purge, soft_purge, []}, + {update, snmpa_target_cache, soft, soft_purge, soft_purge, []}, + {load_module, snmpa_usm, soft_purge, soft_purge, []}, + {load_module, snmpm, soft_purge, soft_purge, []}, + {load_module, snmpm_conf, soft_purge, soft_purge, []}, {update, snmpm_config, soft, soft_purge, soft_purge, []}, - {update, snmpm_server, soft, soft_purge, soft_purge, - [snmpm_user_default]} - ] - }, - {"4.13.5", - [ - {load_module, snmp_config, soft_purge, soft_purge, []}, - {load_module, snmp_log, soft_purge, soft_purge, []}, - {load_module, snmp_pdus, soft_purge, soft_purge, []}, - {load_module, snmp_usm, soft_purge, soft_purge, []}, - - {load_module, snmpa, soft_purge, soft_purge, [snmp_log, snmpa_agent]}, - {load_module, snmpa_general_db, soft_purge, soft_purge, []}, - {load_module, snmpa_mib_data, soft_purge, soft_purge, []}, - {load_module, snmpa_mpd, soft_purge, soft_purge, [snmpa_usm]}, - {load_module, snmpa_usm, soft_purge, soft_purge, [snmp_usm]}, - {update, snmpa_net_if, {advanced, downgrade_to_pre_4_16}, - soft_purge, soft_purge, [snmpa_agent, snmp_log]}, - {update, snmpa_mib, soft, soft_purge, soft_purge, [snmpa_mib_data]}, - {update, snmpa_agent, soft, soft_purge, soft_purge, [snmpa_mib]}, - - {load_module, snmpm_mpd, soft_purge, soft_purge, []}, - {load_module, snmpm_user, soft_purge, soft_purge, []}, - {load_module, snmpm_user_default, soft_purge, soft_purge, [snmpm_user]}, - {update, snmpm_net_if, {advanced, downgrade_to_pre_4_14}, - soft_purge, soft_purge, [snmpm_config, snmp_log]}, - {update, snmpm_config, soft, soft_purge, soft_purge, []}, - {update, snmpm_server, soft, soft_purge, soft_purge, [snmpm_user_default]}, - - {remove, {snmpm_net_if_filter, soft_purge, brutal_purge}}, - {remove, {snmpm_network_interface_filter, soft_purge, brutal_purge}} + {load_module, snmpm_usm, soft_purge, soft_purge, []}, + {load_module, snmpa_net_if, soft_purge, soft_purge, []} ] } ] diff --git a/lib/snmp/vsn.mk b/lib/snmp/vsn.mk index 95103433a4..1229b12ae2 100644 --- a/lib/snmp/vsn.mk +++ b/lib/snmp/vsn.mk @@ -1,3 +1,3 @@ -SNMP_VSN = 4.17.1 +SNMP_VSN = 4.18 PRE_VSN = APP_VSN = "snmp-$(SNMP_VSN)$(PRE_VSN)" diff --git a/lib/ssh/doc/src/notes.xml b/lib/ssh/doc/src/notes.xml index 7c8735cf56..950c249e72 100644 --- a/lib/ssh/doc/src/notes.xml +++ b/lib/ssh/doc/src/notes.xml @@ -29,7 +29,37 @@ <file>notes.xml</file> </header> - <section><title>Ssh 2.0</title> + <section><title>Ssh 2.0.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + SSH in some cases terminated channels with reason normal + when it should have been shutdown.</p> + <p> + Own Id: OTP-8714</p> + </item> + <item> + <p> + SSH in some cases generated a crash report when a channel + was closed in a normal way.</p> + <p> + Own Id: OTP-8735 Aux Id: seq11615 </p> + </item> + <item> + <p> + The processes ssh_subsystem_sup and one ssh_channel_sup + was not terminated when a connection was closed.</p> + <p> + Own Id: OTP-8807</p> + </item> + </list> + </section> + +</section> + +<section><title>Ssh 2.0</title> <section><title>Fixed Bugs and Malfunctions</title> <list> diff --git a/lib/ssh/vsn.mk b/lib/ssh/vsn.mk index a8821625a2..79fd36cd83 100644 --- a/lib/ssh/vsn.mk +++ b/lib/ssh/vsn.mk @@ -1,4 +1,4 @@ #-*-makefile-*- ; force emacs to enter makefile-mode -SSH_VSN = 2.0 +SSH_VSN = 2.0.1 APP_VSN = "ssh-$(SSH_VSN)" diff --git a/lib/ssl/doc/src/notes.xml b/lib/ssl/doc/src/notes.xml index 95e968aa22..5f9e436348 100644 --- a/lib/ssl/doc/src/notes.xml +++ b/lib/ssl/doc/src/notes.xml @@ -31,7 +31,116 @@ <p>This document describes the changes made to the SSL application. </p> - <section><title>SSL 4.0</title> + <section><title>SSL 4.0.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + The server now verifies the client certificate verify + message correctly, instead of causing a case-clause.</p> + <p> + Own Id: OTP-8721</p> + </item> + <item> + <p> + The client hello message now always include ALL available + cipher suites (or those specified by the ciphers option). + Previous implementation would filter them based on the + client certificate key usage extension (such filtering + only makes sense for the server certificate).</p> + <p> + Own Id: OTP-8772</p> + </item> + <item> + <p> + Fixed handling of the option {mode, list} that was broken + for some packet types for instance line.</p> + <p> + Own Id: OTP-8785</p> + </item> + <item> + <p> + Empty packets were not delivered to the client.</p> + <p> + Own Id: OTP-8790</p> + </item> + <item> + <p> Building in a source tree without prebuilt platform + independent build results failed on the SSL examples + when: </p> <list><item> cross building. This has been + solved by not building the SSL examples during a cross + build. </item><item> building on Windows. </item></list> + <p> + Own Id: OTP-8791</p> + </item> + <item> + <p> + Fixed a handshake error which occurred on some ssl + implementations.</p> + <p> + Own Id: OTP-8793</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Revise the public_key API - Cleaned up and documented the + public_key API to make it useful for general use, also + changed ssl to use the new API.</p> + <p> + Own Id: OTP-8722</p> + </item> + <item> + <p> + Added support for inputing certificates and keys directly + in DER format these options will override the pem-file + options if specified.</p> + <p> + Own Id: OTP-8723</p> + </item> + <item> + <p> + To gain interoperability ssl will not check for padding + errors when using TLS 1.0. It is first in TLS 1.1 that + checking the padding is an requirement.</p> + <p> + Own Id: OTP-8740</p> + </item> + <item> + <p> + Changed the semantics of the verify_fun option in the + ssl-application so that it takes care of both application + handling of path validation errors and verification of + application specific extensions. This means that it is + now possible for the server application in verify_peer + mode to handle path validation errors. This change moved + some functionality earlier in ssl to the public_key + application.</p> + <p> + Own Id: OTP-8770</p> + </item> + <item> + <p> + Added the functionality so that the verification fun will + be called when a certificate is considered valid by the + path validation to allow access to each certificate in + the path to the user application. Also try to verify + subject-AltName, if unable to verify it let the + application verify it.</p> + <p> + Own Id: OTP-8825</p> + </item> + </list> + </section> + +</section> + +<section><title>SSL 4.0</title> <section><title>Improvements and New Features</title> <list> diff --git a/lib/stdlib/doc/src/notes.xml b/lib/stdlib/doc/src/notes.xml index 23d1e8b7de..6c618bc798 100644 --- a/lib/stdlib/doc/src/notes.xml +++ b/lib/stdlib/doc/src/notes.xml @@ -30,6 +30,142 @@ </header> <p>This document describes the changes made to the STDLIB application.</p> +<section><title>STDLIB 1.17.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p>reference() has been substituted for ref() in the + documentation.</p> + <p> + Own Id: OTP-8733</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + The ms_transform now warns if the fun head shadows + surrounding variables (just like the warnings you would + get for an ordinary fun in the same context).</p> + <p> + Own Id: OTP-6759</p> + </item> + <item> + <p> + ets:select_reverse/{1,2,3} are now documented.</p> + <p> + Own Id: OTP-7863</p> + </item> + <item> + <p> + Large parts of the <c>ethread</c> library have been + rewritten. The <c>ethread</c> library is an Erlang + runtime system internal, portable thread library used by + the runtime system itself.</p> + <p> + Most notable improvement is a reader optimized rwlock + implementation which dramatically improve the performance + of read-lock/read-unlock operations on multi processor + systems by avoiding ping-ponging of the rwlock cache + lines. The reader optimized rwlock implementation is used + by miscellaneous rwlocks in the runtime system that are + known to be read-locked frequently, and can be enabled on + ETS tables by passing the <seealso + marker="stdlib:ets#new_2_read_concurrency">{read_concurrency, + true}</seealso> option upon table creation. See the + documentation of <seealso + marker="stdlib:ets#new/2">ets:new/2</seealso> for more + information. The reader optimized rwlock implementation + can be fine tuned when starting the runtime system. For + more information, see the documentation of the <seealso + marker="erts:erl#+rg">+rg</seealso> command line argument + of <c>erl</c>.</p> + <p> + There is also a new implementation of rwlocks that is not + optimized for readers. Both implementations interleaves + readers and writers during contention as opposed to, + e.g., the NPTL (Linux) pthread rwlock implementation + which use either a reader or writer preferred strategy. + The reader/writer preferred strategy is problematic since + it starves threads doing the non-preferred operation.</p> + <p> + The new rwlock implementations in general performs better + in ERTS than common pthread implementations. However, in + some extremely heavily contended cases this is not the + case. Such heavy contention can more or less only appear + on ETS tables. This when multiple processes do very large + amounts of write locked operations simultaneously on the + same table. Such use of ETS is bad regardless of rwlock + implementation, will never scale, and is something we + strongly advise against.</p> + <p> + The new rwlock implementations depend on atomic + operations. If no native atomic implementation is found, + a fallback solution will be used. Using the fallback + implies a performance degradation. That is, it is more + important now than before to build OTP with a native + atomic implementation.</p> + <p> + The <c>ethread</c> library contains native atomic + implementations for, x86 (32 and 64 bit), powerpc (32 + bit), sparc V9 (32 and 64 bit), and tilera (32 bit). On + other hardware gcc's builtin support for atomic memory + access will be used if such exists. If no such support is + found, <c>configure</c> will warn about no atomic + implementation available.</p> + <p> + The <c>ethread</c> library can now also use the + <c>libatomic_ops</c> library for atomic memory accesses. + This makes it possible for the Erlang runtime system to + utilize optimized native atomic operations on more + platforms than before. If <c>configure</c> warns about no + atomic implementation available, try using the + <c>libatomic_ops</c> library. Use the <seealso + marker="doc/installation_guide:INSTALL#How-to-Build-and-Install-ErlangOTP_A-Closer-Look-at-the-individual-Steps_Configuring">--with-libatomic_ops=PATH</seealso> + <c>configure</c> command line argument when specifying + where the <c>libatomic_ops</c> installation is located. + The <c>libatomic_ops</c> library can be downloaded from: + <url + href="http://www.hpl.hp.com/research/linux/atomic_ops/">http://www.hpl.hp.com/research/linux/atomic_ops/</url></p> + <p> + The changed API of the <c>ethread</c> library has also + caused modifications in the Erlang runtime system. + Preparations for the to come "delayed deallocation" + feature has also been done since it depends on the + <c>ethread</c> library.</p> + <p> + <em>Note</em>: When building for x86, the <c>ethread</c> + library will now use instructions that first appeared on + the pentium 4 processor. If you want the runtime system + to be compatible with older processors (back to 486) you + need to pass the <seealso + marker="doc/installation_guide:INSTALL#How-to-Build-and-Install-ErlangOTP_A-Closer-Look-at-the-individual-Steps_Configuring">--enable-ethread-pre-pentium4-compatibility</seealso> + <c>configure</c> command line argument when configuring + the system.</p> + <p> + Own Id: OTP-8544</p> + </item> + <item> + <p> + Some Built In Functions (BIFs) from the module erlang was + never made autoimported for backward compatibility + reasons. As local functions now override autoimports, new + autoimports is no longer a problem, why the following + BIFs are finally made autoimported: monitor/2, monitor/3, + demonitor/2, demonitor/3, error/1, error/2, + integer_to_list/2, list_to_integer/2.</p> + <p> + Own Id: OTP-8763</p> + </item> + </list> + </section> + +</section> + <section><title>STDLIB 1.17</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/stdlib/doc/src/supervisor.xml b/lib/stdlib/doc/src/supervisor.xml index c696434d49..45fa0847a8 100644 --- a/lib/stdlib/doc/src/supervisor.xml +++ b/lib/stdlib/doc/src/supervisor.xml @@ -156,7 +156,7 @@ child_spec() = {Id,StartFunc,Restart,Shutdown,Type,Modules} the child process to terminate by calling <c>exit(Child,shutdown)</c> and then wait for an exit signal with reason <c>shutdown</c> back from the child process. If - no exit signal is received within the specified time, + no exit signal is received within the specified number of milliseconds, the child process is unconditionally terminated using <c>exit(Child,kill)</c>.</p> <p>If the child process is another supervisor, <c>Shutdown</c> diff --git a/lib/stdlib/vsn.mk b/lib/stdlib/vsn.mk index 1757d35160..db7954af04 100644 --- a/lib/stdlib/vsn.mk +++ b/lib/stdlib/vsn.mk @@ -1 +1 @@ -STDLIB_VSN = 1.17.1 +STDLIB_VSN = 1.17.2 diff --git a/lib/test_server/doc/src/notes.xml b/lib/test_server/doc/src/notes.xml index dae071311c..e0c4c28e44 100644 --- a/lib/test_server/doc/src/notes.xml +++ b/lib/test_server/doc/src/notes.xml @@ -32,6 +32,48 @@ <file>notes.xml</file> </header> +<section><title>Test_Server 3.4.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Returning {return_group_result,failed} from end_per_group + in a group that is part of a sequence, did not cause the + proceeding cases (or groups) to get skipped. This has + been fixed.</p> + <p> + Own Id: OTP-8753 Aux Id: seq11644 </p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Common Test has been updated to handle start options and + test specification terms for test case groups (and test + cases in groups). Also, an option named 'label', has been + added that associates the test run with a name that + Common Test prints in the overview HTML logs.</p> + <p> + Own Id: OTP-8725 Aux Id: OTP-8727 </p> + </item> + <item> + <p> + It is now possible to skip all tests in a suite, or a + group, by returning {fail,Reason} from the end_tc/5 + framework function for init_per_suite, or init_per_group.</p> + <p> + Own Id: OTP-8805 Aux Id: seq11664 </p> + </item> + </list> + </section> + +</section> + <section><title>Test_Server 3.4</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index b9e1ef2959..4a71993da9 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -30,6 +30,22 @@ </header> <p>This document describes the changes made to the Tools application.</p> +<section><title>Tools 2.6.6.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + <c>cover</c> will now show ampersand characters in the + source code correctly. (Thanks to Tom Moertel.)</p> + <p> + Own Id: OTP-8776</p> + </item> + </list> + </section> + +</section> + <section><title>Tools 2.6.6</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/tools/vsn.mk b/lib/tools/vsn.mk index 7a6f8c92a2..77b5254eaa 100644 --- a/lib/tools/vsn.mk +++ b/lib/tools/vsn.mk @@ -1 +1 @@ -TOOLS_VSN = 2.6.6 +TOOLS_VSN = 2.6.6.1 diff --git a/lib/tv/doc/src/notes.xml b/lib/tv/doc/src/notes.xml index 43b650dd29..388bb82c91 100644 --- a/lib/tv/doc/src/notes.xml +++ b/lib/tv/doc/src/notes.xml @@ -30,6 +30,23 @@ </header> <p>This document describes the changes made to the TV application.</p> +<section><title>TV 2.1.4.6</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + With some window managers (e.g. stumpwm), <c>tv</c> would + constantly restart while trying to open a table. (Thanks + to Dmitriy Budashny.)</p> + <p> + Own Id: OTP-8751</p> + </item> + </list> + </section> + +</section> + <section><title>TV 2.1.4.5</title> <section><title>Improvements and New Features</title> diff --git a/lib/tv/vsn.mk b/lib/tv/vsn.mk index d344c676a3..958aa0ea42 100644 --- a/lib/tv/vsn.mk +++ b/lib/tv/vsn.mk @@ -1 +1 @@ -TV_VSN = 2.1.4.5 +TV_VSN = 2.1.4.6 diff --git a/lib/typer/vsn.mk b/lib/typer/vsn.mk index 285fa62da3..7f4aabb335 100644 --- a/lib/typer/vsn.mk +++ b/lib/typer/vsn.mk @@ -1 +1 @@ -TYPER_VSN = 0.1.7.4 +TYPER_VSN = 0.1.7.5 diff --git a/lib/wx/doc/src/notes.xml b/lib/wx/doc/src/notes.xml index 34c56091aa..8414028106 100644 --- a/lib/wx/doc/src/notes.xml +++ b/lib/wx/doc/src/notes.xml @@ -31,6 +31,35 @@ <p>This document describes the changes made to the wxErlang application.</p> +<section><title>Wx 0.98.7</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Fix crash (segmentation fault) in callback handling.</p> + <p> + Own Id: OTP-8766</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Add wxSystemSettings module.</p> + <p> + Add wxTreeCtrl:editLabel/2.</p> + <p> + Own Id: OTP-8767</p> + </item> + </list> + </section> + +</section> + <section><title>Wx 0.98.6</title> <section><title>Improvements and New Features</title> diff --git a/lib/wx/vsn.mk b/lib/wx/vsn.mk index c3ad3920a4..c0cc302317 100644 --- a/lib/wx/vsn.mk +++ b/lib/wx/vsn.mk @@ -1 +1 @@ -WX_VSN = 0.98.6 +WX_VSN = 0.98.7 diff --git a/lib/xmerl/doc/src/notes.xml b/lib/xmerl/doc/src/notes.xml index 0403fbca27..d67a622481 100644 --- a/lib/xmerl/doc/src/notes.xml +++ b/lib/xmerl/doc/src/notes.xml @@ -31,6 +31,25 @@ <p>This document describes the changes made to the Xmerl application.</p> +<section><title>Xmerl 1.2.6</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> Fixed problem with hex entities in UTF-8 documents: + When a document was in UTF-8 encoding, xmerl_scan + improperly replaced hex entities by the UTF-8 bytes + instead of returning the character, as it does with + inline UTF-8 text and decimal entities. (Thanks to Paul + Guyot.) </p> + <p> + Own Id: OTP-8697</p> + </item> + </list> + </section> + +</section> + <section><title>Xmerl 1.2.5</title> <section><title>Improvements and New Features</title> diff --git a/lib/xmerl/vsn.mk b/lib/xmerl/vsn.mk index 03d16ad6fe..d85a57f447 100644 --- a/lib/xmerl/vsn.mk +++ b/lib/xmerl/vsn.mk @@ -1 +1 @@ -XMERL_VSN = 1.2.5 +XMERL_VSN = 1.2.6 |