WINC BSD compatible Socket Interface.
Copyright (c) 2016-2021 Microchip Technology Inc. and its subsidiaries.
Data Structures | |
struct | in_addr |
IPv4 address representation. More... | |
struct | sockaddr |
Generic socket address structure. More... | |
struct | sockaddr_in |
Socket address structure for IPV4 addresses. Used to specify socket address information to connect to. Can be cast to sockaddr structure. More... | |
struct | tstrSockErr |
Detail about socket failures. Used with get_error_detail. More... | |
struct | tstrSocketAcceptMsg |
Socket accept status. More... | |
struct | tstrSocketBindMsg |
Socket bind status. More... | |
struct | tstrSocketConnectMsg |
Socket connect status. More... | |
struct | tstrSocketListenMsg |
Socket listen status. More... | |
struct | tstrSocketRecvMsg |
Socket recv status. More... | |
Typedefs | |
typedef sint8 | SOCKET |
typedef void(* | tpfAppResolveCb )(uint8 *pu8DomainName, uint32 u32ServerIP) |
DNS resolution callback function. Applications requiring DNS resolution should register their callback through this function by calling registerSocketCallback. The following callback is triggered in response to an asynchronous call to the gethostbyname function (DNS Resolution callback). More... | |
typedef void(* | tpfAppSocketCb )(SOCKET sock, uint8 u8Msg, void *pvMsg) |
The main socket application callback function. Applications register their main socket application callback through this function by calling registerSocketCallback. In response to events received, the following callback function is called to handle the corresponding asynchronous function called. Example: bind, connect,...etc. More... | |
typedef void(* | tpfPingCb )(uint32 u32IPAddr, uint32 u32RTT, uint8 u8ErrorCode) |
PING Callback. More... | |
Enumerations | |
enum | tenuSockErrSource { SOCKET_ERR_UNKNOWN = 0, SOCKET_ERR_TLS_REMOTE, SOCKET_ERR_TLS_LOCAL } |
Source of socket error (local, remote or unknown). More... | |
enum | tenuSocketCallbackMsgType { SOCKET_MSG_BIND = 1, SOCKET_MSG_LISTEN, SOCKET_MSG_DNS_RESOLVE, SOCKET_MSG_ACCEPT, SOCKET_MSG_CONNECT, SOCKET_MSG_RECV, SOCKET_MSG_SEND, SOCKET_MSG_SENDTO, SOCKET_MSG_RECVFROM, SOCKET_MSG_SECURE } |
Asynchronous APIs make use of callback functions in-order to return back the results once the corresponding socket operation is completed. Hence resuming the normal execution of the application code while the socket operation returns the results. Callback functions expect event messages to be passed in, in-order to identify the operation they're returning the results for. The following enum identifies the type of events that are received in the callback function. More... | |
Functions | |
NMI_API sint8 | accept (SOCKET sock, struct sockaddr *addr, uint8 *addrlen) |
NMI_API sint8 | bind (SOCKET sock, struct sockaddr *pstrAddr, uint8 u8AddrLen) |
NMI_API sint8 | close (SOCKET sock) |
NMI_API sint8 | connect (SOCKET sock, struct sockaddr *pstrAddr, uint8 u8AddrLen) |
sint8 | get_alpn_index (SOCKET sock) |
sint8 | get_error_detail (SOCKET sock, tstrSockErr *pstrErr) |
NMI_API sint8 | gethostbyname (uint8 *pcHostName) |
NMI_API sint8 | getsockopt (SOCKET sock, uint8 u8Level, uint8 u8OptName, const void *pvOptValue, uint8 *pu8OptLen) |
NMI_API uint8 | IsSocketReady (void) |
NMI_API sint8 | listen (SOCKET sock, uint8 backlog) |
NMI_API sint8 | m2m_ping_req (uint32 u32DstIP, uint8 u8TTL, tpfPingCb fpPingCb) |
NMI_API uint32 | nmi_inet_addr (char *pcIpAddr) |
NMI_API sint16 | recv (SOCKET sock, void *pvRecvBuf, uint16 u16BufLen, uint32 u32Timeoutmsec) |
NMI_API sint16 | recvfrom (SOCKET sock, void *pvRecvBuf, uint16 u16BufLen, uint32 u32Timeoutmsec) |
NMI_API void | registerSocketCallback (tpfAppSocketCb socket_cb, tpfAppResolveCb resolve_cb) |
sint8 | secure (SOCKET sock) |
NMI_API sint16 | send (SOCKET sock, void *pvSendBuffer, uint16 u16SendLength, uint16 u16Flags) |
NMI_API sint16 | sendto (SOCKET sock, void *pvSendBuffer, uint16 u16SendLength, uint16 flags, struct sockaddr *pstrDestAddr, uint8 u8AddrLen) |
sint8 | set_alpn_list (SOCKET sock, const char *pcProtocolList) |
NMI_API sint8 | setsockopt (SOCKET socket, uint8 u8Level, uint8 option_name, const void *option_value, uint16 u16OptionLen) |
NMI_API SOCKET | socket (uint16 u16Domain, uint8 u8Type, uint8 u8Config) |
NMI_API void | socketDeinit (void) |
Socket Layer De-initialization. More... | |
NMI_API void | socketInit (void) |
NMI_API sint8 | sslEnableCertExpirationCheck (tenuSslCertExpSettings enuValidationSetting) |