|
● - 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]
|