aboutsummaryrefslogtreecommitdiff
path: root/zephyr/modusocket.c
AgeCommit message (Collapse)Author
2017-09-06ports: Make new ports/ sub-directory and move all ports there.Damien George
This is to keep the top-level directory clean, to make it clear what is core and what is a port, and to allow the repository to grow with new ports in a sustainable way.
2017-08-21all: Make static dicts use mp_rom_map_elem_t type and MP_ROM_xxx macros.Damien George
2017-08-19zephyr/modusocket: Update struct sockaddr family field name.Paul Sokolovsky
Was changed to "sa_family" for POSIX compatibility.
2017-08-09zephyr/modusocket: Fully switch to native Zephyr sockets.Paul Sokolovsky
2017-08-09zephyr/modusocket: recv: Switch to native sockets.Paul Sokolovsky
2017-08-09zephyr/modusocket: send: Switch to native sockets.Paul Sokolovsky
2017-08-08zephyr/modusocket: bind, connect, listen, accept: Swtich to native sockets.Paul Sokolovsky
2017-08-07zephyr/modusocket: socket, close: Switch to native Zephyr socket calls.Paul Sokolovsky
2017-08-07zephyr/modusocket: Allow to use socketized net_context in upstream.Paul Sokolovsky
Accesses recv_q, accept_q directly in net_context.
2017-06-03zephyr/modusocket: getaddrinfo: Fix mp_obj_len() usage.Paul Sokolovsky
Return value is mp_obj_t, so needs to be accessed using MP_OBJ_SMALL_INT_VALUE().
2017-05-26zephyr/modusocket: Use DEBUG_PRINT macro name as other modules do.Paul Sokolovsky
Indeed, just "DEBUG" is too generic.
2017-05-24zephyr/modusocket: getaddrinfo: Raise OSError on resolution timeout, etc.Paul Sokolovsky
2017-05-17zephyr/modusocket: getaddrinfo: Use RAISE_ERRNO for proper error decoding.Paul Sokolovsky
2017-05-16zephyr/modusocket: Get rid of cur_pkt object member.Paul Sokolovsky
Instead, just peek a packet at the head of the queue and work with it.
2017-05-16zephyr/modusocket: First step to switch to alternative FIFO processing.Paul Sokolovsky
Here we wait for non-empty FIFO, and then directly access/drop its head element.
2017-05-13zephyr/modusocket: Implement getaddrinfo().Paul Sokolovsky
2017-05-13zephyr/modusocket: If there're no packets in recv_q, cancel waiter.Paul Sokolovsky
This solves a case when socker_read() has blocked on fifo, and then peer closed event arrives.
2017-05-13zephyr/modusocket: Switch to net_pkt_append() returning length.Paul Sokolovsky
Requires patch in review.
2017-05-13zephyr/modusocket: Update for net_pkt refactor.Paul Sokolovsky
2017-05-13zephyr/modusocket: Wrap pkt_get_info() call.Paul Sokolovsky
The most important info it returns are numbers of free buffers in different pools (rx/tx packet headers, data fragments).
2017-05-12zephyr/modusocket: Add SOL_SOCKET and SO_REUSEADDR constants.Paul Sokolovsky
2017-05-12zephyr/modusocket: Add dummy setsockopt() implementation.Paul Sokolovsky
2017-04-27zephyr/modusocket: Add dummy makefile() implementation.Paul Sokolovsky
2017-04-26zephyr/modusocket: sock_read: Check socket status only at the start of packet.Paul Sokolovsky
Otherwise, if we already have a packet in progress, finish it first, before check "peer closed" status.
2017-04-26zephyr/modusocket: Add read/readline/readinto stream methods.Paul Sokolovsky
2017-04-26zephyr/modusocket: Refactor recv() into stream read() method.Paul Sokolovsky
2017-04-26zephyr/modusocket: Enable stream write() method.Paul Sokolovsky
2017-04-26zephyr/modusocket: Refactor send() into stream write() method.Paul Sokolovsky
2017-04-14socket_send: Don't send more than MTU allows.Paul Sokolovsky
As Zephyr currently doesn't handle MTU itself (ZEP-1998), limit amount of data we send on our side. Also, if we get unsuccessful result from net_nbuf_append(), calculate how much data it has added still. This works around ZEP-1984.
2017-04-13zephyr/modusocket: Strip packet header right in the receive callback.Paul Sokolovsky
Instead of complicating recv() implementation.
2017-04-11zephyr/modusocket: Call net_nbuf_print_frags() in recv callback if DEBUG > 1.Paul Sokolovsky
2017-04-08zephyr/modusocket: Implement accept().Paul Sokolovsky
2017-04-08zephyr/modusocket: socket_bind: Don't set recv callback on STREAM sockets.Paul Sokolovsky
For stream sockets, next exected operation is listen().
2017-04-07zephyr/modusocket: Implement listen().Paul Sokolovsky
2017-04-06modusocket: Handle a case when recv_q is empty when EOF is signaled.Paul Sokolovsky
In this case, we can mark socket as closed directly.
2017-04-05zephyr/modusocket: Factor out "extended k_fifo API".Paul Sokolovsky
Internal structure of k_fifo changed between 1.7 and 1.8, so we need to abstract it away. This adds more functions than currently used, for future work.
2017-04-04zephyr/modusocket: Factor out socket_new() function.Paul Sokolovsky
It will be reused e.g. for accept() implementation.
2017-04-04zephyr/modusocket: Be sure to use MP_OBJ_FROM_PTR.Paul Sokolovsky
2017-04-02zephyr/modusocket: Implement recv() for TCP sockets.Paul Sokolovsky
Short read approach is taken - at most, the remaining data in the current fragment will be returned.
2017-04-01zephyr/modusocket: Implement recv() for UDP sockets.Paul Sokolovsky
The foundation of recv() support is per-socket queue of incoming packets, implemented using Zephyr FIFO object. This patch implements just recv() for UDP, because TCP recv() requires much more fine-grained control of network fragments and handling other issues, like EOF condition, etc.
2017-03-31zephyr/modusocket: Implement send().Paul Sokolovsky
2017-03-31zephyr/modusocket: Implement bind() and connect().Paul Sokolovsky
2017-03-31zephyr/modusocket: Initial version of usocket module for Zephyr.Paul Sokolovsky
So far, socket creation and closure is implemented.