--- recv.c.orig 2008-09-01 21:12:58.000000000 -0700
+++ recv.c 2008-09-01 21:13:04.000000000 -0700
@@ -40,11 +40,21 @@ __FBSDID("$FreeBSD: src/lib/libc/net/rec
#include <stddef.h>
#include "un-namespace.h"
+#ifdef VARIANT_CANCELABLE
+ssize_t __recvfrom(int, void *, size_t, int, struct sockaddr * __restrict, socklen_t * __restrict);
+#else /* !VARIANT_CANCELABLE */
+ssize_t __recvfrom_nocancel(int, void *, size_t, int, struct sockaddr * __restrict, socklen_t * __restrict);
+#endif /* VARIANT_CANCELABLE */
+
ssize_t
recv(s, buf, len, flags)
int s, flags;
size_t len;
void *buf;
{
- return (_recvfrom(s, buf, len, flags, NULL, 0));
+#ifdef VARIANT_CANCELABLE
+ return (__recvfrom(s, buf, len, flags, NULL, 0));
+#else /* !VARIANT_CANCELABLE */
+ return (__recvfrom_nocancel(s, buf, len, flags, NULL, 0));
+#endif /* VARIANT_CANCELABLE */
}