Skip to content

Commit 1a0e9e4

Browse files
authored
Merge pull request #391 from eclipse-threadx/dev
Merging changes for the v.6.5.1.202602 release
2 parents 8b6e03a + 4d88828 commit 1a0e9e4

2,374 files changed

Lines changed: 28895 additions & 445 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

addons/BSD/nxd_bsd.c

Lines changed: 542 additions & 37 deletions
Large diffs are not rendered by default.

addons/BSD/nxd_bsd.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ extern "C" {
238238
#define nx_bsd_inet_ntop inet_ntop
239239
#define nx_bsd_listen listen
240240
#define nx_bsd_recvfrom recvfrom
241+
#define nx_bsd_recvfromto recvfromto
241242
#define nx_bsd_recv recv
242243
#define nx_bsd_recvmsg recvmsg
243244
#define nx_bsd_sendto sendto
@@ -300,6 +301,7 @@ extern "C" {
300301
#define AF_INET 2 /* IPv4 socket (UDP, TCP, etc) */
301302
#define AF_INET6 3 /* IPv6 socket (UDP, TCP, etc) */
302303
#define AF_PACKET 4 /* Raw Packet type (Link Layer packets) */
304+
#define AF_MAX AF_PACKET
303305

304306
/* Protocol families, same as address families. */
305307
#define PF_INET AF_INET
@@ -570,6 +572,8 @@ extern "C" {
570572

571573
/* This second set of socket options take the socket level (category) IPPROTO_IP. */
572574

575+
#define IP_TOS 25 /* Type Of Service */
576+
#define IP_TTL 26 /* Specify the TTL value. */
573577
#define IP_MULTICAST_IF 27 /* Specify outgoing multicast interface */
574578
#define IP_MULTICAST_TTL 28 /* Specify the TTL value to use for outgoing multicast packet. */
575579
#define IP_MULTICAST_LOOP 29 /* Whether or not receive the outgoing multicast packet, loopbacloopbackk mode. */
@@ -960,6 +964,8 @@ typedef struct NX_BSD_SOCKET_STRUCT
960964
INT nx_bsd_option_linger_time;
961965
UINT nx_bsd_option_linger_time_closed;
962966
UINT nx_bsd_option_linger_start_close;
967+
struct nx_bsd_linger
968+
nx_bsd_option_linger;
963969
UINT nx_bsd_socket_time_wait_remaining;
964970
ULONG nx_bsd_option_receive_timeout;
965971
ULONG nx_bsd_option_send_timeout;
@@ -1009,6 +1015,7 @@ VOID nx_bsd_raw_receive_notify(NX_IP *ip_ptr, UINT bsd_socket_index);
10091015
#endif
10101016
UINT nx_bsd_socket_set_inherited_settings(UINT master_sock_id, UINT secondary_sock_id);
10111017
INT nx_bsd_recvfrom(INT sockID, CHAR *buffer, INT buffersize, INT flags,struct nx_bsd_sockaddr *fromAddr, INT *fromAddrLen);
1018+
INT nx_bsd_recvfromto(INT sockID, CHAR *rcvBuffer, INT bufferLength, INT flags, struct nx_bsd_sockaddr *fromAddr, INT *fromAddrLen, struct nx_bsd_sockaddr *toAddr, INT *toAddrLen);
10121019
INT nx_bsd_recv(INT sockID, VOID *rcvBuffer, INT bufferLength, INT flags);
10131020
INT nx_bsd_recvmsg(INT sockID, struct nx_bsd_msghdr *msg, INT flags);
10141021
INT nx_bsd_sendto(INT sockID, CHAR *msg, INT msgLength, INT flags, struct nx_bsd_sockaddr *destAddr, INT destAddrLen);

addons/ftp/nxd_ftp_server.c

Lines changed: 92 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
*
99
* SPDX-License-Identifier: MIT
1010
**************************************************************************/
11+
// Some portions generated by Copilot (Sonnet 4.6).
1112

1213

1314
/**************************************************************************/
@@ -81,7 +82,8 @@ NX_CALLER_CHECKING_EXTERNS
8182
#define NX_FTP_CODE_BAD_NAME "553" /* Requested action not taken, File name not allowed. */
8283

8384
static VOID _nx_ftp_server_number_to_ascii(UCHAR *buffer_ptr, UINT buffer_size, UINT number, UCHAR pad);
84-
85+
static VOID _nx_ftp_server_logout_client(NX_FTP_SERVER *ftp_server_ptr, NX_FTP_CLIENT_REQUEST *client_request_ptr);
86+
8587
/**************************************************************************/
8688
/* */
8789
/* FUNCTION RELEASE */
@@ -1445,6 +1447,7 @@ ULONG events;
14451447
/* nx_tcp_socket_transmit_configure Configure data transer socket */
14461448
/* _nx_utility_uint_to_string Convert number to string */
14471449
/* _nx_ftp_server_data_socket_cleanup Clean up data socket */
1450+
/* _nx_ftp_server_logout_client Logout the client */
14481451
/* */
14491452
/* CALLED BY */
14501453
/* */
@@ -1720,41 +1723,8 @@ ULONG block_size;
17201723
/* Increment the number of disconnection requests. */
17211724
ftp_server_ptr -> nx_ftp_server_disconnection_requests++;
17221725

1723-
/* Check if this client login. */
1724-
if (client_req_ptr -> nx_ftp_client_request_login)
1725-
{
1726-
1727-
/* Call the logout function. */
1728-
1729-
#ifndef NX_DISABLE_IPV4
1730-
/* Does this server have an IPv4 login function? */
1731-
if (ftp_server_ptr -> nx_ftp_logout_ipv4)
1732-
{
1733-
1734-
/* Call the logout which takes IPv4 address input. */
1735-
(ftp_server_ptr -> nx_ftp_logout_ipv4)(ftp_server_ptr,
1736-
client_req_ptr -> nx_ftp_client_request_control_socket.nx_tcp_socket_connect_ip.nxd_ip_address.v4,
1737-
client_req_ptr -> nx_ftp_client_request_control_socket.nx_tcp_socket_connect_port,
1738-
client_req_ptr -> nx_ftp_client_request_username,
1739-
client_req_ptr -> nx_ftp_client_request_password, NX_NULL);
1740-
}
1741-
#endif /* NX_DISABLE_IPV4 */
1742-
if (ftp_server_ptr -> nx_ftp_logout)
1743-
{
1744-
1745-
/* Call the 'duo' logout function which takes IPv6 or IPv4 IP addresses. */
1746-
(ftp_server_ptr -> nx_ftp_logout)(ftp_server_ptr, &(client_req_ptr -> nx_ftp_client_request_control_socket.nx_tcp_socket_connect_ip),
1747-
client_req_ptr -> nx_ftp_client_request_control_socket.nx_tcp_socket_connect_port,
1748-
client_req_ptr -> nx_ftp_client_request_username,
1749-
client_req_ptr -> nx_ftp_client_request_password, NX_NULL);
1750-
}
1751-
1752-
/* Set the login as FALSE. */
1753-
client_req_ptr -> nx_ftp_client_request_login = NX_FALSE;
1754-
}
1755-
1756-
/* Clear authentication. */
1757-
client_req_ptr -> nx_ftp_client_request_authenticated = NX_FALSE;
1726+
/* Logout the client. */
1727+
_nx_ftp_server_logout_client(ftp_server_ptr, client_req_ptr);
17581728

17591729
/* Now send a successful response to the client. */
17601730
_nx_ftp_server_response(&(client_req_ptr -> nx_ftp_client_request_control_socket), packet_ptr,
@@ -4554,6 +4524,7 @@ NX_FTP_SERVER *server_ptr;
45544524
/* fx_file_close Close file */
45554525
/* nx_ftp_packet_allocate Allocate a packet */
45564526
/* _nx_ftp_server_data_socket_cleanup Clean up data socket */
4527+
/* _nx_ftp_server_logout_client Logout the client */
45574528
/* */
45584529
/* CALLED BY */
45594530
/* */
@@ -5133,6 +5104,7 @@ NX_FTP_SERVER *server_ptr;
51335104
/* nx_tcp_server_socket_unaccept Unaccept server connection */
51345105
/* nx_tcp_socket_disconnect Disconnect socket */
51355106
/* _nx_ftp_server_data_socket_cleanup Clean up data socket */
5107+
/* _nx_ftp_server_logout_client Logout the client */
51365108
/* */
51375109
/* CALLED BY */
51385110
/* */
@@ -5187,6 +5159,9 @@ NX_FTP_CLIENT_REQUEST *client_req_ptr;
51875159
/* Reset the block bytes. */
51885160
client_req_ptr -> nx_ftp_client_request_block_bytes = 0;
51895161

5162+
/* Logout the client. */
5163+
_nx_ftp_server_logout_client(ftp_server_ptr, client_req_ptr);
5164+
51905165
/* Now disconnect the command socket. */
51915166
nx_tcp_socket_disconnect(&(client_req_ptr -> nx_ftp_client_request_control_socket), NX_NO_WAIT);
51925167

@@ -5324,9 +5299,6 @@ NX_FTP_CLIENT_REQUEST *client_req_ptr;
53245299
/* Increment the number of disconnection requests. */
53255300
ftp_server_ptr -> nx_ftp_server_disconnection_requests++;
53265301

5327-
/* Clear authentication. */
5328-
client_req_ptr -> nx_ftp_client_request_authenticated = NX_FALSE;
5329-
53305302
/* Disable the client request activity timeout. */
53315303
client_req_ptr -> nx_ftp_client_request_activity_timeout = 0;
53325304

@@ -5344,38 +5316,8 @@ NX_FTP_CLIENT_REQUEST *client_req_ptr;
53445316
/* Reset the block bytes. */
53455317
client_req_ptr -> nx_ftp_client_request_block_bytes = 0;
53465318

5347-
/* Check if this client login. */
5348-
if (client_req_ptr -> nx_ftp_client_request_login)
5349-
{
5350-
5351-
/* Call the logout function. */
5352-
5353-
#ifndef NX_DISABLE_IPV4
5354-
/* Does this server have an IPv4 login function? */
5355-
if (ftp_server_ptr -> nx_ftp_logout_ipv4)
5356-
{
5357-
5358-
/* Call the logout which takes IPv4 address input. */
5359-
(ftp_server_ptr -> nx_ftp_logout_ipv4)(ftp_server_ptr,
5360-
client_req_ptr -> nx_ftp_client_request_control_socket.nx_tcp_socket_connect_ip.nxd_ip_address.v4,
5361-
client_req_ptr -> nx_ftp_client_request_control_socket.nx_tcp_socket_connect_port,
5362-
client_req_ptr -> nx_ftp_client_request_username,
5363-
client_req_ptr -> nx_ftp_client_request_password, NX_NULL);
5364-
}
5365-
#endif /* NX_DISABLE_IPV4 */
5366-
if (ftp_server_ptr -> nx_ftp_logout)
5367-
{
5368-
5369-
/* Call the 'duo' logout function which takes IPv6 or IPv4 IP addresses. */
5370-
(ftp_server_ptr -> nx_ftp_logout)(ftp_server_ptr, &(client_req_ptr -> nx_ftp_client_request_control_socket.nx_tcp_socket_connect_ip),
5371-
client_req_ptr -> nx_ftp_client_request_control_socket.nx_tcp_socket_connect_port,
5372-
client_req_ptr -> nx_ftp_client_request_username,
5373-
client_req_ptr -> nx_ftp_client_request_password, NX_NULL);
5374-
}
5375-
5376-
/* Set the login as FALSE. */
5377-
client_req_ptr -> nx_ftp_client_request_login = NX_FALSE;
5378-
}
5319+
/* Logout the client. */
5320+
_nx_ftp_server_logout_client(ftp_server_ptr, client_req_ptr);
53795321

53805322
/* Now disconnect the command socket. */
53815323
nx_tcp_socket_disconnect(&(client_req_ptr -> nx_ftp_client_request_control_socket), NX_FTP_SERVER_TIMEOUT);
@@ -6498,6 +6440,85 @@ UINT size;
64986440
}
64996441
}
65006442

6443+
/**************************************************************************/
6444+
/* */
6445+
/* FUNCTION RELEASE */
6446+
/* */
6447+
/* _nx_ftp_server_logout_client PORTABLE C */
6448+
/* 6.4.3 */
6449+
/* AUTHOR */
6450+
/* */
6451+
/* Yuxin Zhou */
6452+
/* Valentin Batz */
6453+
/* */
6454+
/* DESCRIPTION */
6455+
/* */
6456+
/* This function logs out the client if it was previously logged in */
6457+
/* and resets the authenticated flag so the next connection on this */
6458+
/* socket slot must perform a fresh login. */
6459+
/* */
6460+
/* INPUT */
6461+
/* */
6462+
/* ftp_server_ptr Pointer to FTP server */
6463+
/* client_request_ptr Pointer to FTP client */
6464+
/* */
6465+
/* OUTPUT */
6466+
/* */
6467+
/* None */
6468+
/* */
6469+
/* CALLS */
6470+
/* */
6471+
/* None */
6472+
/* */
6473+
/* CALLED BY */
6474+
/* _nx_ftp_server_control_disconnect_processing */
6475+
/* Disconnect processing */
6476+
/* _nx_ftp_server_command_process */
6477+
/* QUIT command */
6478+
/* _nx_ftp_server_timeout_processing */
6479+
/* Timeout processing */
6480+
/* */
6481+
/**************************************************************************/
6482+
6483+
static VOID _nx_ftp_server_logout_client(NX_FTP_SERVER *ftp_server_ptr, NX_FTP_CLIENT_REQUEST *client_request_ptr)
6484+
{
6485+
/* Check if this client login. */
6486+
if (client_request_ptr -> nx_ftp_client_request_login)
6487+
{
6488+
6489+
/* Call the logout function. */
6490+
6491+
#ifndef NX_DISABLE_IPV4
6492+
/* Does this server have an IPv4 logout function? */
6493+
if (ftp_server_ptr -> nx_ftp_logout_ipv4)
6494+
{
6495+
6496+
/* Call the logout which takes IPv4 address input. */
6497+
(ftp_server_ptr -> nx_ftp_logout_ipv4)(ftp_server_ptr,
6498+
client_request_ptr -> nx_ftp_client_request_control_socket.nx_tcp_socket_connect_ip.nxd_ip_address.v4,
6499+
client_request_ptr -> nx_ftp_client_request_control_socket.nx_tcp_socket_connect_port,
6500+
client_request_ptr -> nx_ftp_client_request_username,
6501+
client_request_ptr -> nx_ftp_client_request_password, NX_NULL);
6502+
}
6503+
#endif /* NX_DISABLE_IPV4 */
6504+
if (ftp_server_ptr -> nx_ftp_logout)
6505+
{
6506+
6507+
/* Call the 'duo' logout function which takes IPv6 or IPv4 IP addresses. */
6508+
(ftp_server_ptr -> nx_ftp_logout)(ftp_server_ptr, &(client_request_ptr -> nx_ftp_client_request_control_socket.nx_tcp_socket_connect_ip),
6509+
client_request_ptr -> nx_ftp_client_request_control_socket.nx_tcp_socket_connect_port,
6510+
client_request_ptr -> nx_ftp_client_request_username,
6511+
client_request_ptr -> nx_ftp_client_request_password, NX_NULL);
6512+
}
6513+
6514+
/* Clear the login flag. */
6515+
client_request_ptr -> nx_ftp_client_request_login = NX_FALSE;
6516+
}
6517+
6518+
/* Always clear authenticated so the next connection on this socket slot
6519+
must perform a fresh USER/PASS exchange. */
6520+
client_request_ptr -> nx_ftp_client_request_authenticated = NX_FALSE;
6521+
}
65016522

65026523
/**************************************************************************/
65036524
/* */

addons/http/nxd_http_server.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3838,7 +3838,7 @@ UINT temp_realm_length = 0;
38383838
"NetX HTTP File Open Failed", sizeof("NetX HTTP File Open Failed") - 1, NX_NULL, 0);
38393839

38403840
/* Error, return to caller. */
3841-
goto put_process_end;
3841+
return;
38423842
}
38433843

