summaryrefslogtreecommitdiffstats
path: root/adb/adb_io.cpp
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2015-05-01 17:04:38 -0700
committerElliott Hughes <enh@google.com>2015-05-01 17:36:46 -0700
commitab52c181fa4c1c9891644635dc5653cda5b90e2b (patch)
tree5fdf22f3d3bea5999fc32e5d13c6a74549d688ae /adb/adb_io.cpp
parentb74d889211f30d99c222fa7d3cfaf4a7390d6a95 (diff)
downloadsystem_core-ab52c181fa4c1c9891644635dc5653cda5b90e2b.tar.gz
system_core-ab52c181fa4c1c9891644635dc5653cda5b90e2b.tar.bz2
system_core-ab52c181fa4c1c9891644635dc5653cda5b90e2b.zip
Add WriteFdFmt and clean up more code.
Also say *which* device wasn't found. Bug: http://b/20666660 Change-Id: I50e234ad89e39ae0a8995083c0b642c61275c5a3
Diffstat (limited to 'adb/adb_io.cpp')
-rw-r--r--adb/adb_io.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/adb/adb_io.cpp b/adb/adb_io.cpp
index c34daf9a8..5ae6ec3c3 100644
--- a/adb/adb_io.cpp
+++ b/adb/adb_io.cpp
@@ -16,13 +16,15 @@
#define TRACE_TAG TRACE_RWX
-#include "sysdeps.h"
#include "adb_io.h"
#include <unistd.h>
+#include <base/stringprintf.h>
+
#include "adb_trace.h"
#include "adb_utils.h"
+#include "sysdeps.h"
bool SendProtocolString(int fd, const std::string& s) {
int length = s.size();
@@ -30,9 +32,7 @@ bool SendProtocolString(int fd, const std::string& s) {
length = 0xffff;
}
- char buf[5];
- snprintf(buf, sizeof(buf), "%04x", length);
- return WriteFdExactly(fd, buf, 4) && WriteFdExactly(fd, s);
+ return WriteFdFmt(fd, "%04x", length) && WriteFdExactly(fd, s);
}
bool SendOkay(int fd) {
@@ -111,6 +111,13 @@ bool WriteFdExactly(int fd, const std::string& str) {
return WriteFdExactly(fd, str.c_str(), str.size());
}
-bool WriteStringFully(int fd, const char* str) {
- return WriteFdExactly(fd, str, strlen(str));
+bool WriteFdFmt(int fd, const char* fmt, ...) {
+ std::string str;
+
+ va_list ap;
+ va_start(ap, fmt);
+ android::base::StringAppendV(&str, fmt, ap);
+ va_end(ap);
+
+ return WriteFdExactly(fd, str);
}