Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 17 additions & 3 deletions include/sys/socket.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,8 @@ int connect(int socket, const struct sockaddr *address, socklen_t address_len);
int bind(int socket, const struct sockaddr *address, socklen_t address_len);
int listen(int socket, int backlog);
int accept4(int socket, struct sockaddr *address, socklen_t *address_len, int flags);
int accept(int socket, struct sockaddr *address, socklen_t *address_len);
ssize_t send(int socket, const void *message, size_t length, int flags);
ssize_t sendto(int socket, const void *message, size_t length, int flags, const struct sockaddr *dest_addr, socklen_t dest_len);
ssize_t sendmsg(int socket, const struct msghdr *msg, int flags) __attribute__((warning("sendmsg() is not fully supported")));
ssize_t recv(int socket, void *message, size_t length, int flags);
ssize_t recvfrom(int socket, void *message, size_t length, int flags, struct sockaddr *src_addr, socklen_t *src_len);
ssize_t recvmsg(int socket, struct msghdr *msg, int flags) __attribute__((warning("recvmsg() is not fully supported")));
int getpeername(int socket, struct sockaddr *address, socklen_t *address_len);
Expand All @@ -86,6 +83,23 @@ int shutdown(int socket, int how);
int socketpair(int domain, int type, int protocol, int socket_vector[2]);


inline int accept(int socket, struct sockaddr *address, socklen_t *address_len)
{
return accept4(socket, address, address_len, 0);
}
Comment thread
xvuko marked this conversation as resolved.


inline ssize_t send(int socket, const void *message, size_t length, int flags)
{
return sendto(socket, message, length, flags, NULL, 0);
}


inline ssize_t recv(int socket, void *message, size_t length, int flags)
{
return recvfrom(socket, message, length, flags, NULL, 0);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit from previous implementation: last argument is a pointer, so NULL could be more readable

}

#ifdef __cplusplus
}
#endif
Expand Down
19 changes: 6 additions & 13 deletions sys/socket.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
#include <ifaddrs.h>
#include <limits.h>

WRAP_ERRNO_DEF(int, accept, (int socket, struct sockaddr *address, socklen_t *address_len), (socket, address, address_len))
WRAP_ERRNO_DEF(int, accept4, (int socket, struct sockaddr *address, socklen_t *address_len, int flags), (socket, address, address_len, flags))
WRAP_ERRNO_DEF(int, bind, (int socket, const struct sockaddr *address, socklen_t address_len), (socket, address, address_len))
WRAP_ERRNO_DEF(int, connect, (int socket, const struct sockaddr *address, socklen_t address_len), (socket, address, address_len))
Expand All @@ -53,6 +52,12 @@ extern ssize_t sys_sendmsg(int socket, const struct msghdr *msg, int flags);

int h_errno;

/* inline wrappers defined in sys/socket.h */
extern inline int accept(int socket, struct sockaddr *address, socklen_t *address_len);
extern inline ssize_t send(int socket, const void *message, size_t length, int flags);
extern inline ssize_t recv(int socket, void *message, size_t length, int flags);


static int socksrvcall(msg_t *msg)
{
oid_t oid;
Expand All @@ -66,18 +71,6 @@ static int socksrvcall(msg_t *msg)
}


ssize_t send(int socket, const void *message, size_t length, int flags)
{
return sendto(socket, message, length, flags, NULL, 0);
}


ssize_t recv(int socket, void *message, size_t length, int flags)
{
return recvfrom(socket, message, length, flags, NULL, 0);
}


static inline ssize_t iov_total_len(const struct iovec *iov, size_t iovcnt)
{
ssize_t tot_len = 0;
Expand Down
Loading