Age | Commit message (Collapse) | Author |
|
|
|
|
|
Two (tcp) test cases where reworked using the command evaluator.
OTP-14831
|
|
Two test cases where reworked using the command evaluator.
OTP-14831
|
|
Begin rework socket test suite using a command evaluator.
OTP-14831
|
|
bmk/20180918/nififying_inet/OTP-14831
|
|
Added a test case that specifically tested setting
the controlling_process.
Also, ensure that invalid updates of controlling-process
(not owner) actually fails.
OTP-14831
|
|
Before allowing setopt(Sock, opt, controlling_process, NewPid),
verify that the caller is actually the current controlling_process.
OTP-14831
|
|
The connect timeout test case uses the listen backlog argument
to test connect timeout (its set to 1). The idea is that when
the server backlog is full, it should not reply. The client attempting
to connect will then get a timeout.
But as it turns out, this behaviour is not "set in stone". On FreeBSD
11.2, the result is instead a 'econnreset'.
It should also be noted that this local connections. That is, both end
of the connection is on the same machine.
So, test case has been updated to also accept a econnreset (even
though that is not what it is testing).
OTP-14831
|
|
Add explicitly handling the default case, when not flags
are provided (value of zero).
OTP-14831
|
|
Internally in the socket module we accessed domain, type and
protocol for an open socket. But as it turns out, domain (family)
is not actually available as a socket option on all platforms.
FreeBSD in this case. So, since we store these values in the socket
descriptor anyway, we switch to use these values for our internal
use instead.
OTP-14831
|
|
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
|
|
Removed some cruft. Also tried, without success, to fix the
build issue ("Error file: cannot find module exporting type").
It may be because of a spec-file issue.
Finally fixed the setopt doc. It did not have a seperate clause
for clause 8 (the fallback clause that takes level and key as
integer).
|
|
Added missing SCTP type (for assoc id) and updated sento doc
(missing clauses).
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
|
|
Make sure the current whatever (writer, reader or writer) is
not the closer pid before *attempting* to sending the abort message.
And if that fails, issue a warning message (not aborting).
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
|
|
bmk/20180918/nififying_inet/OTP-14831
Also needed to "revert" two of the chnages, related to assoc id.
This is in FreeBSD defined as an uint32 but on linux as a int32.
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
Added some more tests for sendmsg (with cmsghdr).
OTP-14831
|
|
Some cleanup and also added a guard to sendmsg to ensure
that only ctrl (cmsg hdr) with actual content will be
"sent down".
OTP-14831
|
|
Fixed various issues with regard to encode of CMsgHdrs
during sendmsg.
OTP-14831
|
|
Updated the (send) cmsghdr type and the handling of it
(in the nif code). Still not tested!
Removed the is_loaded nif function.
Tried to get fix the doc build problem (socket.erl *i think*),
which causes socket.html generation to fail with:
"cannot find module exporting type"
To solve this I tried to run dialyzer on preloaded, and ran into
problems with enc_setopt_value. Update various specs and types
to "solve" this (which did not work).
Updated the nif-stub functions to make dialyzer happy.
|
|
Added support for (recvmsg) control message ipv6_pktinfo, for
level = ipv6 and type = pktinfo. This is enabled by setting the
socket option: recvpktinfo for level ipv6.
Not yet tested!
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 preliminary support for function recvmsg. At the moment
this only works on *nix (Windows has another function, WSARecvMsg,
which has a slightly different API).
Also we have "no" cmsg decode at the moment (just level and type).
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
|
|
Updated the socket type. No longer store "stuff" that can
be retrieved by other means (domain, type and protocol).
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 ip level socket option HDRINCL.
As this option is raw only, it has not yet been tested!
OTP-14831
|
|
Added support for ip level socket option MSFILTER.
This option has not been tested *in any way*...
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 ADDRFORM.
Only allowed for IPv6 sockets that are connected and bound to a
v4-mapped-on-v6 address.
OTP-14831.
|
|
Added support for the IPv6 socket option ROUTER_ALERT.
Only supported for raw sockets.
OTP-14831.
|