aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/test/socket_server.erl
AgeCommit message (Collapse)Author
2018-09-18[socket-nif] Add support for socket (level ip) option recverrMicael Karlberg
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.
2018-09-18[socket-nif] Add support for socket (level ipv6) option router_alertMicael Karlberg
Added support for the IPv6 socket option ROUTER_ALERT. Only supported for raw sockets. OTP-14831.
2018-09-18[socket-nif] Add support for socket (level ipv6) option unicast_hopsMicael Karlberg
Added support for the IPv6 socket option UNICAST_HOPS. OTP-14831.
2018-09-18[socket-nif] Add support for socket (level ipv6) option flowinfoMicael Karlberg
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.
2018-09-18[socket-nif] Add support for socket (level ipv6) option dstoptsMicael Karlberg
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.
2018-09-18[socket-nif] Add support for socket (level ipv6) option authhdr & hopoptsMicael Karlberg
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.
2018-09-18[socket-nif] Add support for socket (level ipv6) option rthdrMicael Karlberg
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.
2018-09-18[socket-nif] Add support for socket (level ipv6) option recvpktinfoMicael Karlberg
Added support for the IPv6 socket option RECVPKTINFO. This option is called PKTINFO on FreeBSD, so that value will also be accepted. OTP-14831.
2018-09-18[socket-nif] Add support for socket (level ipv6) option multicast_loopMicael Karlberg
Added support for the IPv6 socket option MULTICAST_LOOP. OTP-14831.
2018-09-18[socket-nif] Add support for socket (level ipv6) option multicast_ifMicael Karlberg
Added support for the IPv6 socket option MULTICAST_IF. OTP-14831.
2018-09-18[socket-nif] Add support for socket (level ipv6) option multicast_hopsMicael Karlberg
Added support for the IPv6 socket option MULTICAST_HOPS. OTP-14831.
2018-09-18[socket-nif] Add support for socket (level ip) option recvoptsMicael Karlberg
Added support for ip level socket option RECVOPTS. OTP-14831
2018-09-18[socket-nif] Add support for socket (level ip) option freebindMicael Karlberg
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
2018-09-18[socket-nif] Add support for socket (level socket) option timestampMicael Karlberg
Added support for socket level socket option TIMESTAMP. OTP-14831
2018-09-18[socket-nif] Add support for socket (level socket) option(s) [rcv|snd]lowatMicael Karlberg
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
2018-09-18[socket-nif] Add support for socket (level socket) option(s) [rcv|snd]timeoMicael Karlberg
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
2018-09-18[socket-nif] Add support for socket (level sctp) option initmsgMicael Karlberg
Added support for the SCTP option INITMSG. OTP-14831
2018-09-18[socket-nif] Add support for socket (level sctp) option maxsegMicael Karlberg
Added support for the SCTP option MAXSEG. OTP-14831
2018-09-18[socket-nif] Add (partial) support for socket (level sctp) option rtoinfoMicael Karlberg
Added support for the SCTP option RTOINFO. We have the same questions for this option as for ASSOCINFO. Maybe the assoc field shall be made 'out' only (that is, it will be ignored for setopt). The assoc id used will be that which is stored in the descriptor (how do we get it to begin with?). Questions, questions... OTP-14831
2018-09-18[socket-nif] Add (partial) support for socket (level sctp) option associnfoMicael Karlberg
Added support for the SCTP option ASSOCINFO. This option is a bit tricky. As the underlying structure (sctp_assocparams) contains the assoc_id, it begs the question what happens if this option is fetched for: * The own assoc (which means that we might have the assoc id in the descriptor and can initiate that part of the struct accordningly). * Another assoc: From assoc A asks for info with assoc_id set to that of assoc B. * The "owning" endpoint. * Another endpoint (an endpoint to which the assoc does not belong). So, if the user calls socket:[getopt|setopt] for an association socket, shall we require that the assoc_id field is set to -1? Or not set at all and therefor filled in automatically by the nif-code? And, if the user calls socket:[getopt|setopt] for an endpoint socket, shall we require that the assoc_id field is set to a valid id? Or shall it not be allowed? Questions, questions... OTP-14831
2018-09-18[socket-nif] Add support for socket (level sctp) option disable_fragmentsMicael Karlberg
Added support for the SCTP option DISABLE_FRAGMENTS. OTP-14831
2018-09-18[socket-nif] Add support for socket (level sctp) option eventsMicael Karlberg
Added support for the SCTP option EVENTS. OTP-14831
2018-09-18[socket-nif] Add support for socket (level ipv6) option mtuMicael Karlberg
Added support for the VPv6 socket option MTU. OTP-14831.
2018-09-18[socket-nif] Add support for multiple acceptor processesMicael Karlberg
Its now possible to have multiple (simultaneous) acceptor processes for the same listening socket. OTP-14831
2018-09-18[socket-nif] Add support for socket (level socket) option reuseportMicael Karlberg
Added support for socket level socket option REUSEPORT. OTP-14831
2018-09-18[socket-nif] Add support for socket (level socket) option bindtodeviceMicael Karlberg
Added support for socket level socket option BINDTODEVICE. OTP-14831
2018-09-18[socket-nif] Add support for socket (level ip) option recvttlMicael Karlberg
Added support for the IP option RECVTTL. OTP-14831
2018-09-18[socket-nif] Add support for socket (level ip) option nodefragMicael Karlberg
Added support for the IP option NODEFRAG. OTP-14831
2018-09-18[socket-nif] Add support for socket (level ip) option multicast_allMicael Karlberg
Added support for the IP option MULTICAST_ALL. OTP-14831
2018-09-18[socket-nif] Add support for socket (level ip) option mtu_discoverMicael Karlberg
Added support for the IP option MTU_DISCOVER. OTP-14831
2018-09-18[socket-nif] Add support for socket (level ip) option mtuMicael Karlberg
Added support for the IP option MTU. OTP-14831
2018-09-18[socket-nif] Add support for socket (level ip) option multicast_ifMicael Karlberg
Added support for the IP option MULTICAST_IF. OTP-14831
2018-09-18[socket-nif] Add support for socket (level ip) option multicast_ttlMicael Karlberg
Added support for the IP option MULTICAST_TTL. OTP-14831
2018-09-18[socket-nif] Add support for socket (level ip) option multicast_loopMicael Karlberg
Added support for the IP option MULTICAST_LOOP. OTP-14831
2018-09-18[socket-nif] Add support for socket (level socket) option oobinlineMicael Karlberg
Added support for socket level socket option oobinline (both get and set). OTP-14831
2018-09-18[socket-nif] Add support for socket (level socket) option peek_offMicael Karlberg
The socket option (level socket) peek_off is now supported. OTP-14831
2018-09-18[socket-nif] Add support for socket (level socket) option debugMicael Karlberg
The socket option (level socket) debug is now supported. To actually set this option, the user must have the proper "authority" (CAP_NET_ADMIN capability or an effective user ID of 0). OTP-14831
2018-09-18[socket-nif] Add support for socket (level socket) option acceptconnMicael Karlberg
The socket (level socket) option acceptconn is now supported (for getopt). OTP-14831
2018-09-18[socket-nif] Add support for socket (level socket) options domain and protocolMicael Karlberg
Make it possible to *get* the socket options domain and protocol (in addition to type). OTP-14831
2018-09-18[socket-test-nif] Testing with the (recv/recvfrom) peek flagMicael Karlberg
2018-09-18[socket-nif] Fixed (dgram) recvMicael Karlberg
Fixed handling of recvfrom (used by dgram sockets). Had forgot to do select(read) when we got block from the call to recvfrom. Argh! Also updated the (simple) test server and client to to be able to use udp (dgram+udp). OTP-14831
2018-09-18[socket-nif] Restructure of the socket (test) serverMicael Karlberg
2018-09-18[socket-nif] Fixed (stream) recvMicael Karlberg
Fixed handling of closed in the recv function. We still need to properly handle when we get 0 bytes of data for other types ock sockets then stream (its valid for dgram for instance). OTP-14831
2018-09-18[socket-nit-test] Added some more test codeMicael Karlberg
Added some more features o the simple socket test server and client. OTP-14831
2018-09-18[test-socket-nif] Add *very primitive* test progsMicael Karlberg