__attribute__ ((visibility("default"))) ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags) { wrapped_calls_recvmsg++; if (fall_back && (flags & MSG_CMSG_CLOEXEC)) { errno = EINVAL; return -1; } return real_recvmsg(sockfd, msg, flags); }
ssize_t recvmsg(int s, struct msghdr *msg, int flags) { ssize_t retval; print_trace ("%*srecvmsg(%d, %p, %d)=...\n", indent, "", s, msg, flags); indent+=2; /* call the real recvmsg function */ retval = real_recvmsg (s, msg, flags); indent-=2; print_trace ("%*srecvmsg(%d, %p, %d)=%d\n", indent, "", s, msg, flags, retval); return retval; }