Version: 1
-Previous: 421b6ef2ff2856c851bf273270215cddebd86e2a
+Previous: 03b25dd4da2a27dee6fd29106aefe65ba1fa0b6b
Head: ab2929d76ed7d07fefa17c73a3ee291dab51db5e
Applied:
real-close: 3409f8d6af187d25c63a5d1f8ee8bff5f14555e2
fork-pass: 9d661d643b62858fe119794e0ca41b5575faa0ce
fork-connect: a50a83fb4e574a2cc435bba1abf6f9df3d0cc7a6
sendfile: 9073427ddddfa2f7c93d0ac4a6da9844cb7d2960
+ fstat: ab2929d76ed7d07fefa17c73a3ee291dab51db5e
Unapplied:
dbg-out: 04273ee712db4d53efb390462c1b738bb54a57df
- fstat: a62c653906870422edef5f6388dac9f76c953e35
dbg: 0c269855776d3001e37da8c8afe283c20e1d6cd6
waitall-buggy: c49c6b56c55385774065f5aa2704078e6ae0ceb8
rs-1sge: 8ec392829399dec7ed5c608b8697a482e5faa2de
-Bottom: 3ea2748a5c41b11a2e7033c56bddd938d2770b6c
-Top: 6bbb92f637582964eea7a287f91549c84da9571a
+Bottom: 03b5e28f4ac8f642409cf46b6a2bfc0da609ec5d
+Top: 03b5e28f4ac8f642409cf46b6a2bfc0da609ec5d
Author: Sean Hefty <sean.hefty@intel.com>
Date: 2012-08-07 09:37:24 -0700
---
-diff --git a/src/preload.c b/src/preload.c
-index b18d310..53f8543 100644
---- a/src/preload.c
-+++ b/src/preload.c
-@@ -84,6 +84,7 @@ struct socket_calls {
- void *optval, socklen_t *optlen);
- int (*fcntl)(int socket, int cmd, ... /* arg */);
- int (*dup2)(int oldfd, int newfd);
-+ int (*fxstat64)(int ver, int fd, struct stat64 *buf);
- };
-
- static struct socket_calls real;
-@@ -259,6 +260,7 @@ static void init_preload(void)
- real.getsockopt = dlsym(RTLD_NEXT, "getsockopt");
- real.fcntl = dlsym(RTLD_NEXT, "fcntl");
- real.dup2 = dlsym(RTLD_NEXT, "dup2");
-+ real.fxstat64 = dlsym(RTLD_NEXT, "__fxstat64");
-
- rs.socket = dlsym(RTLD_DEFAULT, "rsocket");
- rs.bind = dlsym(RTLD_DEFAULT, "rbind");
-@@ -961,3 +963,17 @@ int dup2(int oldfd, int newfd)
- atomic_inc(&oldfdi->refcnt);
- return newfd;
- }
-+
-+int __fxstat64(int ver, int socket, struct stat64 *buf)
-+{
-+ int fd, ret;
-+
-+ if (fd_get(socket, &fd) == fd_rsocket) {
-+ ret = real.fxstat64(ver, socket, buf);
-+ if (!ret)
-+ buf->st_mode = (buf->st_mode & ~S_IFMT) | __S_IFSOCK;
-+ } else {
-+ ret = real.fxstat64(ver, fd, buf);
-+ }
-+ return ret;
-+}
+