8000 zephyr/modusocket: send: Switch to native sockets. · lable/micropython@675ceb2 · GitHub
[go: up one dir, main page]

Skip to content

Commit 675ceb2

Browse files
committed
zephyr/modusocket: send: Switch to native sockets.
1 parent 600f5af commit 675ceb2

File tree

1 file changed

+4
-17
lines changed

1 file changed

+4
-17
lines changed

zephyr/modusocket.c

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -344,28 +344,15 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(socket_accept_obj, socket_accept);
344344

345345
STATIC mp_uint_t sock_write(mp_obj_t self_in, const void *buf, mp_uint_t size, int *errcode) {
346346
socket_obj_t *socket = self_in;
347-
if (socket->ctx == NULL) {
347+
if (socket->ctx == -1) {
348348
// already closed
349349
*errcode = EBADF;
350350
return MP_STREAM_ERROR;
351351
}
352352

353-
struct net_pkt *send_pkt = net_pkt_get_tx(socket->ctx, K_FOREVER);
354-
355-
unsigned len = net_if_get_mtu(net_context_get_iface(socket->ctx));
356-
// Arbitrary value to account for protocol headers
357-
len -= 64;
358-
if (len > size) {
359-
len = size;
360-
}
361-
362-
// TODO: Return value of 0 is a hard case (as we wait forever, should
363-
// not happen).
364-
len = net_pkt_append(send_pkt, len, buf, K_FOREVER);
365-
366-
int err = net_context_send(send_pkt, /*cb*/NULL, K_FOREVER, NULL, NULL);
367-
if (err < 0) {
368-
*errcode = -err;
353+
ssize_t len = zsock_send(socket->ctx, buf, size, 0);
354+
if (len == -1) {
355+
*errcode = errno;
369356
return MP_STREAM_ERROR;
370357
}
371358

0 commit comments

Comments
 (0)
0