| // Copyright 2020 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #define _GNU_SOURCE |
| #include <errno.h> |
| #include <ifaddrs.h> |
| #include <netdb.h> |
| #include <sys/socket.h> |
| #include <sys/types.h> |
| |
| #include "libc.h" |
| |
| static int stub_socket(int domain, int type, int protocol) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_socket, socket); |
| |
| static int stub_socketpair(int domain, int type, int protocol, int fd[2]) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_socketpair, socketpair); |
| |
| static int stub_shutdown(int fd, int how) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_shutdown, shutdown); |
| |
| static int stub_bind(int fd, const struct sockaddr* addr, socklen_t len) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_bind, bind); |
| |
| static int stub_connect(int fd, const struct sockaddr* addr, socklen_t len) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_connect, connect); |
| |
| static int stub_listen(int fd, int backlog) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_listen, listen); |
| |
| static int stub_accept4(int fd, struct sockaddr* restrict addr, socklen_t* restrict len, |
| int flags) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_accept4, accept4); |
| |
| static int stub_getsockname(int fd, struct sockaddr* restrict addr, socklen_t* restrict len) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_getsockname, getsockname); |
| |
| static int stub_getpeername(int fd, struct sockaddr* restrict addr, socklen_t* restrict len) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_getpeername, getpeername); |
| |
| static ssize_t stub_sendto(int fd, const void* buf, size_t buflen, int flags, |
| const struct sockaddr* addr, socklen_t addrlen) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_sendto, sendto); |
| |
| static ssize_t stub_recvfrom(int fd, void* restrict buf, size_t buflen, int flags, |
| struct sockaddr* restrict addr, socklen_t* restrict addrlen) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_recvfrom, recvfrom); |
| |
| static ssize_t stub_sendmsg(int fd, const struct msghdr* msg, int flags) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_sendmsg, sendmsg); |
| |
| static ssize_t stub_recvmsg(int fd, struct msghdr* msg, int flags) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_recvmsg, recvmsg); |
| |
| static int stub_sendmmsg(int fd, struct mmsghdr* msgvec, unsigned int vlen, unsigned int flags) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_sendmmsg, sendmmsg); |
| |
| static int stub_recvmmsg(int fd, struct mmsghdr* msgvec, unsigned int vlen, unsigned int flags, |
| struct timespec* timeout) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_recvmmsg, recvmmsg); |
| |
| static int stub_getsockopt(int fd, int level, int optname, void* restrict optval, |
| socklen_t* restrict optlen) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_getsockopt, getsockopt); |
| |
| static int stub_setsockopt(int fd, int level, int optname, const void* optval, socklen_t optlen) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_setsockopt, setsockopt); |
| |
| static int stub_sockatmark(int fd) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_sockatmark, sockatmark); |
| |
| static int stub_getifaddrs(struct ifaddrs** ifap) { |
| errno = ENOSYS; |
| return -1; |
| } |
| weak_alias(stub_getifaddrs, getifaddrs); |
| |
| static void stub_freeifaddrs(struct ifaddrs* ifp) {} |
| weak_alias(stub_freeifaddrs, freeifaddrs); |