Merge "Make clear of the data length sent by write_packet."

This commit is contained in:
Yabin Cui 2015-07-31 16:48:25 +00:00 committed by Gerrit Code Review
commit dc1fb361f3

View file

@ -126,19 +126,18 @@ static void dump_packet(const char* name, const char* func, apacket* p) {
static int static int
read_packet(int fd, const char* name, apacket** ppacket) read_packet(int fd, const char* name, apacket** ppacket)
{ {
char *p = (char*)ppacket; /* really read a packet address */ char buff[8];
int r;
int len = sizeof(*ppacket);
char buff[8];
if (!name) { if (!name) {
snprintf(buff, sizeof buff, "fd=%d", fd); snprintf(buff, sizeof buff, "fd=%d", fd);
name = buff; name = buff;
} }
char* p = reinterpret_cast<char*>(ppacket); /* really read a packet address */
int len = sizeof(apacket*);
while(len > 0) { while(len > 0) {
r = adb_read(fd, p, len); int r = adb_read(fd, p, len);
if(r > 0) { if(r > 0) {
len -= r; len -= r;
p += r; p += r;
} else { } else {
D("%s: read_packet (fd=%d), error ret=%d errno=%d: %s\n", name, fd, r, errno, strerror(errno)); D("%s: read_packet (fd=%d), error ret=%d errno=%d: %s\n", name, fd, r, errno, strerror(errno));
if((r < 0) && (errno == EINTR)) continue; if((r < 0) && (errno == EINTR)) continue;
@ -155,20 +154,18 @@ read_packet(int fd, const char* name, apacket** ppacket)
static int static int
write_packet(int fd, const char* name, apacket** ppacket) write_packet(int fd, const char* name, apacket** ppacket)
{ {
char *p = (char*) ppacket; /* we really write the packet address */
int r, len = sizeof(ppacket);
char buff[8]; char buff[8];
if (!name) { if (!name) {
snprintf(buff, sizeof buff, "fd=%d", fd); snprintf(buff, sizeof buff, "fd=%d", fd);
name = buff; name = buff;
} }
if (ADB_TRACING) { if (ADB_TRACING) {
dump_packet(name, "to remote", *ppacket); dump_packet(name, "to remote", *ppacket);
} }
len = sizeof(ppacket); char* p = reinterpret_cast<char*>(ppacket); /* we really write the packet address */
int len = sizeof(apacket*);
while(len > 0) { while(len > 0) {
r = adb_write(fd, p, len); int r = adb_write(fd, p, len);
if(r > 0) { if(r > 0) {
len -= r; len -= r;
p += r; p += r;