adb: don't close sockets before hitting EOF.
The standard (RFC 1122 - 4.2.2.13) says that if we call close on a socket while we have pending data, a TCP RST should be sent to the other end to notify it that we didn't read all of its data. However, this can result in data that we've succesfully written out to be dropped on the other end. To avoid this, instead of immediately closing a socket, call shutdown on it instead, and then read from the file descriptor until we hit EOF or an error before closing. Bug: http://b/74616284 Test: ./test_adb.py Test: ./test_device.py Change-Id: I36f72bd14965821dc23de82774b0806b2db24f13
Loading
Please register or sign in to comment