Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: src/platform/update_engine/omaha_request_prep_action.cc

Issue 1881001: AU: Many minor cleanup changes (Closed) Base URL: ssh://git@chromiumos-git/chromeos
Patch Set: fixes for review Created 10 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "update_engine/omaha_request_prep_action.h" 5 #include "update_engine/omaha_request_prep_action.h"
6 #include <sys/utsname.h> 6 #include <sys/utsname.h>
7 #include <errno.h> 7 #include <errno.h>
8 #include <string> 8 #include <string>
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "update_engine/utils.h" 10 #include "update_engine/utils.h"
(...skipping 10 matching lines...) Expand all
21 } 21 }
22 } // namespace {} 22 } // namespace {}
23 23
24 namespace chromeos_update_engine { 24 namespace chromeos_update_engine {
25 25
26 void OmahaRequestPrepAction::PerformAction() { 26 void OmahaRequestPrepAction::PerformAction() {
27 // TODO(adlr): honor force_full_update_ 27 // TODO(adlr): honor force_full_update_
28 ScopedActionCompleter completer(processor_, this); 28 ScopedActionCompleter completer(processor_, this);
29 string machine_id; 29 string machine_id;
30 TEST_AND_RETURN(GetMachineId(&machine_id)); 30 TEST_AND_RETURN(GetMachineId(&machine_id));
31 const string version(GetLsbValue("GOOGLE_RELEASE")); 31 const string version(GetLsbValue("CHROMEOS_RELEASE_VERSION", ""));
32 const string sp(version + "_" + GetMachineType()); 32 const string sp(version + "_" + GetMachineType());
33 const string track(GetLsbValue("GOOGLE_TRACK")); 33 const string track(GetLsbValue("CHROMEOS_RELEASE_TRACK", ""));
34 const string update_url(GetLsbValue("CHROMEOS_AUSERVER",
35 UpdateCheckParams::kUpdateUrl));
34 36
35 UpdateCheckParams out(machine_id, // machine_id 37 UpdateCheckParams out(machine_id, // machine_id
36 machine_id, // user_id (use machine_id) 38 machine_id, // user_id (use machine_id)
37 UpdateCheckParams::kOsPlatform, 39 UpdateCheckParams::kOsPlatform,
38 UpdateCheckParams::kOsVersion, 40 UpdateCheckParams::kOsVersion,
39 sp, // e.g. 0.2.3.3_i686 41 sp, // e.g. 0.2.3.3_i686
40 UpdateCheckParams::kAppId, 42 UpdateCheckParams::kAppId,
41 version, // app version (from lsb-release) 43 version, // app version (from lsb-release)
42 "en-US", //lang 44 "en-US", // lang
43 track); // track 45 track, // track
46 UpdateCheckParams::kUpdateUrl);
44 47
45 CHECK(HasOutputPipe()); 48 CHECK(HasOutputPipe());
46 SetOutputObject(out); 49 SetOutputObject(out);
47 completer.set_success(true); 50 completer.set_success(true);
48 } 51 }
49 52
50 namespace { 53 namespace {
51 const size_t kGuidDataByteLength = 128 / 8; 54 const size_t kGuidDataByteLength = 128 / 8;
52 const string::size_type kGuidStringLength = 38; 55 const string::size_type kGuidStringLength = 38;
53 // Formats 16 bytes (128 bits) of data as a GUID: 56 // Formats 16 bytes (128 bits) of data as a GUID:
(...skipping 28 matching lines...) Expand all
82 TEST_AND_RETURN_FALSE_ERRNO(rc > 0); 85 TEST_AND_RETURN_FALSE_ERRNO(rc > 0);
83 bytes_read += rc; 86 bytes_read += rc;
84 } 87 }
85 string guid = GuidFromData(buf); 88 string guid = GuidFromData(buf);
86 TEST_AND_RETURN_FALSE( 89 TEST_AND_RETURN_FALSE(
87 utils::WriteFile(omaha_id_path.c_str(), guid.data(), guid.size())); 90 utils::WriteFile(omaha_id_path.c_str(), guid.data(), guid.size()));
88 *out_id = guid; 91 *out_id = guid;
89 return true; 92 return true;
90 } 93 }
91 94
92 std::string OmahaRequestPrepAction::GetLsbValue(const std::string& key) const { 95 string OmahaRequestPrepAction::GetLsbValue(
96 const string& key, const string& default_value) const {
93 string files[] = {string(utils::kStatefulPartition) + "/etc/lsb-release", 97 string files[] = {string(utils::kStatefulPartition) + "/etc/lsb-release",
94 "/etc/lsb-release"}; 98 "/etc/lsb-release"};
95 for (unsigned int i = 0; i < arraysize(files); i++) { 99 for (unsigned int i = 0; i < arraysize(files); i++) {
100 // TODO(adlr): make sure files checked are owned as root (and all
101 // their parents are recursively, too).
96 string file_data; 102 string file_data;
97 if (!utils::ReadFileToString(root_ + files[i], &file_data)) 103 if (!utils::ReadFileToString(root_ + files[i], &file_data))
98 continue; 104 continue;
99 string::size_type pos = 0; 105 string::size_type pos = 0;
100 if (!utils::StringHasPrefix(file_data, key + "=")) { 106 if (!utils::StringHasPrefix(file_data, key + "=")) {
101 pos = file_data.find(string("\n") + key + "="); 107 pos = file_data.find(string("\n") + key + "=");
102 if (pos != string::npos) 108 if (pos != string::npos)
103 pos++; // advance past \n 109 pos++; // advance past \n
104 } 110 }
105 if (pos == string::npos) 111 if (pos == string::npos)
106 continue; 112 continue;
107 pos += key.size() + 1; // advance past the key and the '=' 113 pos += key.size() + 1; // advance past the key and the '='
108 string::size_type endpos = file_data.find('\n', pos); 114 string::size_type endpos = file_data.find('\n', pos);
109 string::size_type length = 115 string::size_type length =
110 (endpos == string::npos ? string::npos : endpos - pos); 116 (endpos == string::npos ? string::npos : endpos - pos);
111 return file_data.substr(pos, length); 117 return file_data.substr(pos, length);
112 } 118 }
113 // not found 119 // not found
114 return ""; 120 return default_value;
115 } 121 }
116 122
117 std::string OmahaRequestPrepAction::GetMachineType() const { 123 string OmahaRequestPrepAction::GetMachineType() const {
118 struct utsname buf; 124 struct utsname buf;
119 string ret; 125 string ret;
120 if (uname(&buf) == 0) 126 if (uname(&buf) == 0)
121 ret = buf.machine; 127 ret = buf.machine;
122 return ret; 128 return ret;
123 } 129 }
124 130
125 } // namespace chromeos_update_engine 131 } // namespace chromeos_update_engine
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698