aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
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
2018-09-18[socket-nif] Fixed acceptMicael Karlberg
The pid compare test was incorrect. OTP-14831
2018-09-18[socket+net-nif] Moved common functions into util filesMicael Karlberg
The common stuff, like decode and encode of common types (soch as socket address), has been moved into a util file (socket_util). The debug stuff has also been moved into its own file. Also introduced a common include file for common macros and types. OTP-14831
2018-09-18[socket+net-nif] BackupMicael Karlberg
2018-09-18[socket+net-nif] Introduced a couple of common filesMicael Karlberg
Started to move the common stuff, such as common utility functions, debug and encode / decode of basic types. OTP-14831
2018-09-18[net-nif] Fixed getnameinfoMicael Karlberg
And now fixed the getnameinfo function. OTP-14831
2018-09-18[net-nif] Fixed things...Micael Karlberg
Fixed functions getaddrinfo, if_index2name, if_name2index and if_names. OTP-14831
2018-09-18[net-nif] Implemented gethostnameMicael Karlberg
2018-09-18[net-nif] Removed the old net moduleMicael Karlberg
The old net module (in kernel) (deprecated) was removed and its function(s) has been moved into the new module. Also a minor updated to the info function. OTP-14831
2018-09-18[net-nif] Added debuggingMicael Karlberg
Added a command function, which is currently only used to enable and disable debug, which is also added.
2018-09-18[net-nif] The net-module now actually loadsMicael Karlberg
The net (nif) module now actually loads (automatically) when the VM is started (*on linux*). Now we must make sure it *actually* works, and implement the rest of the stuff...
2018-09-18[net-nif] Added preliminary net nif fileMicael Karlberg
OTP-14831
2018-09-18[net-nif] Erlang interface module for netMicael Karlberg
This is part of the nififying of the inet driver. OTP-14831
2018-09-18[socket-nif] Added some use of debug and fixed bindMicael Karlberg
Added (some) use of the debug printouts in (nif-) open and bind. Also fixed handling of the address argument in the bind function(s) (since it was changed to be of the in_sockaddr()). OTP-14831
2018-09-18[socket-nif] The info function now returns a non-empty mapMicael Karlberg
The map returned by the info function is now populated with the "global stuff". That is, debug, iow and the (global) counters (which are still not actually incremented). Also added debug functions and macros (not yet used). OTP-14831
2018-09-18[socket-nif] Fixed getopt function specMicael Karlberg
2018-09-18[socket-nif-doc] More polishingMicael Karlberg
Also added (a very) temporary example. OTP-14831
2018-09-18[socket-nif-doc] Fixed socket type and function openMicael Karlberg
The doc for type socket was missing (as it is opaque), so instead its replaced with a simple text referring to the functions open and accept. The open function missed a spec (for open/2), the text for default protocol needed some omrpvement and finally the Extra argument needed explaining.
2018-09-18[socket-nif-doc] Add preliminary doc for socketMicael Karlberg
The doc now builds. Had to update the code (spec and types) to match. Though, te result is less then stellar. OTP-14831
2018-09-18[socket-nif] Updated socket preloaded beamMicael Karlberg
2018-09-18[socket-nif] More getoptMicael Karlberg
Added guards and type specs for native getopt.
2018-09-18[socket-nif] More getoptMicael Karlberg
Its now possible to specify some "base" type(s) when retreiving an "native" option (base type instead of value size).
2018-09-18[socket-nif] getopt partially implementedMicael Karlberg
There are still many options not implemented (just as for setopt), but this will have to do for now...
2018-09-18[socket-nif] more setoptMicael Karlberg
Rewrote the setopt handling. Still not complete, but now the structure is "complete". That is, there is atleast one option handled for each level.
2018-09-18[socket-nif] setopt for socket option(s) rcvbuf and sndnufMicael Karlberg
2018-09-18[socket-nif] setopt of socket option broadcastMicael Karlberg
2018-09-18[socket-nif] setopt of socket option dontrouteMicael Karlberg
2018-09-18[socket-nif] setopt of socket option priorityMicael Karlberg
2018-09-18[socket-nif] setopt of socket option reuseaddrMicael Karlberg
2018-09-18[socket-nif] More setopt - udpMicael Karlberg
Add setopt for one udp option: cork. This is not platform independent. Aas fas as I know, it only works on linux, so for now this serves as a placeholder.
2018-09-18[socket-nif] More setoptMicael Karlberg
Add handling of nodelay tcp option setopt. Added placeholder sctp options autoclose and nodelay (since my machine does not actually have sctp installed...).
2018-09-18[socket-nif] setopt of (tcp) congestionMicael Karlberg
2018-09-18[socket-nif] Network interface mappings and sock addrMicael Karlberg
Add functions for mapping network interface names and indexes. Also refined the types for socket addresses: in4_sockaddr and in6_sockaddr.
2018-09-18[socket-nif] More setoptMicael Karlberg
"Handle" the linger option "fully". We still have a lot of options to handle. We also need to analyze the nif-code for setopt...
2018-09-18[socket-nif] Preliminary setoptMicael Karlberg
*Very* partial setopt implementation.
2018-09-18[socket-nif] Completed the shutdown functionMicael Karlberg
2018-09-18[socket-nif] More close-related workMicael Karlberg
There are still some questions regarding what hapopens when writing / reading from an (remote) closed socket (I talking about "properly" closed sockets).
2018-09-18[socket-nif] "Completed" the close functionMicael Karlberg
There is probably a lot of things left to be here. For instance the handling of ECONNRESET when reading (recv and recvfrom). Also some stuff about setopt and getopt.
2018-09-18[socket-nif] Completed the recv and recvfrom functionsMicael Karlberg
Also updated the socket type (now a record for easy use).
2018-09-18[socket-nif] Corrected timout handlingMicael Karlberg
The timeout handling for accept and send was unnecessarily complex.
2018-09-18[socket-nif] Completed recvMicael Karlberg
Need to fix the use of the request ref (ID) handling in previous functions.
2018-09-18[socket-nif] Implemented sendtoMicael Karlberg
Still not handling queue'ing of multiple send requests.
2018-09-18[socket-nif] Completed sendMicael Karlberg
We still need to handle simultaneous ops. That is, handle if two different procs tries to send at the same time. Or a recv and send at the same time. Ops queue?
2018-09-18[socket-nif] Completed acceptMicael Karlberg
2018-09-18[socket-nif] Completed listenMicael Karlberg
2018-09-18[socket-nif] Completed connectMicael Karlberg
Still not implemented the 'cancel' operation. This will be used when, for instance, we need to cancel an ongoing connect that has taken to long time to complete (the select). The idea is to use select(STOP).