1#define _GNU_SOURCE 2#include <sys/socket.h> 3 4#include <errno.h> 5#include <netdb.h> 6#include <sys/socket.h> 7#include <sys/types.h> 8 9#include "libc.h" 10 11static int stub_socket(int domain, int type, int protocol) { 12 errno = ENOSYS; 13 return -1; 14} 15weak_alias(stub_socket, socket); 16 17static int stub_socketpair(int domain, int type, int protocol, int fd[2]) { 18 errno = ENOSYS; 19 return -1; 20} 21weak_alias(stub_socketpair, socketpair); 22 23static int stub_shutdown(int fd, int how) { 24 errno = ENOSYS; 25 return -1; 26} 27weak_alias(stub_shutdown, shutdown); 28 29static int stub_bind(int fd, const struct sockaddr* addr, socklen_t len) { 30 errno = ENOSYS; 31 return -1; 32} 33weak_alias(stub_bind, bind); 34 35static int stub_connect(int fd, const struct sockaddr* addr, socklen_t len) { 36 errno = ENOSYS; 37 return -1; 38} 39weak_alias(stub_connect, connect); 40 41static int stub_listen(int fd, int backlog) { 42 errno = ENOSYS; 43 return -1; 44} 45weak_alias(stub_listen, listen); 46 47static int stub_accept4(int fd, struct sockaddr* restrict addr, socklen_t* restrict len, int flags) { 48 errno = ENOSYS; 49 return -1; 50} 51weak_alias(stub_accept4, accept4); 52 53static int stub_getsockname(int fd, struct sockaddr* restrict addr, socklen_t* restrict len) { 54 errno = ENOSYS; 55 return -1; 56} 57weak_alias(stub_getsockname, getsockname); 58 59static int stub_getpeername(int fd, struct sockaddr* restrict addr, socklen_t* restrict len) { 60 errno = ENOSYS; 61 return -1; 62} 63weak_alias(stub_getpeername, getpeername); 64 65static ssize_t stub_sendto(int fd, const void* buf, size_t buflen, int flags, const struct sockaddr* addr, socklen_t addrlen) { 66 errno = ENOSYS; 67 return -1; 68} 69weak_alias(stub_sendto, sendto); 70 71static ssize_t stub_recvfrom(int fd, void* restrict buf, size_t buflen, int flags, struct sockaddr* restrict addr, socklen_t* restrict addrlen) { 72 errno = ENOSYS; 73 return -1; 74} 75weak_alias(stub_recvfrom, recvfrom); 76 77static ssize_t stub_sendmsg(int fd, const struct msghdr* msg, int flags) { 78 errno = ENOSYS; 79 return -1; 80} 81weak_alias(stub_sendmsg, sendmsg); 82 83static ssize_t stub_recvmsg(int fd, struct msghdr* msg, int flags) { 84 errno = ENOSYS; 85 return -1; 86} 87weak_alias(stub_recvmsg, recvmsg); 88 89static int stub_sendmmsg(int fd, struct mmsghdr* msgvec, unsigned int vlen, unsigned int flags) { 90 errno = ENOSYS; 91 return -1; 92} 93weak_alias(stub_sendmmsg, sendmmsg); 94 95static int stub_recvmmsg(int fd, struct mmsghdr* msgvec, unsigned int vlen, unsigned int flags, struct timespec* timeout) { 96 errno = ENOSYS; 97 return -1; 98} 99weak_alias(stub_recvmmsg, recvmmsg); 100 101static int stub_getsockopt(int fd, int level, int optname, void* restrict optval, socklen_t* restrict optlen) { 102 errno = ENOSYS; 103 return -1; 104} 105weak_alias(stub_getsockopt, getsockopt); 106 107static int stub_setsockopt(int fd, int level, int optname, const void* optval, socklen_t optlen) { 108 errno = ENOSYS; 109 return -1; 110} 111weak_alias(stub_setsockopt, setsockopt); 112 113static int stub_sockatmark(int fd) { 114 errno = ENOSYS; 115 return -1; 116} 117weak_alias(stub_sockatmark, sockatmark); 118 119static int stub_getaddrinfo(const char* restrict host, const char* restrict serv, 120 const struct addrinfo* restrict hint, struct addrinfo** restrict res) { 121 errno = ENOSYS; 122 return EAI_SYSTEM; 123} 124weak_alias(stub_getaddrinfo, getaddrinfo); 125 126static void stub_freeaddrinfo(struct addrinfo* p) { 127} 128weak_alias(stub_freeaddrinfo, freeaddrinfo); 129