<feed xmlns='http://www.w3.org/2005/Atom'>
<title>netxduo.git/addons/BSD, branch dev</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/netxduo.git/atom/addons/BSD?h=dev</id>
<link rel='self' href='http://cgit.235523.xyz/netxduo.git/atom/addons/BSD?h=dev'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/netxduo.git/'/>
<updated>2026-05-29T14:34:38Z</updated>
<entry>
<title>Added BSD recvfromto support (#376)</title>
<updated>2026-05-29T14:34:38Z</updated>
<author>
<name>mzgrebnak</name>
<email>michal.zgrebnak@rockwellautomation.com</email>
</author>
<published>2026-05-29T14:34:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/netxduo.git/commit/?id=09ce97f8f9019724407917c197c2a0c0e859bf2d'/>
<id>urn:sha1:09ce97f8f9019724407917c197c2a0c0e859bf2d</id>
<content type='text'>
 * 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 &lt;frederic.desbiens@eclipse-foundation.org&gt;
 Co-authored-by: Copilot &lt;223556219+Copilot@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Implemented BSD select improvements (#375)</title>
<updated>2026-05-29T13:15:07Z</updated>
<author>
<name>mzgrebnak</name>
<email>michal.zgrebnak@rockwellautomation.com</email>
</author>
<published>2026-05-29T13:15:07Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/netxduo.git/commit/?id=53070b69eed6af6840b0a890fe749e73e3f280f2'/>
<id>urn:sha1:53070b69eed6af6840b0a890fe749e73e3f280f2</id>
<content type='text'>
* 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 &lt;frederic.desbiens@eclipse-foundation.org&gt;
Co-authored-by: Copilot &lt;223556219+Copilot@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Implemented BSD socket options improvements (#374)</title>
<updated>2026-05-28T20:23:22Z</updated>
<author>
<name>mzgrebnak</name>
<email>michal.zgrebnak@rockwellautomation.com</email>
</author>
<published>2026-05-28T20:23:22Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/netxduo.git/commit/?id=57410350d94bbcb5e6885d0fbc40c72b6d7ddd33'/>
<id>urn:sha1:57410350d94bbcb5e6885d0fbc40c72b6d7ddd33</id>
<content type='text'>
●  - 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 (&lt; 0 or &gt; 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 frederic.desbiens@eclipse-foundation.org
  Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com</content>
</entry>
<entry>
<title>Updated copyright headers and version strings. Removed version history</title>
<updated>2026-03-06T23:14:18Z</updated>
<author>
<name>Frédéric Desbiens</name>
<email>frederic.desbiens@eclipse-foundation.org</email>
</author>
<published>2026-03-06T23:14:18Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/netxduo.git/commit/?id=ff90b3ffcb84b2c6099ec31ef032b541e1ef5f0a'/>
<id>urn:sha1:ff90b3ffcb84b2c6099ec31ef032b541e1ef5f0a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Added regression test and enhanced select fix for Issue #366</title>
<updated>2026-03-06T18:06:56Z</updated>
<author>
<name>Frédéric Desbiens</name>
<email>frederic.desbiens@eclipse-foundation.org</email>
</author>
<published>2026-03-06T18:06:56Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/netxduo.git/commit/?id=63cfc6d8a5b156c243f011a02df838a359d3fa38'/>
<id>urn:sha1:63cfc6d8a5b156c243f011a02df838a359d3fa38</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: #366 Refactor `select()` socket suspend structures</title>
<updated>2026-02-20T17:42:59Z</updated>
<author>
<name>Elliott</name>
<email>elliott.partridge@gmail.com</email>
</author>
<published>2026-02-20T17:42:59Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/netxduo.git/commit/?id=e43986f36e182d41eb2b2b975fa691680447326b'/>
<id>urn:sha1:e43986f36e182d41eb2b2b975fa691680447326b</id>
<content type='text'>
Refactored `select()` and `nx_bsd_select_wakeup()` to differentiate between requested event filter `nx_bsd_fd_set` and resulting active sockets `nx_bsd_fd_set`.  This prevents spurious events being raised for sockets that are not part of the wakeup triggers.
</content>
</entry>
<entry>
<title>Updated version numbers to 6.4.3</title>
<updated>2025-03-18T14:24:08Z</updated>
<author>
<name>Frédéric Desbiens</name>
<email>frederic.desbiens@eclipse-foundation.org</email>
</author>
<published>2025-03-18T14:24:08Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/netxduo.git/commit/?id=c82ea77c4bf3a3e25b6f622e59465998f8c6e738'/>
<id>urn:sha1:c82ea77c4bf3a3e25b6f622e59465998f8c6e738</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update copyright.</title>
<updated>2024-01-29T03:03:49Z</updated>
<author>
<name>Bo Chen (from Dev Box)</name>
<email>boche@microsoft.com</email>
</author>
<published>2024-01-29T03:03:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/netxduo.git/commit/?id=6c6e58cb977dd1c08d2d344624e7d30d15d48d35'/>
<id>urn:sha1:6c6e58cb977dd1c08d2d344624e7d30d15d48d35</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Updated version and date for 6.4.0 (#229)</title>
<updated>2023-12-28T10:12:43Z</updated>
<author>
<name>Bo Chen</name>
<email>50469338+bo-ms@users.noreply.github.com</email>
</author>
<published>2023-12-28T10:12:43Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/netxduo.git/commit/?id=6053c3f7061d825d20ba76f7e254d5acc9e929c5'/>
<id>urn:sha1:6053c3f7061d825d20ba76f7e254d5acc9e929c5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix compile warnings in BSD.</title>
<updated>2023-12-27T02:57:39Z</updated>
<author>
<name>Yanwu Cai</name>
<email>yacai@microsoft.com</email>
</author>
<published>2023-12-27T02:57:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/netxduo.git/commit/?id=18c508c91cb5b08976ab5328bb193e21e574a9ee'/>
<id>urn:sha1:18c508c91cb5b08976ab5328bb193e21e574a9ee</id>
<content type='text'>
</content>
</entry>
</feed>
