| Age | Commit message (Collapse) | Author |
|
Applied the standard MIT license header to all project-owned C, header,
assembly, shell, and Python files that were missing a copyright notice.
Third-party, toolchain startup, and auto-generated files were excluded.
Co-authored-by: Copilot <[email protected]>
|
|
* recvfromto support
* nx_bsd_inet_aton, disabling other format than four numbers separated by dots. Otherwise used in nx_bsd_inet_pton
It accepts unallowed format of IP address.
* bsd: address PR review feedback
- Fix build failure: add missing nx_bsd_recvfromto() prototype to
nxd_bsd.h near the other receive prototypes. The nx_bsd_recvfromto
macro maps to recvfromto, but without a prior declaration the
compiler emits -Werror=missing-declarations.
- Revert inet_aton() change: restore the 1-part, 2-part and 3-part
abbreviated IPv4 address formats (a.b.c and a.b). The PR removed
them, breaking existing tests that rely on these forms.
- Add IPv6 destination address support in recvfromto(): when the
receiving BSD socket is AF_INET6, extract the destination IPv6
address from the IPv6 packet header and populate a sockaddr_in6
in toAddr, mirroring the existing IPv4 path.
- Add regression test netx_bsd_recvfromto_test covering:
* recvfromto() populates fromAddr (sender) and toAddr (destination)
with correct address/port values for IPv4 UDP
* recvfromto() with NULL toAddr/toAddrLen works like recvfrom()
* inet_aton() still accepts abbreviated a.b and a.b.c forms
Register test in regression/CMakeLists.txt.
---------
Co-authored-by: Frédéric Desbiens <[email protected]>
Co-authored-by: Copilot <[email protected]>
|
|
* initial support
* bsd: address PR review feedback
- Fix accept() regression: preserve accepted socket FD even when
recreating the secondary listen socket fails due to slot exhaustion.
Set secondary_socket_id = NX_BSD_MAX_SOCKETS to invalidate the slot
for future accept() calls, but still return the already-accepted FD.
- Restore select() writefds 'not in use' case: closed/unallocated
descriptors must be reported immediately as writable per BSD semantics.
Several tests (netx_bsd_tcp_basic_blocking_test, _rcvbuf_test,
_getaddrinfo_test) depend on this behaviour.
- Fix select() exceptfds race with readfds: the readfds scan calls
nx_tcp_socket_receive() which dequeues the head packet; a subsequent
peek at nx_tcp_socket_receive_queue_head in the exceptfds scan then
finds NULL. Move the URG/push-flag check into the readfds scan
immediately after the successful dequeue while the packet is still
accessible.
- Add regression test netx_bsd_select_improvements_test covering:
* zero-timeout select clears all fdsets without blocking
* normal TCP data sets readfds, not exceptfds
* a not-in-use descriptor appears in writefds
Register test in regression/CMakeLists.txt.
---------
Co-authored-by: Frédéric Desbiens <[email protected]>
Co-authored-by: Copilot <[email protected]>
|
|
● - initial support
- bsd: address PR review feedback
- Fix build failure: so_linger was stored on NX_TCP_SOCKET which has
no such field. Linger state is now kept in NX_BSD_SOCKET using the
new nx_bsd_option_linger field and the existing
NX_BSD_SOCKET_ENABLE_OPTION_LINGER flag.
- Fix sign-conversion warning in setsockopt(IP_TOS): read the value
as INT, validate range 0..0xFF, then cast to ULONG.
- Reject out-of-range INT values (< 0 or > 255) in
setsockopt(IP_TTL).
- Add lower-bound check for IPPROTO_IP options in getsockopt and
setsockopt so that SO_* option numbers are no longer silently
accepted at the IPPROTO_IP level.
- Add null check for raw sockets in IP_TOS and IP_TTL get/set paths;
return ENOPROTOOPT instead of dereferencing a NULL pointer.
- Validate
*option_length before writing in SO_BROADCAST, TCP_NODELAY,
SO_LINGER and IP_TOS getsockopt paths; set
*option_length to the
actual size returned on success.
- Separate ENOPROTOOPT (wrong socket type) from EINVAL (wrong length)
in SO_LINGER get/set error handling.
- Remove unused so_linger local variable from getsockopt.
- Replace C++-style // comments in the close/linger path with C99
/*
*/ comments.
- Add regression test netx_bsd_socket_options_test covering SO_LINGER,
IP_TOS, IP_TTL, SO_BROADCAST and TCP_NODELAY round-trips and error
paths; register in bsd_test_cases in regression/CMakeLists.txt.
Co-authored-by: Frédéric Desbiens [email protected]
Co-authored-by: Copilot [email protected]
|
|
|
|
|
|
|
|
|
|
|