Loading cmds/dumpstate/dumpstate.cpp +17 −22 Original line number Diff line number Diff line Loading @@ -48,7 +48,6 @@ #include <private/android_logger.h> #include "dumpstate.h" #include "ziparchive/zip_writer.h" #include <openssl/sha.h> Loading @@ -58,10 +57,6 @@ static const char *dump_traces_path = NULL; // TODO: variables and functions below should be part of dumpstate object // TODO: Can't be added to dumpstate.h because including "ziparchive/zip_writer.h" would not work. // That's probably because of the dumpstate -> libdumpstate -> device implementation setup, which // might be changed anyways - let's keep it here and wait static std::unique_ptr<ZipWriter> zip_writer; static std::set<std::string> mount_points; void add_mountinfo(); Loading Loading @@ -695,7 +690,7 @@ void Dumpstate::PrintHeader() const { } bool Dumpstate::IsZipping() const { return zip_writer != nullptr; return zip_writer_ != nullptr; } // List of file extensions that can cause a zip file attachment to be rejected by some email Loading Loading @@ -727,10 +722,10 @@ bool Dumpstate::AddZipEntryFromFd(const std::string& entry_name, int fd) { // Logging statement below is useful to time how long each entry takes, but it's too verbose. // MYLOGD("Adding zip entry %s\n", entry_name.c_str()); int32_t err = zip_writer->StartEntryWithTime(valid_name.c_str(), ZipWriter::kCompress, int32_t err = zip_writer_->StartEntryWithTime(valid_name.c_str(), ZipWriter::kCompress, get_mtime(fd, ds.now_)); if (err != 0) { MYLOGE("zip_writer->StartEntryWithTime(%s): %s\n", valid_name.c_str(), MYLOGE("zip_writer_->StartEntryWithTime(%s): %s\n", valid_name.c_str(), ZipWriter::ErrorCodeString(err)); return false; } Loading @@ -744,16 +739,16 @@ bool Dumpstate::AddZipEntryFromFd(const std::string& entry_name, int fd) { MYLOGE("read(%s): %s\n", entry_name.c_str(), strerror(errno)); return false; } err = zip_writer->WriteBytes(buffer.data(), bytes_read); err = zip_writer_->WriteBytes(buffer.data(), bytes_read); if (err) { MYLOGE("zip_writer->WriteBytes(): %s\n", ZipWriter::ErrorCodeString(err)); MYLOGE("zip_writer_->WriteBytes(): %s\n", ZipWriter::ErrorCodeString(err)); return false; } } err = zip_writer->FinishEntry(); err = zip_writer_->FinishEntry(); if (err != 0) { MYLOGE("zip_writer->FinishEntry(): %s\n", ZipWriter::ErrorCodeString(err)); MYLOGE("zip_writer_->FinishEntry(): %s\n", ZipWriter::ErrorCodeString(err)); return false; } Loading Loading @@ -793,23 +788,23 @@ bool Dumpstate::AddTextZipEntry(const std::string& entry_name, const std::string return false; } MYLOGD("Adding zip text entry %s\n", entry_name.c_str()); int32_t err = zip_writer->StartEntryWithTime(entry_name.c_str(), ZipWriter::kCompress, ds.now_); int32_t err = zip_writer_->StartEntryWithTime(entry_name.c_str(), ZipWriter::kCompress, ds.now_); if (err != 0) { MYLOGE("zip_writer->StartEntryWithTime(%s): %s\n", entry_name.c_str(), MYLOGE("zip_writer_->StartEntryWithTime(%s): %s\n", entry_name.c_str(), ZipWriter::ErrorCodeString(err)); return false; } err = zip_writer->WriteBytes(content.c_str(), content.length()); err = zip_writer_->WriteBytes(content.c_str(), content.length()); if (err != 0) { MYLOGE("zip_writer->WriteBytes(%s): %s\n", entry_name.c_str(), MYLOGE("zip_writer_->WriteBytes(%s): %s\n", entry_name.c_str(), ZipWriter::ErrorCodeString(err)); return false; } err = zip_writer->FinishEntry(); err = zip_writer_->FinishEntry(); if (err != 0) { MYLOGE("zip_writer->FinishEntry(): %s\n", ZipWriter::ErrorCodeString(err)); MYLOGE("zip_writer_->FinishEntry(): %s\n", ZipWriter::ErrorCodeString(err)); return false; } Loading Loading @@ -1254,9 +1249,9 @@ bool Dumpstate::FinishZipFile() { redirect_to_existing_file(stderr, const_cast<char*>(ds.log_path_.c_str())); fprintf(stderr, "\n"); int32_t err = zip_writer->Finish(); int32_t err = zip_writer_->Finish(); if (err != 0) { MYLOGE("zip_writer->Finish(): %s\n", ZipWriter::ErrorCodeString(err)); MYLOGE("zip_writer_->Finish(): %s\n", ZipWriter::ErrorCodeString(err)); return false; } Loading Loading @@ -1503,7 +1498,7 @@ int main(int argc, char *argv[]) { MYLOGE("fopen(%s, 'wb'): %s\n", ds.path_.c_str(), strerror(errno)); do_zip_file = 0; } else { zip_writer.reset(new ZipWriter(ds.zip_file.get())); ds.zip_writer_.reset(new ZipWriter(ds.zip_file.get())); } ds.AddTextZipEntry("version.txt", ds.version_); } Loading cmds/dumpstate/dumpstate.h +6 −2 Original line number Diff line number Diff line Loading @@ -17,8 +17,6 @@ #ifndef FRAMEWORK_NATIVE_CMD_DUMPSTATE_H_ #define FRAMEWORK_NATIVE_CMD_DUMPSTATE_H_ #include <android-base/macros.h> #ifndef MYLOGD #define MYLOGD(...) fprintf(stderr, __VA_ARGS__); ALOGD(__VA_ARGS__); #endif Loading @@ -39,6 +37,9 @@ #include <string> #include <vector> #include <android-base/macros.h> #include <ziparchive/zip_writer.h> // Workaround for const char *args[MAX_ARGS_ARRAY_SIZE] variables until they're converted to // std::vector<std::string> // TODO: remove once not used Loading Loading @@ -383,6 +384,9 @@ class Dumpstate { // Pointer to the zipped file. std::unique_ptr<FILE, int (*)(FILE*)> zip_file{nullptr, fclose}; // Pointer to the zip structure. std::unique_ptr<ZipWriter> zip_writer_; private: // Used by GetInstance() only. Dumpstate(const std::string& version = VERSION_CURRENT, bool dry_run = false, Loading Loading
cmds/dumpstate/dumpstate.cpp +17 −22 Original line number Diff line number Diff line Loading @@ -48,7 +48,6 @@ #include <private/android_logger.h> #include "dumpstate.h" #include "ziparchive/zip_writer.h" #include <openssl/sha.h> Loading @@ -58,10 +57,6 @@ static const char *dump_traces_path = NULL; // TODO: variables and functions below should be part of dumpstate object // TODO: Can't be added to dumpstate.h because including "ziparchive/zip_writer.h" would not work. // That's probably because of the dumpstate -> libdumpstate -> device implementation setup, which // might be changed anyways - let's keep it here and wait static std::unique_ptr<ZipWriter> zip_writer; static std::set<std::string> mount_points; void add_mountinfo(); Loading Loading @@ -695,7 +690,7 @@ void Dumpstate::PrintHeader() const { } bool Dumpstate::IsZipping() const { return zip_writer != nullptr; return zip_writer_ != nullptr; } // List of file extensions that can cause a zip file attachment to be rejected by some email Loading Loading @@ -727,10 +722,10 @@ bool Dumpstate::AddZipEntryFromFd(const std::string& entry_name, int fd) { // Logging statement below is useful to time how long each entry takes, but it's too verbose. // MYLOGD("Adding zip entry %s\n", entry_name.c_str()); int32_t err = zip_writer->StartEntryWithTime(valid_name.c_str(), ZipWriter::kCompress, int32_t err = zip_writer_->StartEntryWithTime(valid_name.c_str(), ZipWriter::kCompress, get_mtime(fd, ds.now_)); if (err != 0) { MYLOGE("zip_writer->StartEntryWithTime(%s): %s\n", valid_name.c_str(), MYLOGE("zip_writer_->StartEntryWithTime(%s): %s\n", valid_name.c_str(), ZipWriter::ErrorCodeString(err)); return false; } Loading @@ -744,16 +739,16 @@ bool Dumpstate::AddZipEntryFromFd(const std::string& entry_name, int fd) { MYLOGE("read(%s): %s\n", entry_name.c_str(), strerror(errno)); return false; } err = zip_writer->WriteBytes(buffer.data(), bytes_read); err = zip_writer_->WriteBytes(buffer.data(), bytes_read); if (err) { MYLOGE("zip_writer->WriteBytes(): %s\n", ZipWriter::ErrorCodeString(err)); MYLOGE("zip_writer_->WriteBytes(): %s\n", ZipWriter::ErrorCodeString(err)); return false; } } err = zip_writer->FinishEntry(); err = zip_writer_->FinishEntry(); if (err != 0) { MYLOGE("zip_writer->FinishEntry(): %s\n", ZipWriter::ErrorCodeString(err)); MYLOGE("zip_writer_->FinishEntry(): %s\n", ZipWriter::ErrorCodeString(err)); return false; } Loading Loading @@ -793,23 +788,23 @@ bool Dumpstate::AddTextZipEntry(const std::string& entry_name, const std::string return false; } MYLOGD("Adding zip text entry %s\n", entry_name.c_str()); int32_t err = zip_writer->StartEntryWithTime(entry_name.c_str(), ZipWriter::kCompress, ds.now_); int32_t err = zip_writer_->StartEntryWithTime(entry_name.c_str(), ZipWriter::kCompress, ds.now_); if (err != 0) { MYLOGE("zip_writer->StartEntryWithTime(%s): %s\n", entry_name.c_str(), MYLOGE("zip_writer_->StartEntryWithTime(%s): %s\n", entry_name.c_str(), ZipWriter::ErrorCodeString(err)); return false; } err = zip_writer->WriteBytes(content.c_str(), content.length()); err = zip_writer_->WriteBytes(content.c_str(), content.length()); if (err != 0) { MYLOGE("zip_writer->WriteBytes(%s): %s\n", entry_name.c_str(), MYLOGE("zip_writer_->WriteBytes(%s): %s\n", entry_name.c_str(), ZipWriter::ErrorCodeString(err)); return false; } err = zip_writer->FinishEntry(); err = zip_writer_->FinishEntry(); if (err != 0) { MYLOGE("zip_writer->FinishEntry(): %s\n", ZipWriter::ErrorCodeString(err)); MYLOGE("zip_writer_->FinishEntry(): %s\n", ZipWriter::ErrorCodeString(err)); return false; } Loading Loading @@ -1254,9 +1249,9 @@ bool Dumpstate::FinishZipFile() { redirect_to_existing_file(stderr, const_cast<char*>(ds.log_path_.c_str())); fprintf(stderr, "\n"); int32_t err = zip_writer->Finish(); int32_t err = zip_writer_->Finish(); if (err != 0) { MYLOGE("zip_writer->Finish(): %s\n", ZipWriter::ErrorCodeString(err)); MYLOGE("zip_writer_->Finish(): %s\n", ZipWriter::ErrorCodeString(err)); return false; } Loading Loading @@ -1503,7 +1498,7 @@ int main(int argc, char *argv[]) { MYLOGE("fopen(%s, 'wb'): %s\n", ds.path_.c_str(), strerror(errno)); do_zip_file = 0; } else { zip_writer.reset(new ZipWriter(ds.zip_file.get())); ds.zip_writer_.reset(new ZipWriter(ds.zip_file.get())); } ds.AddTextZipEntry("version.txt", ds.version_); } Loading
cmds/dumpstate/dumpstate.h +6 −2 Original line number Diff line number Diff line Loading @@ -17,8 +17,6 @@ #ifndef FRAMEWORK_NATIVE_CMD_DUMPSTATE_H_ #define FRAMEWORK_NATIVE_CMD_DUMPSTATE_H_ #include <android-base/macros.h> #ifndef MYLOGD #define MYLOGD(...) fprintf(stderr, __VA_ARGS__); ALOGD(__VA_ARGS__); #endif Loading @@ -39,6 +37,9 @@ #include <string> #include <vector> #include <android-base/macros.h> #include <ziparchive/zip_writer.h> // Workaround for const char *args[MAX_ARGS_ARRAY_SIZE] variables until they're converted to // std::vector<std::string> // TODO: remove once not used Loading Loading @@ -383,6 +384,9 @@ class Dumpstate { // Pointer to the zipped file. std::unique_ptr<FILE, int (*)(FILE*)> zip_file{nullptr, fclose}; // Pointer to the zip structure. std::unique_ptr<ZipWriter> zip_writer_; private: // Used by GetInstance() only. Dumpstate(const std::string& version = VERSION_CURRENT, bool dry_run = false, Loading