Age | Commit message (Collapse) | Author |
|
Also implement the same option for the legacy undocumented functions
inet:getif/1,getiflist/1,ifget/2,ifset/2.
The arity 1 functions had before this change got signatures that
took a socket port that was used to do the needed syscall, so now
the signature was extended to also take an option list with the
only supported option {netns,Namespace}. The Socket argument
variant remains unsupported.
For inet:getifaddrs/1 the documentation file was changed to old
style function name definition so be able to hide the Socket
argument variant that is visible in the type spec.
The arity 2 functions had got an option list as second argument.
This list had to be partitioned into one list for the namespace
option(s) and the other for the rest.
The namespace option list was then fed to the already existing
namespace support for socket opening, which places the socket
in a namespace and hence made all these functions that in
inet_drv.c used getsockopt() work without change.
The functions that used getifaddrs() in inet_drv.c had to be
changed in inet_drv.c to swap namespaces around the
getifaddrs() syscall. This functionality was separated into
a new function call_getifaddrs().
|
|
* richcarl/erts/erl_init-cleanup/OTP-15336:
sasl: Order systools_make:preloaded modules alphabetically
Update preloaded modules
Move calling on_load for preloaded modules to erl_init
Make erl_init.c pass the boot module to erl_init.beam
Remove obsolete comment text
Remove undocumented and unused -# display_items emulator option
Remove broken and undocumented boot function emulator option
Replace remaining references to otp_ring0 with erl_init
Drop otp_ring0, using erl_init instead
Update preloaded modules
Add erl_init module
Conflicts:
erts/emulator/beam/erl_init.c
erts/preloaded/ebin/erl_prim_loader.beam
erts/preloaded/ebin/erl_tracer.beam
erts/preloaded/ebin/erlang.beam
erts/preloaded/ebin/erts_code_purger.beam
erts/preloaded/ebin/erts_dirty_process_signal_handler.beam
erts/preloaded/ebin/erts_internal.beam
erts/preloaded/ebin/erts_literal_area_collector.beam
erts/preloaded/ebin/init.beam
erts/preloaded/ebin/otp_ring0.beam
erts/preloaded/ebin/prim_buffer.beam
erts/preloaded/ebin/prim_eval.beam
erts/preloaded/ebin/prim_file.beam
erts/preloaded/ebin/prim_inet.beam
erts/preloaded/ebin/prim_zip.beam
erts/preloaded/ebin/zlib.beam
|
|
The macros for the BSD style option names had accidentally
wound up outside the option parsing loop, causing unclear
behaviour and Valgrind errors.
|
|
|
|
Add support for otp level socket options rcvbuf, rcvctrlbuf and
sndctrlbuf. These options define default sizes for these
buffers.
The 'rcvbuf' is used when receiving messages when calling
the recv, recvfrom and recvmsg functions.
The 'rcvctrlbuf' is used for the control message header info
when calling the recvmsg function.
The 'sndctrlbuf' is used for the control message header info
when calling the sendmsg function.
OTP-14831
|
|
The test cases has been slighly regrouped. The to-group
has moved into the api-group.
OTP-14831
|
|
Add a number of *basic* operation (connect, accept, send and recv).
All of which are not yet implemented (skipped with 'not-yet-implemented').
All of these are basic and only local (both sides on the same host).
OTP-14831
|
|
Added proper recv timeout handling.
Made use of the enif_select(mode = cancel) feature. Each
time a timeout expires, the "active" recv (the surrent reader
select) has to be cancelled. Not yet tested...something for
the new test suite...
Also, added support for getopt(controlling_pprocess) that,
for some reason, was not yet implemented.
OTP-14831
|
|
Add a proper but very basic test suite.
The only (6) test cases now are very basic (open-close and
send-receive).
OTP-14831
|
|
|
|
|
|
|
|
|
|
|
|
Since logger has now knowledge of the handler specific data ('config'
field in the handler configuration map), it can not merge this data
structure with default or old values upon configuration
change. Instead, the handler callback changing_config must do
this. Earlier, this callback did not reflect if the configuration
change was initiated by a call to set_handler_config or
update_handler_config, so the handler did not know if unspecified
fields should get default values or the values from the existing
configuration.
To overcome this problem, the new parameter SetOrUpdate is added to
this callback. If SetOrUpdate equals set, then default values should
be used. If SetOrUpdate equals update, then existing configuration
values should be used.
|
|
Added proper send timeout handling.
Made use of the enif_select(mode = cancel) feature. Each
time a timeout expires, the "active" send (the surrent write
select) has to be cancelled.
OTP-14831
|
|
Added proper connect and accept timeout handling.
Made use of the enif_select(mode = cancel) feature. Each
time a timeout expires, the previous operation (connect or accept)
has to be cancelled (actually its the select operation that has
to be cancelled). Only partial implementation of cancel for now
(connect and accept). More to follow...
OTP-14831
|
|
|
|
* raimo/receive-TOS-TCLASS/ERIERL-187/OTP-15145:
Elaborate the disclaimer for 'pktoptions'
Improve platform filter
Fix endianness bug for CMSG parsing
|
|
|
|
|
|
Added some more tests for sendmsg (with cmsghdr).
OTP-14831
|
|
Add more debug printouts for the new sendmsg. Also added
new (erlang) types with doc.
OTP-14831
|
|
Added function sendmsg/2,3,4. Actually worked on the first try.
Something must be wrong...
Still no supported cmsghdr's (only support headers where the
data part is already a binary, which therefor does not require
any processing). So if the cmsghdrs actually work is unclear.
OTP-14831
|
|
Added processing or more cmsg headers (for more options).
Now (also) supports: socket:timestamp.
Also various fixes and cleanups.
For some reason calling getopt(Sock, 0, {13, int}) (or similar)
fails with badarg even though the nif-function (nif_getopt) actually
returns a valid value (for instance: {ok, 0}).
OTP-14831
|
|
Added decoding of the "known" control message options: pktinfo,
recvtos, recvttl and recvorigdstaddr).
OTP-14831
|
|
It seems to work, with atleast some of the cmsg options.
More testing needed...
OTP-14831
|
|
Added support for ip level socket option SENDSRCADDR.
This option requires sendmsg to actually use, so we
cannot test this fully at the moment.
OTP-14831
|
|
Added support for ip level socket option RECVORIGDSTADDR.
This option requires recvmsg to actually use, so we cannot
test this fully at the moment (although both set and get works).
OTP-14831
|
|
Added support for ip level socket option RETOPTS.
OTP-14831
|
|
Added support for ip level socket option TRANSPARENT.
OTP-14831
|
|
Added support for ip level socket option PKTINFO.
This option requires sendmsg and/or recvmsg to actually use,
so we cannot test this fully at the moment (although both set
and get works).
OTP-14831
|
|
Added support for the IPv6 socket option RECVERR.
To actually make use of this option, we need the recvmsg
function, which we don't have yet. Baby steps.
OTP-14831.
|
|
Added support for the IP socket option RECVERR.
To actually make use of this option, we need the recvmsg
function, which we don't have yet. Baby steps.
OTP-14831.
|
|
Added support for the IPv6 socket option ROUTER_ALERT.
Only supported for raw sockets.
OTP-14831.
|
|
Added support for the IPv6 socket option UNICAST_HOPS.
OTP-14831.
|
|
Added support for the IPv6 socket option(s) FLOWINFO.
The option returns with einval when calling setsockopt,
so either you need to be a privileged user to update, or its not
actually possible to update this option (even though it says
nothing about that in the man page. It only talks about set).
This is the same behaviour as with DSTOPTS.
Needs furher checking.
OTP-14831.
|
|
Added support for the IPv6 socket option(s) DSTOPTS.
The option returns with einval when calling setsockopt,
so either you need to be a privileged user to update, or its not
actually possible to update this option (even though it says
nothing about that in the man page. It only talks about set).
This is the same behaviour as with RTHDR and HOPLIMIT.
On FreeBSD, it says that HOPOPTS requires superuser privileges.
Needs furher checking.
OTP-14831.
|
|
Added support for the IPv6 socket option(s) AUTHHDR and HOPOPTS.
Its possible that the option is AUTHHDR is obsolete. It says so in
the include files and when trying to get it (getsockopt) it returns
with enoprotoopt.
The option HOPOPTS returns with einval when calling setsockopt,
so either you need to be a privileged user to update, or its not
actually possible to update this option (even though it says
nothing about that in the man page. It only talks about set).
This is the same behaviour as with RTHDR and HOPLIMIT.
On FreeBSD, it says that HOPOPTS requires superuser privileges.
Needs furher checking.
OTP-14831.
|
|
Added support for the IPv6 socket option RTHDR.
On FreeBSD this option requires superuser privileges to update.
There is no mention of this on linux, but its still not possible
to update (einval), so I assume that its the same there.
OTP-14831.
|
|
Added support for the IPv6 socket option RECVPKTINFO.
This option is called PKTINFO on FreeBSD, so that value
will also be accepted.
OTP-14831.
|
|
Added support for the IPv6 socket option MULTICAST_LOOP.
OTP-14831.
|
|
Added support for the IPv6 socket option MULTICAST_IF.
OTP-14831.
|
|
Added support for the IPv6 socket option MULTICAST_HOPS.
OTP-14831.
|
|
Added support for ip level socket option RECVOPTS.
OTP-14831
|
|
Added support for ip level socket option FREEBIND.
Note that there is an option available on FreeBSD called
IP_BINDANY, which seems to have similar properties (FREEBIND
is *not* available on FreeBSD). There are some restrictions
for this option though (which is not mentioned in the Linux
man page).
OTP-14831
|
|
Added support for socket level socket option TIMESTAMP.
OTP-14831
|
|
Added support for socket level socket option RCVLOWAT and SNDLOWAT.
These are both a little strange, at least on Linux. See the man
pages for more info. For instance, sndlowat cannot be set on Linux.
OTP-14831
|
|
Added support for socket level socket option RCVTIMEO and SNDTIMEO.
These are both a little strange, at least on linux. See the man
pages for more info.
OTP-14831
|
|
Added support for the SCTP option INITMSG.
OTP-14831
|