mirror of
https://github.com/espressif/esp-idf.git
synced 2025-10-05 12:51:31 +00:00

Add support for socketpair() directly from lwip sockets (if sock-utils included) Add support for gai_strerror() directly from lwip netdb.h (if sock-utils included) Closes https://github.com/espressif/esp-idf/issues/13772 Closes https://github.com/espressif/esp-idf/issues/14849 fix(lwip): prevent socket.h to spellcheck
79 lines
3.2 KiB
C
79 lines
3.2 KiB
C
/*
|
|
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
#pragma once
|
|
|
|
#include_next "lwip/sockets.h"
|
|
#include "sdkconfig.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if LWIP_SOCKET_HAS_SOCKETPAIR
|
|
/**
|
|
* @brief If `LWIP_SOCKET_HAS_SOCKETPAIR=1` lwip can declare socketpair()
|
|
* since it will be defined in en external dependency of lwip
|
|
*/
|
|
#define AF_UNIX 1
|
|
#define PF_LOCAL AF_UNIX
|
|
/**
|
|
* @brief Creates a pair of connected sockets.
|
|
*
|
|
* @param[in] domain Communication domain (e.g., PF_LOCAL).
|
|
* @param[in] type Socket type (e.g., SOCK_STREAM).
|
|
* @param[in] protocol Protocol to be used (usually 0).
|
|
* @param[out] sv Array of two integers to store the file descriptors of the created sockets.
|
|
*
|
|
* @return
|
|
* - 0 on success.
|
|
* - -1 on failure, with `errno` set to indicate the error.
|
|
*/
|
|
int socketpair(int domain, int type, int protocol, int sv[2]);
|
|
#endif
|
|
|
|
static inline int accept(int s,struct sockaddr *addr,socklen_t *addrlen)
|
|
{ return lwip_accept(s,addr,addrlen); }
|
|
static inline int bind(int s,const struct sockaddr *name, socklen_t namelen)
|
|
{ return lwip_bind(s,name,namelen); }
|
|
static inline int shutdown(int s,int how)
|
|
{ return lwip_shutdown(s,how); }
|
|
static inline int getpeername(int s,struct sockaddr *name,socklen_t *namelen)
|
|
{ return lwip_getpeername(s,name,namelen); }
|
|
static inline int getsockname(int s,struct sockaddr *name,socklen_t *namelen)
|
|
{ return lwip_getsockname(s,name,namelen); }
|
|
static inline int setsockopt(int s,int level,int optname,const void *opval,socklen_t optlen)
|
|
{ return lwip_setsockopt(s,level,optname,opval,optlen); }
|
|
static inline int getsockopt(int s,int level,int optname,void *opval,socklen_t *optlen)
|
|
{ return lwip_getsockopt(s,level,optname,opval,optlen); }
|
|
static inline int closesocket(int s)
|
|
{ return lwip_close(s); }
|
|
static inline int connect(int s,const struct sockaddr *name,socklen_t namelen)
|
|
{ return lwip_connect(s,name,namelen); }
|
|
static inline int listen(int s,int backlog)
|
|
{ return lwip_listen(s,backlog); }
|
|
static inline ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags)
|
|
{ return lwip_recvmsg(sockfd, msg, flags); }
|
|
static inline ssize_t recv(int s,void *mem,size_t len,int flags)
|
|
{ return lwip_recv(s,mem,len,flags); }
|
|
static inline ssize_t recvfrom(int s,void *mem,size_t len,int flags,struct sockaddr *from,socklen_t *fromlen)
|
|
{ return lwip_recvfrom(s,mem,len,flags,from,fromlen); }
|
|
static inline ssize_t send(int s,const void *dataptr,size_t size,int flags)
|
|
{ return lwip_send(s,dataptr,size,flags); }
|
|
static inline ssize_t sendmsg(int s,const struct msghdr *message,int flags)
|
|
{ return lwip_sendmsg(s,message,flags); }
|
|
static inline ssize_t sendto(int s,const void *dataptr,size_t size,int flags,const struct sockaddr *to,socklen_t to_len)
|
|
{ return lwip_sendto(s,dataptr,size,flags,to,to_len); }
|
|
static inline int socket(int domain,int type,int protocol)
|
|
{ return lwip_socket(domain,type,protocol); }
|
|
static inline const char *inet_ntop(int af, const void *src, char *dst, socklen_t size)
|
|
{ return lwip_inet_ntop(af, src, dst, size); }
|
|
static inline int inet_pton(int af, const char *src, void *dst)
|
|
{ return lwip_inet_pton(af, src, dst); }
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|