| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A distribution plug-in that implements the boilerplate
for distribution using EPMD over the inet address family.
inet6 is a future exercise.
inet_epmd_dist itself can take plug-ins that implement
the socket stuff, and it can itself act as a plug-in
to itself that mimics the default -proto_dist inet_tcp.
Also implement a plug-in to inet_epmd_dist: inet_epmd_socket
that implements the regular inet_tcp_dist distribution but
over the socket API.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
low_watermark is a local inet_drv option, not to be confused
with SO_RCVLOWAT. The inet_drv option works on the output buffer
to decide when to unblock a busy port, but the socket option
is an input threshold for when to deliver input data.
Not the same at all.
Incorrectly activating SO_RCVLOWAT on e.g a distribution socket
can block the initial distribution handshake and cause a failed
connection setup.
|
|\
| |
| |
| | |
'bmk/kernel/20221208/bind_to_device_value_type_conflict/24/OTP-18357' into maint
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently we have a value type conflict:
prim_inet: binary()
socket: string()
So, we add a value type translation for bind-to-devic from
binary() -> string().
OTP-18357
|
|\ \
| | |
| | |
| | | |
into maint
|
| | |
| | |
| | |
| | |
| | |
| | | |
Adjust server shutdown to produce a "nicer" termination.
OTP-18270
|
|\ \ \
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | | |
maint
Improve warning message format for gen_tcp_socket.
OTP-18317
|
| |/
| |
| |
| |
| |
| | |
Improve (unknown event) warning message from gen_tcp_socket.
OTP-18317
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
into maint-24
* bmk/kernel/20220427/gen_tcp_socket_shutdown_24.3.3/OTP-18080:
[kernel|gen-tcp|test] Tweaked shutdown (api) test case(s)
[kernel|gen-tcp-socket] Changed the behaviour of shutdown
[erts|esock] Add caller pid to the initial debug printout for close
|
|\ \ \
| | | |
| | | |
| | | | |
OTP-18080
|
| |\ \ \
| | |/ /
| |/| /
| | |/
| | |
| | | |
into maint
OTP-18080
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The behaviour of shutdown was changed to be more compatible with
the "old" gen_tcp (that is, gen_tcp used with inet_backend = inet,
which is *currently* default).
OTP-18080
|
|\ \ \
| |/ /
| | |
| | | |
OTP-18078
|
| |/
| |
| |
| |
| |
| |
| | |
When using inet-backend socket, getopts of the raw option
failed badly.
OTP-18078
|
|\ \
| |/ |
|
| | |
|
|/
|
|
| |
Co-authored-by: Björn Gustavsson <bgustavsson@gmail.com>
|
|\
| |
| |
| |
| | |
hauleth/fix/do-not-bind-on-fd-with-undefined-ifaddr
OTP-17793: Do not bind on FD with undefined ifaddr
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is behaviour exposed by the `inet` backend and also the expected
behaviour, as it allows to use `socket` backend together with systemd
socket activation where the application receives bound socket with
messages already in queue.
Close #4680
|
|/
|
|
|
|
|
|
|
|
| |
Make inet:socknames/1 handle 'new' (socket) sockets.
inet:socknames/1 for TCP and UDP are a simple wrapper
for sockname/1. And since we have not yet implemented
support for sctp in socket, that (socknames-) problem,
is not yet solvet.
OTP-17531
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
'raimo/kernel/inet-backend-socket-option-parsing/GH-5122/OTP-17580' into maint
* raimo/kernel/inet-backend-socket-option-parsing/GH-5122/OTP-17580:
Further simplify option parsing
Comment out currently dead code due to Dialyzer
Fix tests for inet_backend = socket
Rewrite option parsing to less messy
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use list comprehensions instead of hand crafted non-standard
but maybe more optimized functions. Optimize later if needed.
Also, change how the protocol name is chosen:
Use 'tcp' for domains 'inet' and 'inet6', otherwise 'default',
which should correspond to what we know about these protocol domains.
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
| |
Many of the changes here will be "fixed" in a specific
branch, but some of the tweaks will only occur here.
OTP-17156
OTP-17533
|
|
|
|
|
|
|
| |
Add 'active' to info for gen_tcp_socket and
the old 'port' socket's.
OTP-17410
|
|
|
|
|
|
|
| |
Extend the number of 'exception's we explicitly "take care of"
in the call function.
OTP-17156
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the socket is deactivated; active: once | true | N > 0 -> false
we do not cancel any select! Data that arrive during the phase when
we are in state 'recv' but are inactive is simply stored in the buffer.
Then if activated: active: false -> once | true | N > 0,
we need to check if there is something in our buffers, and maybe deliver
it to its owner. This should only occure if we are in state connected
(state 'recv' and in-active when data arrives => put data in buffer and
then enter state 'connected', since we are in-active).
OTP-17156
|
|
|
|
|
|
|
|
|
| |
It should be possible to bind to a port, but not address.
That is if you provide a port number but no address when
creating a socket (connect or listen). This case should be
mapped to #{port => Port, addr => any}.
OTP-17156
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The info function did not handle a closed socket well.
A 'closed' socket is represented by a info map with *only*
the one or two states-attributes, with the value(s) set to
[closed].
Also if the function is called for a non-socket port, behave
as well as possible (no status or statistics).
OTP-17492
[kernel] More tweaking
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* raimo/sendfile/OTP-17154:
Block enif_make_resource in destructor
Check caller for cancel
Bugfix: clean up state for connect cancel
Fix sendfile bug: offset update on FreeBSD and Solaris
Improve diagnostics
Polish the documentation
Fix select clauses
Write tests for socket:sendfile
Improve test case diagnostics
Use the right debug printout
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These sockets should be already bound for us, otherwise it is pointless
to pass them. In the end we are (almost) always able to create sockets
on our own (while we can not be able to bind it to some values). This
will check if socket is created form existing FD, and if so, it will
silently skip bind, assuming that it is already bound.
Fix #4680
|
|\ \
| | |
| | |
| | | |
OTP-17157
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Info returned by socket:info/1 *does* contain 'owner' (no need
for a case clause...
OTP-17157
|
| | |
| | |
| | |
| | | |
OTP-17157
|
|\ \ \
| |/ /
| | /
| |/
|/| |
OTP-17155
|
| |
| |
| |
| | |
OTP-17155
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add a couple of utility functions, soch as listing monitors
for a socket och which processes has monitored a socket.
Also add utility function to convert a socket to a string (to_list/1)
comparable to erlang:port_to_list/1.
OTP-17155
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The function [inet|socket]:demonitor/1 was renamed to
[inet|socket]:cancel_monitor/1.
Also removed [inet|socket]:demonitor/2. It fould not
safely perform the flush feature and the info feature
could just as well *always* be done by the /1 function.
OTP-17155
|
| |
| |
| |
| |
| |
| |
| | |
Add documentation, (more) test cases and also some interface
restructure.
OTP-17155
|
| |
| |
| |
| |
| |
| |
| |
| | |
Attempt to monitor a nonexisting (gen-tcp-socket) socket
now fails (erlang:error/1).
Also add two more test cases.
OTP-17155
|
| |
| |
| |
| |
| |
| |
| |
| | |
Add general socket monitor feature. That is, make it possible
to monitor "classic" sockets (port) as well as new gen_tcp_socket
sockets.
OTP-17155
|