doubao_chat/include_lib/net/uC-HTTPc/include/net_app.h

256 lines
12 KiB
C

/*
*********************************************************************************************************
* uC/TCP-IP
* The Embedded TCP/IP Suite
*
* Copyright 2004-2020 Silicon Laboratories Inc. www.silabs.com
*
* SPDX-License-Identifier: APACHE-2.0
*
* This software is subject to an open source license and is distributed by
* Silicon Laboratories Inc. pursuant to the terms of the Apache License,
* Version 2.0 available at www.apache.org/licenses/LICENSE-2.0.
*
*********************************************************************************************************
*/
/*
*********************************************************************************************************
*
* NETWORK APPLICATION PROGRAMMING INTERFACE (API) LAYER
*
* Filename : net_app.h
* Version : V3.06.00
*********************************************************************************************************
*/
/*
*********************************************************************************************************
*********************************************************************************************************
* MODULE
*
* Note(s) : (1) Network Application Programming Interface (API) Layer module is required for :
*
* (a) Applications that require network application programming interface (API) :
* (1) Network socket API with error handling
* (2) Network time delays
*
* See also 'net_cfg.h NETWORK APPLICATION PROGRAMMING INTERFACE (API) LAYER CONFIGURATION'.
*********************************************************************************************************
*********************************************************************************************************
*/
#ifndef NET_APP_MODULE_PRESENT
#define NET_APP_MODULE_PRESENT
/*
*********************************************************************************************************
*********************************************************************************************************
* INCLUDE FILES
*********************************************************************************************************
*********************************************************************************************************
*/
#include "net_cfg_net.h"
#include "net_sock.h"
#include "net_type.h"
#include "net_ip.h"
#include "net_err.h"
/*
*********************************************************************************************************
*********************************************************************************************************
* NETWORK APPLICATION TIME DELAY DEFINES
*********************************************************************************************************
*********************************************************************************************************
*/
#define NET_APP_TIME_DLY_MIN_SEC DEF_INT_32U_MIN_VAL
#define NET_APP_TIME_DLY_MAX_SEC DEF_INT_32U_MAX_VAL
#define NET_APP_TIME_DLY_MIN_mS DEF_INT_32U_MIN_VAL
#define NET_APP_TIME_DLY_MAX_mS (DEF_TIME_NBR_mS_PER_SEC - 1u)
typedef struct net_app_sock_secure_mutual_cfg {
NET_SOCK_SECURE_CERT_KEY_FMT Fmt;
CPU_CHAR *CertPtr;
CPU_INT32U CertSize;
CPU_BOOLEAN CertChained;
CPU_CHAR *KeyPtr;
CPU_INT32U KeySize;
/*增加参数设置*/
CPU_CHAR *CliPtr;
CPU_INT32U CliSize;
} NET_APP_SOCK_SECURE_MUTUAL_CFG;
typedef struct net_app_sock_secure_cfg {
CPU_CHAR *CommonName;
NET_SOCK_SECURE_TRUST_FNCT TrustCallback;
NET_APP_SOCK_SECURE_MUTUAL_CFG *MutualAuthPtr;
void *UserDataPtr; //增加
} NET_APP_SOCK_SECURE_CFG;
/*
*********************************************************************************************************
*********************************************************************************************************
* FUNCTION PROTOTYPES
*********************************************************************************************************
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* EXTERNAL C LANGUAGE LINKAGE
*
* Note(s) : (1) C++ compilers MUST 'extern'ally declare ALL C function prototypes & variable/object
* declarations for correct C language linkage.
*********************************************************************************************************
*/
#ifdef __cplusplus
extern "C" {
#endif
/*
*********************************************************************************************************
* PUBLIC API
*********************************************************************************************************
*/
/* -------------------- SOCK FNCTS -------------------- */
NET_SOCK_ID NetApp_SockOpen(NET_SOCK_PROTOCOL_FAMILY protocol_family,
NET_SOCK_TYPE sock_type,
NET_SOCK_PROTOCOL protocol,
CPU_INT16U retry_max,
CPU_INT32U time_dly_ms,
NET_ERR *p_err);
CPU_BOOLEAN NetApp_SockClose(NET_SOCK_ID sock_id,
CPU_INT32U timeout_ms,
NET_ERR *p_err);
CPU_BOOLEAN NetApp_SockBind(NET_SOCK_ID sock_id,
NET_SOCK_ADDR *p_addr_local,
NET_SOCK_ADDR_LEN addr_len,
CPU_INT16U retry_max,
CPU_INT32U time_dly_ms,
NET_ERR *p_err);
CPU_BOOLEAN NetApp_SockConn(NET_SOCK_ID sock_id,
NET_SOCK_ADDR *p_addr_remote,
NET_SOCK_ADDR_LEN addr_len,
CPU_INT16U retry_max,
CPU_INT32U timeout_ms,
CPU_INT32U time_dly_ms,
NET_ERR *p_err);
CPU_BOOLEAN NetApp_SockListen(NET_SOCK_ID sock_id,
NET_SOCK_Q_SIZE sock_q_size,
NET_ERR *p_err);
NET_SOCK_ID NetApp_SockAccept(NET_SOCK_ID sock_id,
NET_SOCK_ADDR *p_addr_remote,
NET_SOCK_ADDR_LEN *p_addr_len,
CPU_INT16U retry_max,
CPU_INT32U timeout_ms,
CPU_INT32U time_dly_ms,
NET_ERR *p_err);
CPU_INT16U NetApp_SockRx(NET_SOCK_ID sock_id,
void *p_data_buf,
CPU_INT16U data_buf_len,
CPU_INT16U data_rx_th,
NET_SOCK_API_FLAGS flags,
NET_SOCK_ADDR *p_addr_remote,
NET_SOCK_ADDR_LEN *p_addr_len,
CPU_INT16U retry_max,
CPU_INT32U timeout_ms,
CPU_INT32U time_dly_ms,
NET_ERR *p_err);
CPU_INT16U NetApp_SockTx(NET_SOCK_ID sock_id,
void *p_data,
CPU_INT16U data_len,
NET_SOCK_API_FLAGS flags,
NET_SOCK_ADDR *p_addr_remote,
NET_SOCK_ADDR_LEN addr_len,
CPU_INT16U retry_max,
CPU_INT32U timeout_ms,
CPU_INT32U time_dly_ms,
NET_ERR *p_err);
void NetApp_SetSockAddr(NET_SOCK_ADDR *p_sock_addr,
NET_SOCK_ADDR_FAMILY addr_family,
NET_PORT_NBR port_nbr,
CPU_INT08U *p_addr,
NET_IP_ADDR_LEN addr_len,
NET_ERR *p_err);
/* ---------- ADVANCED STREAM OPEN FUNCTION ----------- */
NET_IP_ADDR_FAMILY NetApp_ClientStreamOpenByHostname(NET_SOCK_ID *p_sock_id,
CPU_CHAR *p_host_server,
NET_PORT_NBR port_nbr,
NET_SOCK_ADDR *p_sock_addr,
NET_APP_SOCK_SECURE_CFG *p_secure_cfg,
CPU_INT32U req_timeout_ms,
NET_ERR *p_err);
NET_IP_ADDR_FAMILY NetApp_ClientDatagramOpenByHostname(NET_SOCK_ID *p_sock_id,
CPU_CHAR *p_remote_host_name,
NET_PORT_NBR remote_port_nbr,
NET_IP_ADDR_FAMILY ip_family,
NET_SOCK_ADDR *p_sock_addr,
CPU_BOOLEAN *p_is_hostname,
NET_ERR *p_err);
NET_SOCK_ID NetApp_ClientStreamOpen(CPU_INT08U *p_addr,
NET_IP_ADDR_FAMILY addr_family,
NET_PORT_NBR remote_port_nbr,
NET_SOCK_ADDR *p_sock_addr,
NET_APP_SOCK_SECURE_CFG *p_secure_cfg,
CPU_INT32U req_timeout_ms,
NET_ERR *p_err);
NET_SOCK_ID NetApp_ClientDatagramOpen(CPU_INT08U *p_addr,
NET_IP_ADDR_FAMILY addr_family,
NET_PORT_NBR remote_port_nbr,
NET_SOCK_ADDR *p_sock_addr,
NET_ERR *p_err);
/* ------------------ TIME DLY FNCTS ------------------ */
void NetApp_TimeDly_ms(CPU_INT32U time_dly_ms,
NET_ERR *p_err);
/*
*********************************************************************************************************
* EXTERNAL C LANGUAGE LINKAGE END
*********************************************************************************************************
*/
#ifdef __cplusplus
}
#endif
/*
*********************************************************************************************************
*********************************************************************************************************
* MODULE END
*********************************************************************************************************
*********************************************************************************************************
*/
#endif /* NET_APP_MODULE_PRESENT */