Paul Sokolovsky
7063210014
extmod/modlwip: Fix for loss of data in unaccepted incoming sockets.
...
When lwIP creates a incoming connection socket of a listen socket, it
sets its recv callback to one which discards incoming data. We set
proper callback only in accept() call, when we allocate Python-level
socket where we can queue incoming data. So, in lwIP accept callback
be sure to set recv callback to one which tells lwIP to not discard
incoming data.
2016-04-11 01:21:34 +03:00
Paul Sokolovsky
b69f798c92
extmod/modwebsocket.h: Split websocket-related defines for reuse.
2016-04-10 13:42:51 +03:00
Paul Sokolovsky
d6236e85c2
extmod/modwebsocket: Implement MP_STREAM_SET_DATA_OPTS ioctl.
...
Allows to set fragment type (txt/bin/etc.) for output records.
2016-04-10 13:19:26 +03:00
Paul Sokolovsky
6837dba6b8
extmod/modwebsocket: Allow to get type of last read data using ioctl().
2016-04-10 12:50:46 +03:00
Paul Sokolovsky
f38e8f5217
extmod/modwebsocket: Record current fragment type (binary/text/etc.)
...
Also, handle continuation frames (untested).
2016-04-09 16:14:47 +03:00
Paul Sokolovsky
5b1c221785
extmod/modwebsocket: Add option for blocking writes to non-blk sockets.
...
This is strange asymmetry which is sometimes needed, e.g. for WebREPL: we
want to process only available input and no more; but for output, we want
to get rid of all of it, because there's no other place to buffer/store
it. This asymmetry is akin to CPython's asyncio asymmetry, where reads are
asynchronous, but writes are synchronous (asyncio doesn't expect them to
block, instead expects there to be (unlimited) buffering for any sync write
to completely immediately).
2016-04-09 16:03:38 +03:00
Paul Sokolovsky
397b705647
extmod/modwebsocket: Reset mask between packets.
2016-04-09 12:29:18 +03:00
Paul Sokolovsky
7e9182f3aa
extmod/modwebsocket: Make sure to propagate EOF.
2016-04-08 20:26:54 +03:00
Tom Sparks
20d9bc2d76
extmod/modure: re_exec() renamed to ure_exec() due to collison in 4.3BSD.
...
Addresses issue #1972 .
2016-04-08 20:12:03 +03:00
Paul Sokolovsky
05ba2433f6
extmod/modwebsocket: Properly check number of args to constructor.
2016-04-08 16:05:48 +03:00
Paul Sokolovsky
651a188299
extmod/vfs_fat_diskio: Actually support sectors != 512 with Python blockdevs.
2016-03-27 14:21:06 +03:00
Paul Sokolovsky
91031a75a1
extmod/modlwip: lwip_socket_setsockopt: Handle option value properly.
2016-03-25 20:53:52 +02:00
Paul Sokolovsky
4332d72fd8
extmod/modlwip: Add lwip->POSIX error map for lwIP 1.4.0.
...
Between 1.4.0 and 1.4.1, lwIP errors were renumbered.
2016-03-25 20:32:01 +02:00
Paul Sokolovsky
de0c84ebf1
extmod/modlwip: lwip_tcp_send: Handle properly send buffer full condition.
...
Per POSIX http://pubs.opengroup.org/onlinepubs/9699919799/functions/send.html :
"If space is not available at the sending socket to hold the message to be
transmitted, and the socket file descriptor does not have O_NONBLOCK set,
send() shall block until space is available. If space is not available at the
sending socket to hold the message to be transmitted, and the socket file
descriptor does have O_NONBLOCK set, send() shall fail [with EAGAIN]."
2016-03-25 18:38:13 +02:00
Paul Sokolovsky
5e75f335e6
extmod/modlwip: Implement setsocketopt(SO_REUSEADDR).
2016-03-25 17:44:24 +02:00
Paul Sokolovsky
8f1854ad2d
extmod/modlwip: Add SOL_SOCKET and SO_REUSEADDR constants for setsockopt().
2016-03-25 15:06:12 +02:00
Paul Sokolovsky
3dbd2ee926
extmod/modwebsocket: Implement read support.
2016-03-25 00:51:51 +02:00
Paul Sokolovsky
24342dd65e
extmod/modwebsocket: Start module for WebSocket helper functions.
...
Currently, only write support is implemented (of limited buffer size).
2016-03-24 19:16:00 +02:00
Damien George
b894551772
extmod/uctypes: Change param type from void* to byte*.
2016-03-19 22:13:17 +00:00
Damien George
da161fd9f0
extmod/uctypes: Finish support for FLOAT32 and FLOAT64 types.
2016-03-19 21:59:42 +00:00
Damien George
12154b1774
extmod/uctypes: Use mp_binary_get_val helper when extracting value.
...
It handles more cases than mp_binary_get_int.
2016-03-19 21:41:01 +00:00
Damien George
0be6359f39
py: When printf'ing an object as a pointer, pass the concrete pointer.
2016-03-14 22:41:14 +00:00
Paul Sokolovsky
0779409d0d
extmod/modlwip: lwip_tcp_receive: Properly map lwIP error to POSIX errno.
2016-03-12 11:42:15 +07:00
Paul Sokolovsky
ba8f7d5171
extmod/modlwip: Add socket.setblocking() method.
2016-03-12 10:52:50 +07:00
Paul Sokolovsky
09ed5bcbbb
extmod/modlwip: Rework getaddrinfo() data passing.
...
The code is based on Damien George's implementation for esp8266 port,
avoids use of global variables and associated re-entrancy issues, and
fixes returning stale data in some cases.
2016-03-12 10:50:51 +07:00
Paul Sokolovsky
e5b047369b
extmod/modlwip: Use MICROPY_EVENT_POLL_HOOK for event polling if defined.
...
Instead of just delaying 100ms if event isn't yet ready.
So far applies only to default, "infinite" socket timeout.
2016-03-11 09:32:07 +07:00
Paul Sokolovsky
43d497592f
extmod/modlwip: Factor out "socket connected" check to a function.
...
Same code repeated for each send*() and recv*() function.
2016-03-09 12:43:09 +07:00
Paul Sokolovsky
fda874e406
extmod/modlwip: Support non-blocking recv().
2016-03-09 12:39:33 +07:00
Paul Sokolovsky
7379be3673
extmod/modlwip: Add .write() stream method.
2016-03-09 12:35:43 +07:00
Damien George
4f64f6bfd3
extmod/modlwip: Still process remaining incoming data of a closed socket.
...
It can happen that a socket gets closed while the pbuf is not completely
drained by the application. It can also happen that a new pbuf comes in
via the recv callback, and then a "peer closed" event comes via the same
callback (pbuf=NULL) before the previous event has been handled. In both
cases the socket is closed but there is remaining data. This patch makes
sure such data is passed to the application.
2016-03-09 12:31:25 +07:00
Damien George
6d2e9e70b3
extmod/modlwip: Check for state change during recv busy-wait loop.
...
For example, the peer may close the connection while recv is waiting for
incoming data.
2016-03-09 12:29:40 +07:00
Paul Sokolovsky
6185dc5f3d
extmod/modlwip: Add stream .read() and .readline() methods.
2016-03-09 09:20:22 +07:00
Paul Sokolovsky
f1919b7c98
extmod/modlwip: Add dummy .makefile() method.
2016-03-09 09:14:45 +07:00
Paul Sokolovsky
c7fb87caff
extmod/modlwip: Add stream protocol read method.
2016-03-09 09:12:32 +07:00
Paul Sokolovsky
ed593780bf
extmod/modlwip: Implement dummy setsockopt().
2016-03-08 14:24:49 +07:00
Paul Sokolovsky
f8d42da104
extmod/modlwip: Add .print() method.
2016-03-08 11:37:15 +07:00
Paul Sokolovsky
04a9ac7f38
extmod/modlwip: Update make_new() arguments for recent refactor.
2016-03-08 10:31:21 +07:00
Paul Sokolovsky
65405247a0
extmod/vfs_fat_lexer: Add func prototype for pedantic warnings.
2016-03-03 14:53:36 +02:00
Paul Sokolovsky
3aa0f2eed3
extmod/vfs_fat_lexer: Make conditional on FatFs support enabled.
2016-03-03 14:08:27 +02:00
Paul Sokolovsky
453a2a3d7c
extmod/vfs_fat: Add lexer, move from stmhal port for reuse.
2016-03-03 13:25:44 +02:00
Paul Sokolovsky
e0821830b0
extmod/vfs_fat: Add .rename() method.
2016-02-29 01:23:53 +02:00
Paul Sokolovsky
09e363316f
extmod/vfs_fat_misc: Fix cc3200 port build.
2016-02-29 01:15:19 +02:00
Paul Sokolovsky
08fed6992f
extmod/vfs_fat_misc: Add func prototype for pedantic warnings.
2016-02-29 00:48:45 +02:00
Paul Sokolovsky
6ef65e70af
extmod/vfs_fat: Add fat_vfs_import_stat(), reusable import stat routine.
...
Moved from stmhal.
2016-02-29 00:44:32 +02:00
Paul Sokolovsky
bbe832a0b2
extmod/vfs_fat: Add .mkdir() method.
2016-02-29 00:03:20 +02:00
Paul Sokolovsky
6f469209e9
extmod/vfs_fat: Fix unused param warning/error.
2016-02-28 20:45:51 +02:00
Paul Sokolovsky
19749db7bf
extmod/vfs_fat: Add .remove() method.
...
Based on stmhal implementation - rather small, so just duplicating.
2016-02-28 20:30:07 +02:00
Paul Sokolovsky
cd6d189f48
extmod/vfs_fat: Move listdir() method from stmhal for reuse.
2016-02-28 17:17:24 +02:00
Paul Sokolovsky
4cd45f48b1
cc3200: Fix breakage after VfsFat refactor.
2016-02-15 10:39:56 +02:00
Paul Sokolovsky
46a0ac02c5
extmod/vfs_fat_ffconf: Reusable FatFs module, move from stmhal/ffconf.
...
TODO: Probably merge into vfs_fat_diskio.
2016-02-15 00:19:27 +02:00