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

Side by Side Diff: omaha_request_action.cc

Issue 3275006: AU: Implement server-dictated poll interval. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/update_engine.git
Patch Set: rebase to head Created 10 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « omaha_request_action.h ('k') | update_attempter.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium OS 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_action.h" 5 #include "update_engine/omaha_request_action.h"
6
6 #include <inttypes.h> 7 #include <inttypes.h>
8
7 #include <sstream> 9 #include <sstream>
8 10
11 #include <base/string_number_conversions.h>
12 #include <base/string_util.h>
13 #include <base/time.h>
14 #include <base/logging.h>
9 #include <libxml/parser.h> 15 #include <libxml/parser.h>
10 #include <libxml/xpath.h> 16 #include <libxml/xpath.h>
11 #include <libxml/xpathInternals.h> 17 #include <libxml/xpathInternals.h>
12 18
13 #include "base/string_number_conversions.h"
14 #include "base/string_util.h"
15 #include "base/time.h"
16 #include "base/logging.h"
17 #include "update_engine/action_pipe.h" 19 #include "update_engine/action_pipe.h"
18 #include "update_engine/omaha_request_params.h" 20 #include "update_engine/omaha_request_params.h"
19 #include "update_engine/prefs_interface.h" 21 #include "update_engine/prefs_interface.h"
20 #include "update_engine/utils.h" 22 #include "update_engine/utils.h"
21 23
22 using base::Time; 24 using base::Time;
23 using base::TimeDelta; 25 using base::TimeDelta;
24 using std::string; 26 using std::string;
25 27
26 namespace chromeos_update_engine { 28 namespace chromeos_update_engine {
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 CHECK(nodeset) << "XPath missing NodeSet"; 372 CHECK(nodeset) << "XPath missing NodeSet";
371 CHECK_GE(nodeset->nodeNr, 1); 373 CHECK_GE(nodeset->nodeNr, 1);
372 374
373 xmlNode* updatecheck_node = nodeset->nodeTab[0]; 375 xmlNode* updatecheck_node = nodeset->nodeTab[0];
374 // get status 376 // get status
375 if (!xmlHasProp(updatecheck_node, ConstXMLStr("status"))) { 377 if (!xmlHasProp(updatecheck_node, ConstXMLStr("status"))) {
376 LOG(ERROR) << "Response missing status"; 378 LOG(ERROR) << "Response missing status";
377 return; 379 return;
378 } 380 }
379 381
382 OmahaResponse output_object;
383 base::StringToInt(XmlGetProperty(updatecheck_node, "PollInterval"),
384 &output_object.poll_interval);
380 const string status(XmlGetProperty(updatecheck_node, "status")); 385 const string status(XmlGetProperty(updatecheck_node, "status"));
381 OmahaResponse output_object;
382 if (status == "noupdate") { 386 if (status == "noupdate") {
383 LOG(INFO) << "No update."; 387 LOG(INFO) << "No update.";
384 output_object.update_exists = false; 388 output_object.update_exists = false;
385 SetOutputObject(output_object); 389 SetOutputObject(output_object);
386 completer.set_code(kActionCodeSuccess); 390 completer.set_code(kActionCodeSuccess);
387 return; 391 return;
388 } 392 }
389 393
390 if (status != "ok") { 394 if (status != "ok") {
391 LOG(ERROR) << "Unknown status: " << status; 395 LOG(ERROR) << "Unknown status: " << status;
(...skipping 10 matching lines...) Expand all
402 output_object.codebase = XmlGetProperty(updatecheck_node, "codebase"); 406 output_object.codebase = XmlGetProperty(updatecheck_node, "codebase");
403 output_object.more_info_url = XmlGetProperty(updatecheck_node, "MoreInfo"); 407 output_object.more_info_url = XmlGetProperty(updatecheck_node, "MoreInfo");
404 output_object.hash = XmlGetProperty(updatecheck_node, "hash"); 408 output_object.hash = XmlGetProperty(updatecheck_node, "hash");
405 output_object.size = ParseInt(XmlGetProperty(updatecheck_node, "size")); 409 output_object.size = ParseInt(XmlGetProperty(updatecheck_node, "size"));
406 output_object.needs_admin = 410 output_object.needs_admin =
407 XmlGetProperty(updatecheck_node, "needsadmin") == "true"; 411 XmlGetProperty(updatecheck_node, "needsadmin") == "true";
408 output_object.prompt = XmlGetProperty(updatecheck_node, "Prompt") == "true"; 412 output_object.prompt = XmlGetProperty(updatecheck_node, "Prompt") == "true";
409 output_object.is_delta = 413 output_object.is_delta =
410 XmlGetProperty(updatecheck_node, "IsDelta") == "true"; 414 XmlGetProperty(updatecheck_node, "IsDelta") == "true";
411 SetOutputObject(output_object); 415 SetOutputObject(output_object);
412 return;
413 } 416 }
414 417
415 }; // namespace chromeos_update_engine 418 }; // namespace chromeos_update_engine
OLDNEW
« no previous file with comments | « omaha_request_action.h ('k') | update_attempter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698