Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a91640dc6e |
@@ -334,7 +334,6 @@ int net_udp_sendto_exec(int sockfd, const void *buf, int len,
|
|||||||
const struct net_sockaddr_in *dest, TaskHandle_t caller) {
|
const struct net_sockaddr_in *dest, TaskHandle_t caller) {
|
||||||
/* 控制块 */
|
/* 控制块 */
|
||||||
const net_sock_t *p_sock = net_get_sock(sockfd);
|
const net_sock_t *p_sock = net_get_sock(sockfd);
|
||||||
int rc;
|
|
||||||
|
|
||||||
if (p_sock == NULL) {
|
if (p_sock == NULL) {
|
||||||
return NET_ERR_RETURN_1(NET_ERR_BADF);
|
return NET_ERR_RETURN_1(NET_ERR_BADF);
|
||||||
@@ -349,6 +348,7 @@ int net_udp_sendto_exec(int sockfd, const void *buf, int len,
|
|||||||
if (dest != NULL) {
|
if (dest != NULL) {
|
||||||
/* 带显式目的地址:芯片 DesIP 切到该 IP → 客户端模式(硬件行为,如实记账) */
|
/* 带显式目的地址:芯片 DesIP 切到该 IP → 客户端模式(硬件行为,如实记账) */
|
||||||
struct net_sockaddr_in peer;
|
struct net_sockaddr_in peer;
|
||||||
|
int rc;
|
||||||
|
|
||||||
(void)memset(&peer, 0, sizeof(peer));
|
(void)memset(&peer, 0, sizeof(peer));
|
||||||
peer.sin_family = NET_AF_INET;
|
peer.sin_family = NET_AF_INET;
|
||||||
@@ -695,8 +695,6 @@ static void net_udp_src_from_peer(net_sock_t *p_sock, struct net_sockaddr *src_a
|
|||||||
static int net_udp_datagram_read(int sockfd, net_sock_t *p_sock, void *buf, int len,
|
static int net_udp_datagram_read(int sockfd, net_sock_t *p_sock, void *buf, int len,
|
||||||
struct net_sockaddr *src_addr, int *addrlen,
|
struct net_sockaddr *src_addr, int *addrlen,
|
||||||
int avail) {
|
int avail) {
|
||||||
/* 信息头暂存 */
|
|
||||||
uint8_t hdr[NET_UDP_HDR_LEN];
|
|
||||||
/* 本包载荷字节数(剥头后) */
|
/* 本包载荷字节数(剥头后) */
|
||||||
int payload;
|
int payload;
|
||||||
/* 交付调用方的字节数 */
|
/* 交付调用方的字节数 */
|
||||||
@@ -710,6 +708,9 @@ static int net_udp_datagram_read(int sockfd, net_sock_t *p_sock, void *buf, int
|
|||||||
|
|
||||||
if ((p_sock->udp_mode == NET_UDP_MODE_SERVER) &&
|
if ((p_sock->udp_mode == NET_UDP_MODE_SERVER) &&
|
||||||
((uint32_t)avail >= NET_UDP_HDR_LEN)) {
|
((uint32_t)avail >= NET_UDP_HDR_LEN)) {
|
||||||
|
/* 信息头暂存(只在服务器形态用得到,放在本分支栈上) */
|
||||||
|
uint8_t hdr[NET_UDP_HDR_LEN];
|
||||||
|
|
||||||
/* 剥头:读即消费芯片缓冲 */
|
/* 剥头:读即消费芯片缓冲 */
|
||||||
ch395f_read_recv_buf((uint8_t)sockfd, hdr, (uint16_t)NET_UDP_HDR_LEN);
|
ch395f_read_recv_buf((uint8_t)sockfd, hdr, (uint16_t)NET_UDP_HDR_LEN);
|
||||||
net_udp_src_from_header(p_sock, hdr, src_addr, addrlen);
|
net_udp_src_from_header(p_sock, hdr, src_addr, addrlen);
|
||||||
|
|||||||
Reference in New Issue
Block a user