Age | Commit message (Collapse) | Author |
|
* rokob/eliminate-duplication-app-controller:
Add helper function to reduce code duplication
OTP-12524
|
|
* nox/docs-re-unicode:
Fix documentation about character types in unicode mode
OTP-12521
|
|
into maint
* kellymclaughlin/crypto-aes-cfb-flexible-key-size/OTP-12467:
Accept all valid key sizes in aes_cfb functions
|
|
* fishcakez/runtime_tools/dbg/OTP-12517:
Ensure dbg tracer exits when dbg is stopped
|
|
* peppe/common_test/missing_start_flag_in_doc:
Add missing -group flag in ct_run help text
OTP-12433
|
|
Previously the tracer might receive an 'EXIT' message in the trace
receive loop and treat it as garbage.
Test uses a custom dbg process handler to reliably recreate the
race condition, i.e. the message order {trace, ..}, {'EXIT, ..}.
|
|
* nifoc/inet_doc_fixes:
Fix typos ("received to the socket")
|
|
'origin/peppe/common_test/include_file_problems' into maint
* origin/peppe/common_test/include_file_problems:
Fix failing test case
Add valid include path to epp in erl2html2 and fix crashing code
OTP-12419
|
|
* raimo/infinite-loop-gethostbyname/OTP-12133:
Remove infinite loop in inet:gethostbyname_tm/4
|
|
Behaviour of character types \d, \w and \s has always been to not match characters
with value above 255, not 128, i.e. they are limited to ISO-Latin-1 and not ASCII.
|
|
* ethercrow/export_gen_udp_socket:
Export type gen_udp:socket/0
|
|
|
|
* ia/ssl/delete-vs-remove:
ssl: remove -> delete
|
|
|
|
* richcarl/shell-module-md5-info:
make c:m/1 show module MD5
OTP-12500
|
|
* siri/cuddle-with-tests:
[sasl] Make test unreliable of kernel.appup
|
|
* stevendanna/eldap-anon-auth-fix:
Correctly process anon_auth option for eldap:open()
|
|
Correct mistake
|
|
* studzien/ct_cover_paths:
Add tests for absolute incl_dirs path and for excl_dirs
[ct_cover] Fix paths of incl_dirs in cover spec
OTP-12498
|
|
An erroneous lookup option is needed to trigger the bug, and that can only
enter the system from a parsed file e.g .inetrc.
Pinpointed by Emil Holmström
|
|
|
|
Complements commit 450773958165539951cd431a9233ce7666ec20e2
|
|
I was going through application_controller.erl looking for why
something was behaving a certain way, saw a comment about removing
this duplicated code one day, and decided to move that a step forward.
|
|
* emauton/mnesia_create_table_docfix:
Fix index for #person.address in create_table/2
|
|
* crownedgrouse/fix_mnesia_subscribe_doc:
Fix xml doc return value mnesia:(un)subscribe
|
|
* origin/hb/dialyzer/fix_map_type/OTP-12472:
[dialyzer] Fix a bug concerning map() types
|
|
|
|
'dumbbell/mnesia-hang-if-remote-stopped-after-proto-negotiation' into maint
* dumbbell/mnesia-hang-if-remote-stopped-after-proto-negotiation:
mnesia: Check nodes after protocol negotiation
OTP-12473
|
|
During Mnesia startup, after protocol negotiation, the list of connected
nodes is written to "recover_nodes". This list is later used to merge
the schema.
If Mnesia was stopped on a remote node between the protocol negotiation
and the moment the list is stored in "recover_nodes", the remote node
is still considered running: the value of "recover_nodes" stored during
mnesia_down/1 is overwritten. Therefore, this node may be used to
acquire a write lock on the schema in order to perform the merge. In
this case, the remote node never answers to the lock request and Mnesia
hang forever (application:start(mnesia) never returns).
To fix the problem, we check the list one last time and remove from it
all nodes where Mnesia is stopped. And because there is still a chance
for missing mnesia_down event, handle_cast({mnesia_down, ...}, ...)
writes to recover_nodes again, in addition to mnesia_down/1.
|
|
It is allowed in Erlang/OTP 17 to redefine the map() types. However,
Dialyzer did not handle local map() types correctly.
|
|
|
|
For comparison with file time stamps os:timestamp makes more sense
and is present in 17 as well as 18.
|
|
Previously, it was impossible to set anon_auth to true. Making it
difficult to anonymously bind:
1> {ok, Conn} = eldap:open(["localhost"], [{anon_auth, true}]).
{ok,<0.34.0>}
2> eldap:simple_bind(Conn, "", "").
{error,anonymous_auth}
With this change:
1> {ok, Conn} = eldap:open(["localhost"], [{anon_auth, true}]).
{ok,<0.34.0>}
2> eldap:simple_bind(Conn, "", "").
ok
NB: Users could previously work around this by calling simple_bind as
follows:
eldap:simple_bind(Conn, anon, anon)
|
|
* ia/ssl/pem-cache/OTP-12464:
ssl: Improve PEM cache by validating entries
|
|
The PEM cache is now validated by a background process, instead of
always keeping it if it is small enough and clearing it otherwhiss.
That strategy required that small caches where cleared by API function
if a file changes on disk.
However document the clearing API function as it can still be usefull.
|
|
|
|
* scrapinghub/httpc_set_cookie_with_empty_values:
inets: parse correctly 'Set-Cookie' header with empty value
OTP-12455
|
|
Despite the confusion caused by the name, aes_cfb_8_crypt and
aes_cfb_128_crypt can use key lengths of 128, 192, or 256. The integer
in the function name refers to the block size for CFB mode. Change
the aes_cfb_8_crypt and aes_cfb_128_crypt functions to accept and use
keys of length 128, 192, or 256. Also augment the existing testing for
these functions using the NIST test vectors for the additional key
lengths to ensure the changes function properly.
|
|
Since '=:=' is cheaper than '==', the compiler tries to replace
'==' with '=:=' if the result of comparison will be the same.
As an example:
V == {a,b}
can be rewritten to:
V =:= {a,b}
since the literal on the right side contains no numeric values
that '==' would compare differently to '=:='.
With the introduction of maps, we will need to take them into
account. Since the comparison of maps is planned to change in 18.0,
we will be very conservative and only do the optimization if
both keys and values are non-numeric.
|
|
|
|
httpc_cookie should parse cookies with empty values
and no attributes set in the 'Set-Cookie' headers.
|
|
We must not convert map patterns to map expressions.
|
|
In code such as:
case {a,Map} of
{a,#{}}=T ->
T
end
we must NOT rewrite a map pattern to a map expression like this:
case Map of
#{} ->
{a,#{}}
end
because the pattern '#{}' will match any map, but the expression
'#{}' will construct an empty map.
|
|
* ia/ssl/self-signed-root/OTP-12449:
ssl: Remove selfsigned anchor certificate from the certificate chain
|
|
A selfsigned trusted anchor should not be in the certifcate chain passed to
the certificate path validation.
Conflicts:
lib/ssl/src/ssl_certificate.erl
|
|
|
|
|
|
|
|
Gracefully handle invalid content-lenght headers instead of
crashing in list_to_integer.
|
|
* 0xAX/inets-typo-fix:
lib/inets: fix typo in httpd_load_test example
|