Version: 1
-Previous: 67852db60c77a480319ac729b3f1a3bbe1c1f263
-Head: 54cd7a8f0be1f0af69828c837846f64661ca2c14
+Previous: cdff430393ae9f897982e6a104ece4864805fc90
+Head: 45687e1e340e67b9fce1524755dbf9a59f30a259
Applied:
real-close: 3409f8d6af187d25c63a5d1f8ee8bff5f14555e2
dup2: ca5813e7cf95dee5933fc417e4a34d26f2b01824
fork-connect: a50a83fb4e574a2cc435bba1abf6f9df3d0cc7a6
sendfile: 9073427ddddfa2f7c93d0ac4a6da9844cb7d2960
fstat: 54cd7a8f0be1f0af69828c837846f64661ca2c14
+ refresh-temp: 45687e1e340e67b9fce1524755dbf9a59f30a259
Unapplied:
dbg-out: 4b4c0572eab77856d8fbb919b1feb8f3502a101a
dbg: 0c269855776d3001e37da8c8afe283c20e1d6cd6
--- /dev/null
+Bottom: 758d450afd5a63013c7540fa171eea46bb810c1a
+Top: 7272e42eaa5f911fa4e114b67fb12099a278a57d
+Author: Sean Hefty <sean.hefty@intel.com>
+Date: 2012-08-14 16:45:54 -0700
+
+Refresh of fstat
+
+---
+
+diff --git a/src/preload.c b/src/preload.c
+index ec62e69..cc2162a 100644
+--- a/src/preload.c
++++ b/src/preload.c
+@@ -87,7 +87,6 @@ struct socket_calls {
+ int (*fcntl)(int socket, int cmd, ... /* arg */);
+ int (*dup2)(int oldfd, int newfd);
+ ssize_t (*sendfile)(int out_fd, int in_fd, off_t *offset, size_t count);
+- int (*fxstat64)(int ver, int fd, struct stat64 *buf);
+ int (*fxstat)(int ver, int fd, struct stat *buf);
+ };
+
+@@ -282,7 +281,6 @@ static void init_preload(void)
+ real.fcntl = dlsym(RTLD_NEXT, "fcntl");
+ real.dup2 = dlsym(RTLD_NEXT, "dup2");
+ real.sendfile = dlsym(RTLD_NEXT, "sendfile");
+- real.fxstat64 = dlsym(RTLD_NEXT, "__fxstat64");
+ real.fxstat = dlsym(RTLD_NEXT, "__fxstat");
+
+ rs.socket = dlsym(RTLD_DEFAULT, "rsocket");
+@@ -1038,22 +1036,16 @@ ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t 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;
+- return real.fxstat64(ver, socket, buf);
+-}
+-
+ int __fxstat(int ver, int socket, struct stat *buf)
+ {
+- return real.fxstat(ver, socket, buf);
++ int fd, ret;
++
++ if (fd_get(socket, &fd) == fd_rsocket) {
++ ret = real.fxstat(ver, socket, buf);
++ if (!ret)
++ buf->st_mode = (buf->st_mode & ~S_IFMT) | __S_IFSOCK;
++ } else {
++ ret = real.fxstat(ver, fd, buf);
++ }
++ return ret;
+ }