aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2010-05-31Add erlang:nif_error/1,2Björn Gustavsson
A stub function that is supposed to be replaced by a NIF usually calls erlang:error/1 to cause an exception if the NIF library is not loaded. For example: foo() -> erlang:error(nif_not_loaded). The problem is that although erlang:error/1 will normally never be called, Dialyzer will think that any call to the function will fail and thus generate false warnings. Adding a spec for the function will not help because Dialyzer will not believe the spec. Add erlang:nif_error/1,2 that work exactly like erlang:error/1,2. Define the return types for both BIFs to be t_any(). erlang:nif_error is used like this: -spec foo() -> binary(). foo() -> erlang:nif_error(nif_not_loaded). (The -spec is optional but highly recommended, since Dialyzer otherwise has no chance to figure out the types.)
2010-05-28Merge branch 'sv/format_status-name-handling' into devErlang/OTP
* sv/format_status-name-handling: handle {global, term()} names in format_status/2 OTP-8656 sv/format_status-name-handling Calling sys:get_status() for processes that have globally registered names that were not atoms would cause a crash. Corrected. (Thanks to Steve Vinoski.)
2010-05-28Merge branch 'ks/cleanup-leex' into devErlang/OTP
* ks/cleanup-leex: leex: Clean up as suggested by tidier OTP-8655 ks/cleanup-leex
2010-05-28Merge branch 'sv/socket-error-portability' into devErlang/OTP
* sv/socket-error-portability: inet_drv.c: Remove red herring use macro to portably test for socket system call errors OTP-8654 sv/socket-error-portability On some combination of Montavista Linux on Cavium Octeon processors, some socket-related system calls returned other numbers than -1 for errors. This caused a core dump in inet_drv.c. Now the code works around this problem.
2010-05-28odbc: Relese test suitesIngela Anderton Andin
2010-05-28Cleaned codeIngela Anderton Andin
2010-05-28OTP-8647 Xref adds calls to operators when {builtins,true}Hans Bolinder
When given the option {builtins,true} Xref now adds calls to operators.
2010-05-28Hoops too quick to check in previous version, changed . to ;, compiled inIngela Anderton Andin
wrong shell!
2010-05-28Added misssing version check for client.Ingela Anderton Andin
2010-05-28Added missing padding check.Ingela Anderton Andin
2010-05-28Added missing Mac check.Ingela Anderton Andin
2010-05-28Added code to handle own alert in case MAC or padding check fails.Ingela Anderton Andin
2010-05-27OTP-8609: Problems processing netscape cookies - expireMicael Karlberg
OTP-8610: Problem processing netscape cookies - date OTP-8624: Documented debug options not handled
2010-05-27handle {global, term()} names in format_status/2Steve Vinoski
The gen_fsm, gen_server, and wx_object format_status implementations fail to handle global names of the form {global, term()} where term() is something other than an atom, pid, or list. Change these format_status implementations to treat names that are atoms, pids, or lists as before, but for all other terms, set the header property of the function return value to a tuple whose first element is a string describing the return value and whose second element is the name term. Add unit tests for gen_server and gen_fsm to verify sys:get_status calls work successfully for globally registered instances.
2010-05-27OTP-8609: Problems processing netscape cookies - expireMicael Karlberg
OTP-8610: Problem processing netscape cookies - date OTP-8624: Documented debug options not handled
2010-05-27OTP-8609: Made cookie handling more case insensitive.Micael Karlberg
OTP-8610: Some netscape cookie dates are given with a 2-digit year.
2010-05-27Merge branch 'se/spawn_drv_win_deadlock' into devErlang/OTP
* se/spawn_drv_win_deadlock: Fix deadlock in spawn driver on windows OTP-8641 se/spawn_drv_win_deadlock Windows: Closing port of program that stalled without reading all data could deadlock scheduler thread.
2010-05-27Merge branch 'ta/extend-nif-api' into devErlang/OTP
* ta/extend-nif-api: erl_nif: add make_atom_len, make_existing_atom_len and make_string_len erl_nif: add enif_get_atom_length and enif_get_list_length erl_nif: add enif_is_list and enif_is_tuple OTP-8640 ta/extend-nif-api New NIF API functions: enif_make_atom_len, enif_make_existing_atom_len, enif_make_string_len, enif_get_atom_length, enif_get_list_length, enif_is_list, enif_is_tuple (by Tuncer Ayaz)
2010-05-27leex: Clean up as suggested by tidierKostis Sagonas
2010-05-27inet_drv.c: Remove red herringBjörn Gustavsson
Remove redundant "!defined(__WIN32__)". It is used inside the #else branch of a "#ifdef __WIN32__", so it serves no useful purpose except to fool unsuspecting readers.
2010-05-27use macro to portably test for socket system call errorsSteve Vinoski
On some combinations of Montavista Linux running on Cavium Octeon chips, some socket-related system calls erroneously return negative numbers other than -1 to indicate errors, but inet_drv.c specifically compares against -1 to test for errors. The result is that beam dumps core due to the code treating these negative numbers as success indicators, as counts/offsets of bytes written, etc. thereby corrupting its own internal data structures. To fix this, introduce a portability macro to test the result of socket system calls. The test remains unchanged on Windows but for other platforms the macro considers all return values that are less than zero to be errors. Though POSIX specifies that errors from these system calls are indicated by a return value of -1, treating all negative return values as errors is also safe, as described in detail below. In networking programming, treating all negative return values from system calls as errors is very common practice -- see the examples in W. Richard Stevens's popular and highly lauded network programming books, for example. For system calls that return 0 to indicate success, treating all negative numbers as errors is safe because only 0 is specified to indicate success. These include: getsockname getpeername getsockopt gethostname bind listen connect close shutdown Likewise, for system calls that return non-negative numbers to indicate success, treating all negative numbers as errors is also safe. These functions typically return signed integers of type ssize_t, and they treat any parameters of type size_t that cannot fit within the ssize_t return value, such as numbers of bytes to read or write, as errors (specifically EINVAL). For example, in the "ERRORS" section of the man page for writev from several varieties of Linux, it states that EINVAL is returned when the total length of the I/O is more than can be expressed by the ssize_t return value. These calls include: recv recvfrom recvmsg writev send sendto sendmsg Finaly, the socket() system call is also similar to these in that it returns a signed type (int) with all non-negative return values indicating success, so treating all negative return values as errors is safe.
2010-05-27Moved nodelay workaround for linux, as it seems to only work if you doIngela Anderton Andin
it before sending the fatal alert, even though documentation suggests the socket will be flushed on linux as an effect of setting the nodelay option.
2010-05-27OTP-8563: Decode/Encode of Counter64 errorMicael Karlberg
OTP-8574: Option to allow invalid row OIDs OTP-8594: Make snmp forward compatible with new crypto OTP-8595: snmpc fails to compile BITS with "holes" OTP-8646: Agent-info lookup raise condition OTP-8648: MIB server cache gc changed to on by default
2010-05-27Cleanup branch 'bg/compiler-cover-and-clean'Kostis Sagonas
Commit 329f737c03db51918361e127560a6f700e99028e removed some unused code, but also introduced the need for further clean-ups. Fix a spec so that its return corresponds to reality. Take out code that will never match from a function.
2010-05-26OTP-8649 change in public_key apiIngela Anderton Andin
2010-05-26Preparing for new version.Niclas Eklund
2010-05-26Fix race condition when an other connection is started before a channel is ↵Niclas Eklund
opened in the first connection.
2010-05-26Aligning error message with used versionNiclas Eklund
2010-05-26Test ssl_session_cache_api.Ingela Anderton Andin
2010-05-26Seems we need "nodelay socket flush" on some linux platforms after all.Ingela Anderton Andin
2010-05-26Avoid apparently timing issus when closing down opensslIngela Anderton Andin
2010-05-26Added option list argument to the init function in ssl_session_cache_api.Ingela Anderton Andin
2010-05-26Merge branch 'mh/escript-erlang-mode' into devErlang/OTP
* mh/escript-erlang-mode: Associate files using interpreter "escript" with Erlang mode
2010-05-26Merge branch 'cb/emacs-eunit-run-current-test' into devErlang/OTP
* cb/emacs-eunit-run-current-test: Add Emacs EUnit utility feature: run current test function.
2010-05-26Merge branch 'mh/fix-record-indentation' into devErlang/OTP
* mh/fix-record-indentation: Fix indentation of records with line breaks inside lists
2010-05-26Merge branch 'mh/inferior-erlang-cmd-uniq' into devErlang/OTP
* mh/inferior-erlang-cmd-uniq: inferior-erlang: specify command to run, uniquify buffer names
2010-05-26Merge branch 'mh/erlang-mode-imenu-arity' into devErlang/OTP
* mh/erlang-mode-imenu-arity: Let imenu distinguish functions by arity
2010-05-26Merge branch 'mh/erlang-mode-map-init' into devErlang/OTP
* mh/erlang-mode-map-init: Set erlang-mode-map when loading erlang.el
2010-05-25Enhancements and fixes due to coverage investegation.Ingela Anderton Andin
2010-05-25Enhanced protocol version handling.Ingela Anderton Andin
2010-05-25Better coverage.Ingela Anderton Andin
2010-05-25Better coverageIngela Anderton Andin
2010-05-25OTP-8563: Decode/Encode of Counter64 error.Micael Karlberg
OTP-8574: Option to allow invalid row OIDs. OTP-8594: Make snmp forward compatible with new crypto. OTP-8595: snmpc fails to compile BITS with "holes". OTP-8646: Agent-info lookup raise condition. OTP-8648: MIB server cache auto-gc chenged to on by default.
2010-05-24Set erlang-mode-map when loading erlang.elMagnus Henoch
Create and assign the erlang-mode keymap to erlang-mode-map once erlang.el is loaded, not the first time it is used. This way of doing it follows the Emacs Lisp convention described at http://www.gnu.org/software/emacs/manual/html_node/elisp/Tips-for-Defining.html and also makes it easier for users to customize the keymap. Remove the now unneeded functions erlang-keymap-init and erlang-mode-commands. Also move the definition of inferior-erlang-use-cmm, so it is available when defining erlang-mode-map.
2010-05-24Merge branch 'bg/wx_objects' into devErlang/OTP
* bg/wx_objects: wx_objects: Fix calls to unexported gen_server:print_event/3 OTP-8638 bg/wx_objects
2010-05-24Merge branch 'fm/file-operations' into devErlang/OTP
* fm/file-operations: Update preloaded modules Add file:advise/4 - a wrapper to the POSIX syscall posix_fadvise Add file:datasync/1 for syncing file contents only sys.h: Correct the get_int64() macro OTP-8637 fm/file-operations The functions file:advise/4 and file:datasync/1 have been added. (Thanks to Filipe David Manana.)
2010-05-24Fix deadlock in spawn driver on windowsSverker Eriksson
A misbehaving port program that does not read all data written to the port may deadlock the scheduler thread when it calls port_close. The chosen solution was to use the new function CancelIoEx if it exist (Vista) otherwise let the spawn driver wait for a short while (10ms) and then to spawn a thread that will wait for the port program to exit.
2010-05-24erl_nif: add make_atom_len, make_existing_atom_len and make_string_lenTuncer Ayaz
Add new NIF API functions - enif_make_atom_len - enif_make_existing_atom_len - enif_make_string_len These are basically the same as enif_make_atom, enif_make_existing_atom and enif_make_string except that the new functions require a length parameter instead of a null-terminated C-string. Signed-off-by: Tuncer Ayaz <[email protected]>
2010-05-24erl_nif: add enif_get_atom_length and enif_get_list_lengthTuncer Ayaz
Add new NIF API functions - enif_get_atom_length - enif_get_list_length Signed-off-by: Tuncer Ayaz <[email protected]>
2010-05-24erl_nif: add enif_is_list and enif_is_tupleTuncer Ayaz
Add new NIF API functions - enif_is_list - enif_is_tuple Signed-off-by: Tuncer Ayaz <[email protected]>