58 Commits

Author SHA1 Message Date
Dániel Buga
44217aa092
Desugar some async fns 2024-12-30 12:13:13 +01:00
Krzysztof Królczyk
9634dfd6c1
chore: address some clippy issues
Signed-off-by: Krzysztof Królczyk <Krzysztof.Krolczyk@o2.pl>
2024-11-01 19:08:14 +01:00
Anthony Grondin
70214fc2c2
feat(embassy-net): Implement TcpReader::wait_read_ready() + TcpWriter::wait_send_ready() 2024-10-31 22:25:48 -04:00
Dario Nieuwenhuis
e8ba9696f1
Merge pull request #3368 from AnthonyGrondin/main
feat(embassy-net): Implement `wait_recv_ready()` + `wait_send_ready()` for UdpSocket and `wait_read_ready()` + `wait_write_ready()` for TcpSocket
2024-10-21 00:35:13 +00:00
Dario Nieuwenhuis
9a45d776d8 rustfmt for new nightly. 2024-10-14 00:12:45 +02:00
Dario Nieuwenhuis
f6155cf735 Update smoltcp, embedded-nal-async to use the core::net IP addr types. 2024-10-07 00:22:44 +02:00
Anthony Grondin
712fa08363
feat(embassy-net): Implement wait_read_ready() + wait_write_ready() for TcpSocket 2024-09-24 22:01:53 -04:00
Anthony Grondin
e8da387726
docs(embassy-net): Update can_send() and may_send() documentation to reflect actual behavior from smoltcp 2024-09-24 22:01:53 -04:00
Dario Nieuwenhuis
be0d9775e3 net: refactor to simplify lifetimes/generics. 2024-09-16 21:17:11 +02:00
dvdsk
5479647962
embassy-net: fix/clearify TcpReader docs. Expand docs on timeouts 2024-08-23 19:18:12 +02:00
dvdsk
acc26a076a
embassy-net/read document return value Ok(0) 2024-08-23 15:04:00 +02:00
Samuel Hicks
e6f4db507d net/tcp: fix flush() waiting forever if socket is reset with pending write data 2024-07-19 17:45:29 +01:00
Mathias
01f709c1d9 Allow setting socket timeout for embedded-nal TcpClient, such that every new socket from that client gets the timeout 2024-07-17 11:23:12 +02:00
trepidacious
abe7f9921e Update ReadReady and WriteReady implementations
Update `ReadReady` for `TcpReader` to match implementation for `TcpSocket`
Update `WriteReady` implementations to use `can_recv()` rather than `may_recv()`, since this will check that the transmit buffer is not full.
2024-07-01 20:59:27 +01:00
trepidacious
c3be54f96b Add check for closed connection to read_ready() 2024-06-30 17:47:04 +01:00
Philip Reimer
673d11f49f add send_queue and recv_queue 2024-06-05 15:28:18 -06:00
davidskula
87aca974b1 impl ReadReady for tcp call can_recv() insted of may_recv() 2024-05-07 16:07:00 +02:00
Dario Nieuwenhuis
250cfa5f5f net/tcp: fix flush() not waiting for ACK of FIN. 2024-02-21 21:13:10 +01:00
Stefan Gehr
b9d0069671
correct spelling of the word "receive" 2024-02-03 14:56:31 +01:00
swanandx
4a59fbdedc feat: impl ReadReady and WriteReady for tcp 2024-01-03 18:17:04 +05:30
Dario Nieuwenhuis
c6989dfbca Remove nightly and unstable-traits features in preparation for 1.75. 2023-11-29 17:26:33 +01:00
Dario Nieuwenhuis
4647df14b1 Update heapless to v0.8, embedded-nal-async to v0.7 2023-11-10 16:43:53 +01:00
Dániel Buga
15660cfc68 Ensure TcpIo not blocking when reading into empty slice 2023-11-06 09:12:16 +01:00
Dario Nieuwenhuis
32b89eeba1 net: remove atomic-polyfill. 2023-10-12 02:07:26 +02:00
Dániel Buga
0c66636d00 Use fmt::unwrap 2023-09-02 08:39:52 +02:00
Dario Nieuwenhuis
7b3cb2ce04
Merge pull request #1802 from avlec/error-translation
Add error translation to tcp errors
2023-08-18 21:58:27 +00:00
Alec Cox
eb05a18c45 add error translation to tcp errors
Translation of tpc client ConnectError and Error to the appropriate
embedded_io_async errors
2023-08-18 14:43:44 -07:00
Scott Mabin
b1ef009c6b Add tcp capacity impls 2023-08-15 15:31:23 +01:00
Scott Mabin
fbec797d64 embassy-net:tcp:send/recv
- Add async versions of smoltcp's `send` and `recv` closure based API.
2023-08-14 15:33:02 +01:00
Dario Nieuwenhuis
5d5cd23715
Update to embedded-io 0.5 (#1752) 2023-08-07 13:43:09 +02:00
Dario Nieuwenhuis
8a1d3d5c84 Merge branch 'main' into v4-optional 2023-06-08 19:38:15 +02:00
Russ Hewgill
2eb08b2dc9 updated can_recv and may_recv to match the smoltcp functions. 2023-06-06 09:49:38 -07:00
Ruben De Smet
e871324bde
net: StaticV4 config behind proto-ipv4 2023-06-06 17:58:45 +02:00
Matt Johnston
b20427b2ec net: Make flush() wait for RST packets from abort()
Add docs to note that dropping a TcpSocket early will
prevent the .abort() RST from being sent.
2023-05-25 20:43:36 +08:00
Dario Nieuwenhuis
d07821d851 net: document crate. 2023-05-15 00:56:09 +02:00
Dario Nieuwenhuis
26d7610554 net: do not use smoltcp Instant/Duration in public API. 2023-05-15 00:53:30 +02:00
kbleeke
035de6f3ff embassy-net: add flush to TcpSocket and TcpWriter as an inherent method 2023-02-22 14:45:17 +01:00
kbleeke
f1a4db44c4 Implement flush for TcpSocket 2023-02-22 13:57:40 +01:00
Ulf Lilleengen
768fe699cf
Pass the correct buffer when creating TcpSocket 2023-01-31 19:36:41 +01:00
Dario Nieuwenhuis
1f033d509a net: split driver trait to a separate crate. 2022-12-26 04:49:08 +01:00
Dario Nieuwenhuis
5655c6093f net: use atomic-polyfill on tcp client pool, for thumbv6m support. 2022-12-26 03:34:05 +01:00
Dario Nieuwenhuis
10c9cc31b1 Remove unnecessary use of atomic-polyfill.
Only use it when CAS is actually needed.
2022-12-23 20:46:49 +01:00
Dario Nieuwenhuis
aaaf5f23a8 net: move stack into lib.rs 2022-12-13 16:18:39 +01:00
Dario Nieuwenhuis
ac74613b5a net: remove packet pool.
The pool was prone to deadlocks, especially due to having a single pool
for rx+tx. If the pool got full with rx'd packets it would deadlock because
processing a rx packet requires doing another allocation on the pool, for
the possibly tx'd response, before deallocating the rx'd packet.

This also allows Device impls to allocate the packet memory in a particular
RAM kind, if needed for example to do DMA.

The `Device` trait is now token-based, like smoltcp's. In the end, this
is better because it allows callers to manage memory however they want (including
with a pool if they want to).
2022-12-13 16:18:39 +01:00
Dario Nieuwenhuis
f7fe0c1441 net: update smoltcp 2022-12-07 00:28:38 +01:00
Dario Nieuwenhuis
02abe00439 net: don't use UnsafeCell.
The "must not be called reentrantly" invariant is too "global" to
maintain comfortably, and the cost of the RefCell is negligible,
so this was a case of premature optimization.
2022-12-03 00:56:16 +01:00
Dario Nieuwenhuis
1e2fb0459d Switch to async-fn-in-trait 2022-11-25 21:02:06 +01:00
Dario Nieuwenhuis
eeb072d9cb Update Rust nightly. 2022-10-26 16:47:29 +02:00
Dario Nieuwenhuis
a0487380da Replace futures::future::poll_fn -> core::future::poll_fn. 2022-09-22 16:42:49 +02:00
Dario Nieuwenhuis
464ae67108 net: feature-gate nightly-only async traits to allow building on stable. 2022-08-30 19:43:32 +02:00