38443844

common/inc/nx_api.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -455,8 +455,8 @@ VOID _nx_trace_event_update(TX_TRACE_BUFFER_ENTRY *event, ULONG timestamp, ULONG
455455
#define AZURE_RTOS_NETXDUO
456456
#define NETXDUO_MAJOR_VERSION 6
457457
#define NETXDUO_MINOR_VERSION 5
458-
#define NETXDUO_PATCH_VERSION 0
459-
#define NETXDUO_BUILD_VERSION 202601
458+
#define NETXDUO_PATCH_VERSION 1
459+
#define NETXDUO_BUILD_VERSION 202602
460460
#define NETXDUO_HOTFIX_VERSION ' '
461461

462462
/* Define the following symbols for backward compatibility */

common/src/nx_ram_network_driver.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ ULONG *ethernet_frame_ptr;
259259

260260
#ifdef NX_DEBUG
261261
printf("NetX RAM Driver Initialization - %s\n", ip_ptr -> nx_ip_name);
262-
printf(" IP Address =%08X\n", ip_ptr -> nx_ip_address);
262+
printf(" IP Address =%08lX\n", ip_ptr -> nx_ip_address);
263263
#endif
264264

265265
/* Once the Ethernet controller is initialized, the driver needs to

crypto_libraries/inc/nx_crypto_const.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ extern "C" {
150150
#define NX_CRYPTO_DIGITAL_SIGNATURE_RSA 0x00050001
151151
#define NX_CRYPTO_DIGITAL_SIGNATURE_DSA 0x00050002
152152
#define NX_CRYPTO_DIGITAL_SIGNATURE_ECDSA 0x00050003
153+
#define NX_CRYPTO_DIGITAL_SIGNATURE_RSAPSS 0x00050004
153154

154155
/*Define the elliptic curve algorithm */
155156
/* Values of 16 least significant bits are the same as named curve defined in RFC 4492, section 5.1.1 */

crypto_libraries/inc/nx_crypto_rsa.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,12 @@ UINT _nx_crypto_method_rsa_init(struct NX_CRYPTO_METHOD_STRUCT *method,
116116
VOID **handle,
117117
VOID *crypto_metadata, ULONG crypto_metadata_size);
118118

119+
UINT _nx_crypto_rsa_pss_verify(const UCHAR *message_hash, UINT hash_length,
120+
const UCHAR *em, UINT em_bits,
121+
const NX_CRYPTO_METHOD *hash_method,
122+
VOID *hash_metadata, ULONG hash_metadata_size,
123+
UCHAR *scratch, UINT scratch_length);
124+
119125
#ifdef __cplusplus
120126
}
121127
#endif

crypto_libraries/src/nx_crypto_hkdf.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ NX_CRYPTO_KEEP UINT _nx_crypto_method_hkdf_init(struct NX_CRYPTO_METHOD_STRUCT
9494

9595
/* Initialize IKM with key data. */
9696
hkdf->nx_crypto_hkdf_ikm = key;
97-
hkdf->nx_crypto_hkdf_ikm_length = (key_size_in_bits << 3);
97+
hkdf->nx_crypto_hkdf_ikm_length = (key_size_in_bits >> 3);
9898

9999
/* Initialize HMAC and HASH methods. */
100100
hkdf->nx_crypto_hmac_method = NX_CRYPTO_NULL;

0 commit comments

Comments
 (0)