Age | Commit message (Collapse) | Author |
|
That is, of functions that can be configured as spawn_opt MFAs in
transport configuration.
This commits adds the spawn_local described in the parent commit, and a
route_session that assumes that the local node initiates all sessions
with Session-Id returned by diameter:session_id/1, and handles incoming
requests on the node on which the id in question was returned,
diameter:session_id/1 using node() as optional value in the Session-Id
format.
|
|
The possibility of configuring an MFA as spawn_opt was added in commit
fd285079, the callback being passed an arity-0 fun to be applied in an
appropriate handler process. Replace the fun by a tuple to be passed to
diameter_traffic:request/1, to avoid passing funs between nodes when
handler processes are remote.
A list-valued spawn_opt is now equivalent to the following configured as
{spawn_opt, {Mod, spawn_local, [Opts]}}.
spawn_local(ReqT, Opts) ->
spawn_opt(diameter_traffic, request, [ReqT], Opts).
ReqT is passed by diameter and contains information that the callback
may want to decide where to handle the request in question (which wasn't
accessible with a fun), but this information isn't exposed in a
documented way. The intention is instead to add an own callback
implementation to make use of the information.
Note that application lookup now takes place in the watchdog process in
both the list-valued (or no configuration) and mfa-valued cases. Whether
this is good, bad, or (probably) inconsequential remains to be seen.
|
|
This is the {diameter, ack} message from a transport process to its
parent that requests that every Diameter request passed to the parent be
matched by a incoming send message, the atom false replacing a message()
in the case that the request is unanswered, allowing the transport to
keep track of the number of outstanding requests.
These were added in commit ca09cf7b, and are used to implement the
message_cb config in diameter_tcp/sctp, documented in commit cefcaa5c.
This commit documents the interface, to make it available to other
transport implementations.
|
|
* maint:
Updated OTP version
Prepare release
|
|
* maint-21:
Updated OTP version
Prepare release
|
|
* maint:
kernel runtime dependency to erts
erts: Add yield via timeout to inet read_packet
erts: Don't increase buffer when sctp sndbuf is set
erts: Only change inet buffer if not set
|
|
into maint
* lukas/erts/fix_inet_buffer_auto_adjust/OTP-15651/OTP-15652:
kernel runtime dependency to erts
erts: Add yield via timeout to inet read_packet
erts: Don't increase buffer when sctp sndbuf is set
erts: Only change inet buffer if not set
|
|
* rickard/bootstrap-build-fix:
Fix bootstrap build of erl_interface
|
|
|
|
* maint:
stdlib: Correct and optimize pretty printing of strings
|
|
* john/compiler/validator-type-conflict-fix/ERL-867:
beam_validator: Express test_arity/is_tagged_tuple as type tests
beam_validator: Fix type subtraction on select_* and inequality
beam_validator: Style fix for asserts in list comprehensions
beam_validator: Infer types from bs_put instructions
beam_validator: is_map no longer needs special treatment
beam_validator: Refactor type conflict resolution
beam_validator: Refactor branch handling
beam_validator: Fix element/2 BIF handling
beam_validator: Rename get_move_term_type and clean up get_raw_type
|
|
Also adds some more aliases that contain the key length
in their name.
|
|
OTP-15602
It is allowed to set file modes for the handler to use when opening
its log file. The given modes were earlier accepted without any
checks, which could make the handler behave unexpectedly. This commit
makes sure that
* if none of write, append or exclusive is given, then append is added
* if raw is not given, it is added
* if delayed_write or {delayed_write,_,_} is not given, then
delayed_write is added
|
|
|
|
|
|
This ensures that unreachable branches are properly ignored on
repeated checks (although tuple type subtraction isn't complete
yet).
|
|
Type subtraction never resulted in the 'none' type, even when it
was obvious that it should. Once that was fixed it became apparent
that inequality checks also fell into the same subtraction trap
that the type pass warned about in a comment.
This then led to another funny problem with select_val, consider
the following code:
{bif,'>=',{f,0},[{x,0},{integer,1}],{x,0}}.
{select_val,{x,0},{f,70},{list,[{atom,false},{f,69},
{atom,true},{f,68}]}}.
The validator knows that '>=' can only return a boolean, so once it
has subtracted 'false' and 'true' it killed the state because all
all valid branches had been taken, so validation would crash once
it tried to branch off the fail label.
|
|
Verify CertificateVerify message against the handshake context and
the public key provided by the Certificate message.
Remove 'Context' argument from state handler functions and store
data in the state variable.
Refactor get_handshake_context/1 to cover all implemented cases.
Change-Id: If803e05009331d1ec7e0ba2ea2b81d917a0add6d
|
|
|
|
into maint-21
* lukas/erts/fix_inet_buffer_auto_adjust/OTP-15651/OTP-15652:
kernel runtime dependency to erts
erts: Add yield via timeout to inet read_packet
erts: Don't increase buffer when sctp sndbuf is set
erts: Only change inet buffer if not set
|
|
* rickard/make-fixes-21/OTP-15551:
Fix install phase in build system
|
|
* hans/ssh/cuddle_tests:
crypto: Filter test case ciphers for supported ones
|
|
Change code to not send a message to itself as this allows other
messages to come in between. A change in TLS code made this scenario
more likely to happen, and the symptom is that the ftp:chunk_recv/1
function hangs.
|
|
|
|
|
|
|
|
|
|
The current type conflict resolution works well for the example
case in the comment, but doesn't handle branched code properly,
consider the following:
{label,2}.
{test,is_tagged_tuple,{f,ignored},[{x,0},3,{atom,r}]}.
{allocate_zero,2,1}.
{move,{x,0},{y,0}}.
%% {y,0} is known to be {r, _, _} now.
{get_tuple_element,{x,0},2,{x,0}}.
{'try',{y,1},{f,3}}.
%% ... snip ...
{jump,{f,5}}.
{label,3}.
{try_case,{y,1}}.
%% {x,0} is the error class (an atom), {x,1} is the error term.
{test,is_eq_exact,{f,ignored},[{x,0},{y,0}]}.
%% ... since tuples and atoms can't meet, the type of {y,0} is
%% now {atom,[]} because the current code assumes the type
%% we're updating with.
{move,{x,1},{x,0}}.
{jump,{f,5}}.
{label,5}.
%% ... joining tuple (block 2) and atom (block 3) means 'term',
%% so the get_tuple_element instruction fails to validate
%% despite this being unrechable from block 3.
{test_heap,3,1}.
{get_tuple_element,{y,0},1,{x,1}}.
{put_tuple2,{x,0},{list,[{x,1},{x,0}]}}.
{deallocate,2}.
return.
This commit kills the state on type conflicts, making unreachable
instructions truly unreachable.
|
|
While complex_test made certain branching instructions a lot easier
to read, we're still using `branch_state` for many others which is
hard to read and makes it impossible to "abort" branches on type
conflicts.
This commit replaces nearly all uses of `branch_state` with a
general branching mechanism, improving readability and paving the
way for proper type conflict resolution.
|
|
|
|
Avoid traversing all of the list/string when only part of it will be
used. An explicit check that the list is flat is needed since
string:slice() accepts deep lists and more.
|
|
|
|
* rickard/make-fixes-21/OTP-15551:
Fix install phase in build system
|
|
* rickard/make-fixes-21/OTP-15551:
Fix install phase in build system
- Install of (mainly) documentation caused rebuild and
modification of the source tree even when the source
previously had been built. Also otp_patch_apply
modified the source tree when updating documentation.
This messed up the installation if installation was
performed by another user than the user that originally
built the system which not is an uncommon scenario.
- Some documentation was installed by copying files
instead of installing the files which caused faulty
access rights on files.
- The documentation was not properly updated when
applying a patch using otp_patch_apply.
|
|
* rickard/make-fixes-20/OTP-15551:
Fix install phase in build system
- Install of (mainly) documentation caused rebuild and
modification of the source tree even when the source
previously had been built. Also otp_patch_apply
modified the source tree when updating documentation.
This messed up the installation if installation was
performed by another user than the user that originally
built the system which not is an uncommon scenario.
- Some documentation was installed by copying files
instead of installing the files which caused faulty
access rights on files.
- The documentation was not properly updated when
applying a patch using otp_patch_apply.
|
|
* rickard/make-fixes-19/OTP-15551:
Fix install phase in build system
- Install of (mainly) documentation caused rebuild and
modification of the source tree even when the source
previously had been built. Also otp_patch_apply
modified the source tree when updating documentation.
This messed up the installation if installation was
performed by another user than the user that originally
built the system which not is an uncommon scenario.
- Some documentation was installed by copying files
instead of installing the files which caused faulty
access rights on files.
- The documentation was not properly updated when
applying a patch using otp_patch_apply.
|
|
* rickard/make-fixes-18/OTP-15551:
Fix install phase in build system
- Install of (mainly) documentation caused rebuild and
modification of the source tree even when the source
previously had been built. Also otp_patch_apply
modified the source tree when updating documentation.
This messed up the installation if installation was
performed by another user than the user that originally
built the system which not is an uncommon scenario.
- Some documentation was installed by copying files
instead of installing the files which caused faulty
access rights on files.
- The documentation was not properly updated when
applying a patch using otp_patch_apply.
|
|
* rickard/make-fixes-17/OTP-15551:
Fix install phase in build system
- Install of (mainly) documentation caused rebuild and
modification of the source tree even when the source
previously had been built. Also otp_patch_apply
modified the source tree when updating documentation.
This messed up the installation if installation was
performed by another user than the user that originally
built the system which not is an uncommon scenario.
- Some documentation was installed by copying files
instead of installing the files which caused faulty
access rights on files.
- The documentation was not properly updated when
applying a patch using otp_patch_apply.
|
|
Change-Id: I09c0501ea790941001b11a3f6d12a96f18da2bea
|
|
Implement validation of client certificates in state
'wait_cert'.
Implement state 'wait_cv'.
Clean up handler functions.
Change-Id: I5c410bf7afe34632f27fabcd61670764fedb105d
|
|
Test client authentication when client responds with empty
Certificate.
Change-Id: I725ae60c6d097ca13c5f4354e35377ecacf98dea
|
|
Implement state 'wait_cert' with its handler function
do_wait_cert/2.
Send CertificateRequest if peer verification is enabled.
Send Alert 'certificate required' if client answers with empty
Certificate and option 'fail_if_no_peer_cert' is set to true.
Change-Id: I72c73bcb6bc68ea60e6fe41cdd29ccfe40d18322
|
|
Change-Id: I5fdade8474147d05bc12d28fec91a47d4fd6e73b
|
|
Add missing alert to description_atom/1.
Function clauses ordered by value of the alert.
Change-Id: Ibb68ea261c42070c757b2815abd3f7b179880128
|
|
- Install of (mainly) documentation caused rebuild and
modification of the source tree even when the source
previously had been built. Also otp_patch_apply
modified the source tree when updating documentation.
This messed up the installation if installation was
performed by another user than the user that originally
built the system which not is an uncommon scenario.
- Some documentation was installed by copying files
instead of installing the files which caused faulty
access rights on files.
- The documentation was not properly updated when
applying a patch using otp_patch_apply.
|
|
* peterdmv/ssl/hello-retry-request/OTP-15590:
ssl: Fix type spec for handshake_history()
ssl: Add tests for hello_retry_request and groups
ssl: Implement 'hello_retry_request'
Change-Id: I04ad2860d0ba81462a1e36c7d6fcee6bc5c98c32
|
|
|
|
* sverker/erl_docgen/prettify-cfunc-docs/OTP-15637:
erl_docgen: Prettify c-function argument lists
erl_docgen: Indent c-function line continuations
|
|
Continuation of d92eb79322. Erlang/OTP 21.3 warned on
those cases and now we will raise on Erlang/OTP 22.0.
|
|
The element type can not be extracted before the tuple type has
been updated.
|