| Age | Commit message (Collapse) | Author |
|
* Added conditional dev CI routing
Added the dev pull-request and push workflow with mandatory smoke coverage, component-aware profile selection, conservative full fallbacks, and a stable aggregate gate. Added a validated profile map and regression coverage for classifier and gate behavior.
Assisted-by: Codex (gpt-5.6-sol) <[email protected]>
* Fixed GCC 14 CI regressions
Exposed the DNS internal API prototypes to its dedicated error-checking regression target and tolerated the documented gcov suspicious-hit counter defect while retaining a warning.
Assisted-by: Codex (gpt-5.6-sol) <[email protected]>
* Sharded secure interoperability CI profiles
Capped individual interoperability tests at 180 seconds so retryable hangs cannot consume the complete workflow budget.\n\nAssisted-by: Codex (gpt-5.6-sol)
* Allowed legacy server connections in disabled-renegotiation tests
Scope OpenSSL's legacy server connection opt-in to interoperability profiles that deliberately disable RFC 5746 support. Cover both the default and opt-in wrapper behavior.
Assisted-by: Codex (gpt-5.6-sol)
* Hardened secure interoperability profile execution
Permit legacy server connections only for DTLS and RFC 5746-disabled profiles, and keep legacy cases on TLS 1.2 in TLS 1.3-enabled builds unless a protocol is explicit. Extend the bounded OpenSSL startup window for loaded runners and cover the client wrapper behavior.
Assisted-by: Codex (gpt-5.6-sol)
* Corrected DTLS interoperability CA path
Resolve the ECC CA certificate relative to the OpenSSL client script, matching the wrapper's execution directory and the other certificate-bearing interoperability cases.
Assisted-by: Codex (gpt-5.6-sol)
* Corrected TLS 1.3 interoperability selection
Assisted-by: Codex (gpt-5.6-sol)
* Corrected TLS 1.3 PSK server port
Assisted-by: Codex (gpt-5.6-sol)
* Corrected TLS 1.3 PSK client port
Assisted-by: Codex (gpt-5.6-sol)
* Extended secure dependency installation timeout
Assisted-by: Codex (gpt-5.6-sol)
|
|
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]
|
|
consistency (#372)
ftp server: call logout callback on client timeout for consistency
Otherwise this is not symmetric with the other case where logout is also
called when the client disconnects.
Refactor performing the logout into a separate helper to avoid
duplication.
Fix security bug: stale authenticated flag after inactivity timeout.
Moving nx_ftp_client_request_authenticated = NX_FALSE into the
_nx_ftp_server_logout_client helper ensures every call site (QUIT,
disconnect, and now timeout) consistently resets auth state. Before
this fix, a new TCP connection accepted on a timed-out socket slot
could issue commands without USER/PASS.
Remove the now-redundant per-callsite authenticated resets in the QUIT
handler and the control-disconnect processing path.
Fix AUTHOR field in _nx_ftp_server_logout_client (was 'TBD').
Remove trailing whitespace from the new function comment block and from
the blank line following the QUIT logout call.
Add regression test netx_ftp_server_activity_timeout_test that forces
the inactivity timer to fire, asserts the logout callback is invoked,
uses a raw TCP connection to verify commands are rejected with 530
before USER/PASS (demonstrating the auth-reset fix), and confirms a
fresh authenticated session works normally.
Co-authored-by: Frédéric Desbiens <[email protected]>
Co-authored-by: Copilot <[email protected]>
|
|
|
|
|
|
A common error condition is that the user cloned the repo
without the --recursive option. We'll try to get the
submodules for them.
We remove the git clone command because the submodule update
should fix the issue.
|
|
|
|
|
|
|
|
|
|
|
|
|