diff --git a/include/sys/socket.h b/include/sys/socket.h index dab6fb53..52d9a8a9 100644 --- a/include/sys/socket.h +++ b/include/sys/socket.h @@ -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); @@ -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); +} + + +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); +} + #ifdef __cplusplus } #endif diff --git a/sys/socket.c b/sys/socket.c index c3594618..c75e048e 100644 --- a/sys/socket.c +++ b/sys/socket.c @@ -31,7 +31,6 @@ #include #include -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)) @@ -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; @@ -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;