Version: 1
-Previous: 03b25dd4da2a27dee6fd29106aefe65ba1fa0b6b
-Head: ab2929d76ed7d07fefa17c73a3ee291dab51db5e
+Previous: d4100a151d1d7542204c48fde0c1f16e7ff4bc03
+Head: cc104131d3772a84bd4f0e59d7b6abb62ea0be01
Applied:
real-close: 3409f8d6af187d25c63a5d1f8ee8bff5f14555e2
dup2: ca5813e7cf95dee5933fc417e4a34d26f2b01824
fork-connect: a50a83fb4e574a2cc435bba1abf6f9df3d0cc7a6
sendfile: 9073427ddddfa2f7c93d0ac4a6da9844cb7d2960
fstat: ab2929d76ed7d07fefa17c73a3ee291dab51db5e
+ refresh-temp: cc104131d3772a84bd4f0e59d7b6abb62ea0be01
Unapplied:
dbg-out: 04273ee712db4d53efb390462c1b738bb54a57df
dbg: 0c269855776d3001e37da8c8afe283c20e1d6cd6
--- /dev/null
+Bottom: 03b5e28f4ac8f642409cf46b6a2bfc0da609ec5d
+Top: 3bb516909d69e30fc529f1702bc96db012fce103
+Author: Sean Hefty <sean.hefty@intel.com>
+Date: 2012-08-14 15:54:19 -0700
+
+Refresh of fstat
+
+---
+
+diff --git a/src/preload.c b/src/preload.c
+index c6cf176..f0c4174 100644
+--- a/src/preload.c
++++ b/src/preload.c
+@@ -86,7 +86,11 @@ struct socket_calls {
+ void *optval, socklen_t *optlen);
+ int (*fcntl)(int socket, int cmd, ... /* arg */);
+ int (*dup2)(int oldfd, int newfd);
++<<<<<<< current
+ ssize_t (*sendfile)(int out_fd, int in_fd, off_t *offset, size_t count);
++=======
++ int (*fxstat64)(int ver, int fd, struct stat64 *buf);
++>>>>>>> patched
+ };
+
+ static struct socket_calls real;
+@@ -279,7 +283,11 @@ static void init_preload(void)
+ real.getsockopt = dlsym(RTLD_NEXT, "getsockopt");
+ real.fcntl = dlsym(RTLD_NEXT, "fcntl");
+ real.dup2 = dlsym(RTLD_NEXT, "dup2");
++<<<<<<< current
+ real.sendfile = dlsym(RTLD_NEXT, "sendfile");
++=======
++ real.fxstat64 = dlsym(RTLD_NEXT, "__fxstat64");
++>>>>>>> patched
+
+ rs.socket = dlsym(RTLD_DEFAULT, "rsocket");
+ rs.bind = dlsym(RTLD_DEFAULT, "rbind");
+@@ -1033,3 +1041,17 @@ ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count)
+ munmap(file_addr, count);
+ return ret;
+ }
++
++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;
++}