From fdd6479dcba22978aa69ae0ecbcf3f485ab60b2b Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Tue, 14 Aug 2012 16:45:54 -0700 Subject: [PATCH] refresh --- meta | 7 +++-- patches/fstat | 38 +++++++++++---------------- patches/refresh-temp | 62 -------------------------------------------- 3 files changed, 18 insertions(+), 89 deletions(-) delete mode 100644 patches/refresh-temp diff --git a/meta b/meta index 62da53f1..09eb8c54 100644 --- a/meta +++ b/meta @@ -1,6 +1,6 @@ Version: 1 -Previous: cdff430393ae9f897982e6a104ece4864805fc90 -Head: 45687e1e340e67b9fce1524755dbf9a59f30a259 +Previous: d34f9be4c62bc5bd84e3ed3dfc649494bbba8201 +Head: a2d35a54a942cbbf75812253865bb76bacad9b6b Applied: real-close: 3409f8d6af187d25c63a5d1f8ee8bff5f14555e2 dup2: ca5813e7cf95dee5933fc417e4a34d26f2b01824 @@ -8,8 +8,7 @@ Applied: fork-pass: 9d661d643b62858fe119794e0ca41b5575faa0ce fork-connect: a50a83fb4e574a2cc435bba1abf6f9df3d0cc7a6 sendfile: 9073427ddddfa2f7c93d0ac4a6da9844cb7d2960 - fstat: 54cd7a8f0be1f0af69828c837846f64661ca2c14 - refresh-temp: 45687e1e340e67b9fce1524755dbf9a59f30a259 + fstat: a2d35a54a942cbbf75812253865bb76bacad9b6b Unapplied: dbg-out: 4b4c0572eab77856d8fbb919b1feb8f3502a101a dbg: 0c269855776d3001e37da8c8afe283c20e1d6cd6 diff --git a/patches/fstat b/patches/fstat index c84354a2..9a2b2a40 100644 --- a/patches/fstat +++ b/patches/fstat @@ -1,5 +1,5 @@ Bottom: 03b5e28f4ac8f642409cf46b6a2bfc0da609ec5d -Top: 758d450afd5a63013c7540fa171eea46bb810c1a +Top: 7272e42eaa5f911fa4e114b67fb12099a278a57d Author: Sean Hefty Date: 2012-08-07 09:37:24 -0700 @@ -13,48 +13,40 @@ Signed-off-by: Sean Hefty --- diff --git a/src/preload.c b/src/preload.c -index c6cf176..ec62e69 100644 +index c6cf176..cc2162a 100644 --- a/src/preload.c +++ b/src/preload.c -@@ -87,6 +87,8 @@ struct socket_calls { +@@ -87,6 +87,7 @@ 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); }; static struct socket_calls real; -@@ -280,6 +282,8 @@ static void init_preload(void) +@@ -280,6 +281,7 @@ 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"); rs.bind = dlsym(RTLD_DEFAULT, "rbind"); -@@ -1033,3 +1037,23 @@ ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count) +@@ -1033,3 +1035,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; -+ 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; +} diff --git a/patches/refresh-temp b/patches/refresh-temp deleted file mode 100644 index 0b37ee8c..00000000 --- a/patches/refresh-temp +++ /dev/null @@ -1,62 +0,0 @@ -Bottom: 758d450afd5a63013c7540fa171eea46bb810c1a -Top: 7272e42eaa5f911fa4e114b67fb12099a278a57d -Author: Sean Hefty -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; - } -- 2.46.0