adb: Set max socket sizes to larger values.
This improves performance of push/pull.
Test: adb push/pull multi GB files.
Bug: 31722483
Change-Id: Ia01574c3db6a740d7a7e64ba1f5bc1fc279fb3f6
diff --git a/adb/services.cpp b/adb/services.cpp
index df1b134..a48d855 100644
--- a/adb/services.cpp
+++ b/adb/services.cpp
@@ -242,6 +242,15 @@
}
D("socketpair: (%d,%d)", s[0], s[1]);
+#if !ADB_HOST
+ if (func == &file_sync_service) {
+ // Set file sync service socket to maximum size
+ int max_buf = LINUX_MAX_SOCKET_SIZE;
+ adb_setsockopt(s[0], SOL_SOCKET, SO_SNDBUF, &max_buf, sizeof(max_buf));
+ adb_setsockopt(s[1], SOL_SOCKET, SO_SNDBUF, &max_buf, sizeof(max_buf));
+ }
+#endif // !ADB_HOST
+
stinfo* sti = reinterpret_cast<stinfo*>(malloc(sizeof(stinfo)));
if (sti == nullptr) {
fatal("cannot allocate stinfo");