aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2013-01-21Merge branch 'bmk/snmp/snmp423_integration'Micael Karlberg
2013-01-21Merge branch 'fredrik/ssh/ssh-internal-error/OTP-10731'Fredrik Gustafsson
* fredrik/ssh/ssh-internal-error/OTP-10731: Fixed internal error on when client and server can not agree o which authmethod to use
2013-01-21Merge branch 'fredrik/ssh/port_in_use_error'Fredrik Gustafsson
* fredrik/ssh/port_in_use_error: Fixed bug which lead to crash in startup of daemon, if port was in use
2013-01-21Merge branch 'ia/ssl/simplify-addition-of-keyexchange-algorithms/OTP-10709'Ingela Anderton Andin
* ia/ssl/simplify-addition-of-keyexchange-algorithms/OTP-10709: SSL: simplify server key encoding, decoding and signature handling SSL: unify the different implementations signature check implementations
2013-01-21ssl: Enhance error handlingIngela Anderton Andin
Remove filter mechanisms that made error messages backwards compatible with old ssl but hid information about what actually happened. This does not break the documented API however other reason terms may be returned, so code that matches on the reason part of {error, Reason} may fail.
2013-01-21Merge branch 'anders/diameter/length_error/OTP-10693'Anders Svensson
* anders/diameter/length_error/OTP-10693: More testcases in traffic suite Test diameter_packet answers Ensure correct setting of 3xxx result code
2013-01-21Added doc for ssloptsFredrik Gustafsson
2013-01-19Add search to Erlang shell's historyFred Hebert
Search mode can be entered by pressing ctrl-r. Enter terms and press ctrl-r again to search backwards, or ctrl-s to then search forward (if you terminal doesn't eat up that one). Press enter to execute the line, or use tab, arrow keys, or other control sequences (^D, ^K, etc.) to exit search mode while remaining on the last found line. Exiting is also possible by pressing the escape key twice. The search mode is a simpler version of the one available in bash or zsh shells. This adds a few modes to the shell (search, on top of none and meta) in group.erl for history search, and a few more in edlin.erl to change the meaning of control sequences while searching.
2013-01-18More testcases in traffic suiteAnders Svensson
2013-01-18Test diameter_packet answersAnders Svensson
This and record/list encode more systematically.
2013-01-18compiler: Eliminate internal consistency failure in binary matchingBjörn Gustavsson
The following code: check(<<"string">>, a1) -> one; check(_, a2) -> two; check(undefined, a3) -> three. produces an internal consistency failure: check: function check/2+17: Internal consistency check failed - please report this bug. Instruction: {test,is_eq_exact,{f,7},[{x,0},{atom,undefined}]} Error: {match_context,{x,0}}: Actually, in the current implementation of the run-time system, comparing a match context to an atom is safe, so I briefly considered updating the beam_validator to let this code pass through. I abandoned that approach because not all terms would be safe to compare to a match context, and the implementation might change in the future. Therefore, fix this problem by not allowing any matching of non-variables (in the argument position for binary being matched) following binary matching. That solution is simple and safe, and since this kind of code seems to be rare in practice, there is no need to pursue any more compilicated solution. Reported-by: Viktor Sovietov
2013-01-18Fixed bug which lead to crash in startup of daemon, if port was in useFredrik Gustafsson
2013-01-18Ensure correct setting of 3xxx result codeAnders Svensson
A bad AVP Length (resulting in excess bytes from decode) but no other errors caused the request to fail when attempting to set Result-Code. A protocol error in combination with a 5xxx error caused the latter to be set in an answer-message.
2013-01-18Merge branch 'nox/enable-silent-rules/OTP-10726'Björn-Egil Dahlberg
* nox/enable-silent-rules/OTP-10726: Implement ./otp_build configure --enable-silent-rules
2013-01-18Merge branch 'egil/fix-LM_TRY_ENABLE_CFLAG'Björn-Egil Dahlberg
* egil/fix-LM_TRY_ENABLE_CFLAG: Fix LM_TRY_ENABLE_CFLAG to use correct environment
2013-01-18Fixed specsFredrik Gustafsson
2013-01-18Update primary bootstrapBjörn Gustavsson
2013-01-18Merge branch 'bjorn/kernel/undefined-function-handler/OTP-10617'Björn Gustavsson
* bjorn/kernel/undefined-function-handler/OTP-10617: Teach error_handler to call '$handle_undefined_function'
2013-01-18Merge branch 'bjorn/remove-parameterized-modules/OTP-10616'Björn Gustavsson
* bjorn/remove-parameterized-modules/OTP-10616: Remove support for parameterized modules xref_SUITE: Don't test parameterized modules shell_SUITE: Don't test parameterized modules erl_expand_records_SUITE: Don't test parameterized modules erl_eval: Don't test parameterized modules
2013-01-18Remove support for parameterized modulesBjörn Gustavsson
2013-01-18Merge branch 'nox/compiler/forbid-locals-in-core-guards/OTP-10706'Fredrik Gustafsson
2013-01-18Merge branch 'nox/rm-reverse-eta-conversion/OTP-10682'Fredrik Gustafsson
* nox/rm-reverse-eta-conversion/OTP-10682: Don't use fun references in cprof_SUITE Make trace_local_SUITE work without the reverse eta conversion Remove the reverse eta-conversion from v3_kernel
2013-01-18Merge branch 'nox/promote-inline_list_funcs/OTP-10690'Fredrik Gustafsson
* nox/promote-inline_list_funcs/OTP-10690: Raise a function_clause error with the right arguments when inlining Properly guard against badly-typed arguments when inlining Make inlined list functions fail with function_clause Document compiler option 'inline_list_funcs' Silence some wrong warnings triggered by inline_list_funcs
2013-01-18Fixed internal error on when client and server can not agree o which ↵Fredrik Gustafsson
authmethod to use
2013-01-17Merge branch 'maint-r15'Fredrik Gustafsson
Conflicts: erts/vsn.mk
2013-01-17Merge tag 'build/maint-r15/2013-01-14_20.31' into maint-r15Fredrik Gustafsson
2013-01-17Merge branch 'maint-r15'Anders Svensson
2013-01-17Merge branch 'bjorn/kernel/global_SUITE'Björn Gustavsson
* bjorn/kernel/global_SUITE: global_SUITE: Eliminate redundant registration of 'test_server' process
2013-01-17Merge branch 'ta/hipe/gitignore/OTP-10705'Fredrik Gustafsson
* ta/hipe/gitignore/OTP-10705: Update .gitignore (lib/hipe/boot_ebin)
2013-01-17Fix bug in queue:out/1, queue:out_r/1 that makes it O(N^2) in worst caseAleksandr Erofeev
Running out and out_r one after another many times will copy one list back and forth if another is empty. Change r2f and f2r to copy only half of big list so such cases will happen more rarely
2013-01-17SSL: simplify server key encoding, decoding and signature handlingAndreas Schultz
server key encoding depends to the negotiated key exchange. Before the encoding was limited to diffie-hellman keys. This changes allows to select the key structure to decode and verify. It also consolidates the transport encoding of the parameters into one place.
2013-01-17SSL: unify the different implementations signature check implementationsAndreas Schultz
ssl_handshake and ssl_connection where doing essentially the same when checking a public key signature. This unify both into a single function
2013-01-17global_SUITE: Eliminate redundant registration of 'test_server' processBjörn Gustavsson
global_SUITE registers the name 'test_server' in the global registry for what seems to be only historical reasons. Exactly how it happened is lost in the mists of time, but I think the following is a reasonable reconstruction: * At one point in time, the test_server application started to do a global registration of a 'test_server' process to support embedded systems when the test_server application was run on both a host and a target system. * global_SUITE had to be modified to take the pre-existing 'test_server' registration into account. * When Erlang/OTP switched to using common_test, global_SUITE was modified to register the 'test_server' name itself in commit 8bd07f450816eaaae52d28740d89ead1f930cd02 (since the test_server application does not register the 'test_server' name when run under control of common_test). To slightly reduce the size of global_SUITE, remove the redundant registration and stop expecting 'test_server' to be registered.
2013-01-17Merge branch 'bjorn/remove-packages/OTP-10348'Björn Gustavsson
* bjorn/remove-packages/OTP-10348: compile: Remove vestiges of package support Remove documentation about packages
2013-01-17Merge branch 'sal/get_env/OTP-10694'Fredrik Gustafsson
* sal/get_env/OTP-10694: Moved documentation in a separate entry Removed obsolete ?line macro Add application:get_key/3
2013-01-17Use share flags for all file operations on WindowsFilipe David Borba Manana
Some file operations provided by the Erlang file module didn't open the target file with all the file share flags. This made some concurrent file operations against the same file fail on Windows, while on other platforms such as GNU/Linux or Mac OS X they succeed. The operations will fail only if they're performed concurrently by different threads (async IO threads or scheduler threads). For example, one Erlang process does a file:delete/1 call while another Erlang process is doing a filelib:file_size/1 call. This made the former process get an eacces error from the file:delete/1 call. On GNU/Linux or Mac OS X the call would succeed. Another example is if one Erlang process attempts to open a file for reading while another one is in the middle of a file:read_file_info/1 call (after it opened the file and before it closed the file). It's easy to verify that if a file is not open with all the share flags, it's impossible for other threads (even if they belong to the same OS process) to open the file while the file is not closed by the first thread. The following test program shows this: #include <windows.h> #include <iostream> // Must be an existing file //#define SHARE_FLAGS (FILE_SHARE_READ) static DWORD WINAPI MyThreadFunction(LPVOID lpParam); static char *lastError(); int main(int argc, char *argv[]) { DWORD threadId; HANDLE threadHandle, hFile; hFile = CreateFile(FILENAME, GENERIC_READ, SHARE_FLAGS, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) { std::cerr << "File open error from main: " << lastError() << std::endl; return 1; } std::cout << "Main thread opened file successfully" << std::endl; threadHandle = CreateThread(NULL, 0, MyThreadFunction, NULL, 0, &threadId); if (threadHandle == INVALID_HANDLE_VALUE) { std::cerr << "Thread create error from main: " << lastError() << std::endl; return 1; } WaitForSingleObject(threadHandle, INFINITE); CloseHandle(threadHandle); CloseHandle(hFile); return 0; } static DWORD WINAPI MyThreadFunction( LPVOID lpParam ) { HANDLE hFile; hFile = CreateFile(FILENAME, GENERIC_READ, SHARE_FLAGS, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) { std::cerr << "File open error from second thread: " << lastError() << std::endl; return 1; } std::cout << "Second thread opened file successfully" << std::endl; CloseHandle(hFile); return 0; } static char *lastError() { static char *buf = NULL; DWORD dw = GetLastError(); if (buf != NULL) { LocalFree((LPTSTR) &buf); } FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &buf, 0, NULL); return buf; } Rnning this program with SHARE_FLAGS set to 0 (as efile_fileinfo() does for e.g.), shows that the second thread is unable to open the file: C:\cygwin\home\fdmanana\tmp>touch foo.bar C:\cygwin\home\fdmanana\tmp>threads_fopen_test.exe Main thread opened file successfully File open error from second thread: The process cannot access the file because it is being used by another process. Changing the program's SHARE_FLAGS to FILE_SHARE_READ, shows that both threads are able to open the file: C:\cygwin\home\fdmanana\tmp>touch foo.bar C:\cygwin\home\fdmanana\tmp>threads_test.exe Main thread opened file successfully Second thread opened file successfully Same logic applies to opening files for writing or deleting and renaming files while they're open by some other thread that didn't specify the flags FILE_SHARE_WRITE and FILE_SHARE_DELETE.
2013-01-17Merge branch 'mh/escript_emulator_flags_vs_shebang/OTP-10691'Fredrik Gustafsson
* mh/escript_emulator_flags_vs_shebang/OTP-10691: escript to accept emulator arguments when script file has no shebang
2013-01-17Merge branch 'anders/diameter/application_id/OTP-10655'Anders Svensson
* anders/diameter/application_id/OTP-10655: Check application id in answers in traffic suite Fix setting of Application-ID
2013-01-17Merge branch 'anders/diameter/timeout_event/OTP-10628'Anders Svensson
* anders/diameter/timeout_event/OTP-10628: Add event suite Send CER/CEA timeout events as documented
2013-01-17Merge branch 'anders/diameter/start_event/OTP-10618'Anders Svensson
* anders/diameter/start_event/OTP-10618: Fix timing of service start event
2013-01-17Merge branch 'anders/diameter/packet_return/OTP-10614'Anders Svensson
* anders/diameter/packet_return/OTP-10614: Add missing error handling clause for handle_request packet return
2013-01-17Merge branch 'anders/diameter/make_packet/OTP-10609'Anders Svensson
* anders/diameter/make_packet/OTP-10609: Fix diameter_service:make_prepare_header/2
2013-01-17Merge branch 'ia/public_key/small-doc-fixes'Ingela Anderton Andin
* ia/public_key/small-doc-fixes: public_key: Fix spelling errors
2013-01-17public_key: Fix spelling errorsIngela Anderton Andin
2013-01-17ssl: Certificates and PEM-cache cleaning fixed to avoid memory leakIngela Anderton Andin
Certificate db cleaning messages where sent to the wrong process after restructuring to avoid bottlenecks. It is possible that the ssl manager process gets two cleaning messages for the same entry. E.i. first cleaning message is sent and before it is processed a new reference is allocated and again released for the entry, generating a second cleaning message. Also in ssl_manger:handle_info/2 it is possible that there exists a new reference to an "old" file name with a potential new content.
2013-01-16Merge branch 'ia/public_key/CRL/OTP-7045'Ingela Anderton Andin
* ia/public_key/CRL/OTP-7045: public_key: Enhance documentation public_key: CTify test suites public_key: Document pkix_path_validation/3 and pkix_crls_validate/3 Support CRL verification in public_key All basic test cases pass
2013-01-16Merge branch 'yamt/erl_driver-ssize_t/OTP-10699'Björn-Egil Dahlberg
* yamt/erl_driver-ssize_t/OTP-10699: Use correct way to pull the definition of ssize_t
2013-01-16Use correct way to pull the definition of ssize_tYAMAMOTO Takashi
Necessary for NetBSD with _POSIX_SOURCE at least.
2013-01-16compile: Remove vestiges of package supportBjörn Gustavsson
2013-01-16Remove documentation about packagesBjörn Gustavsson