_PUBLIC_ int swrap_getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen) { struct socket_info *si = find_socket_info(s); if (!si) { return real_getsockopt(s, level, optname, optval, optlen); } if (level == SOL_SOCKET) { return real_getsockopt(s, level, optname, optval, optlen); } errno = ENOPROTOOPT; return -1; }
int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen) throw() { int retval; print_trace ("%*sgetsockopt(%d, %d, %d, %p, %p)=...\n", indent, "", s, level, optname, optval, optlen); indent+=2; /* call the real getsockopt function */ retval = real_getsockopt (s, level, optname, optval, optlen); indent-=2; print_trace ("%*sgetsockopt(%d, %d, %d, %p, %p)=%d\n", indent, "", s, level, optname, optval, optlen, retval); return retval; }