recv.c.patch   [plain text]


--- 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 */
 }