Revert "Revert "Support socket activation of adb server""
Test: actually build both device and client adb this time
This reverts commit c77904e3c5b71e005e70ce0b1022501ac47b5677.
Change-Id: I8c2b8f24884ff36ff2460dab2500bad777100dfd
diff --git a/adb/sysdeps.h b/adb/sysdeps.h
index 466c2ce..0c5a6b4 100644
--- a/adb/sysdeps.h
+++ b/adb/sysdeps.h
@@ -349,8 +349,15 @@
return c == '/';
}
+static __inline__ int get_fd_flags(borrowed_fd fd) {
+ return fcntl(fd.get(), F_GETFD);
+}
+
static __inline__ void close_on_exec(borrowed_fd fd) {
- fcntl(fd.get(), F_SETFD, FD_CLOEXEC);
+ int flags = get_fd_flags(fd);
+ if (flags >= 0 && (flags & FD_CLOEXEC) == 0) {
+ fcntl(fd.get(), F_SETFD, flags | FD_CLOEXEC);
+ }
}
// Open a file and return a file descriptor that may be used with unix_read(),