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

Side by Side Diff: omaha_request_action.h

Issue 2856070: Don't send machine and user ID to Omaha anymore. Send a/r pings instead. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/update_engine.git
Patch Set: Address review comments. Created 10 years, 4 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 | « main.cc ('k') | omaha_request_action.cc » ('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 #ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_OMAHA_REQUEST_ACTION_H__ 5 #ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_OMAHA_REQUEST_ACTION_H__
6 #define CHROMEOS_PLATFORM_UPDATE_ENGINE_OMAHA_REQUEST_ACTION_H__ 6 #define CHROMEOS_PLATFORM_UPDATE_ENGINE_OMAHA_REQUEST_ACTION_H__
7 7
8 #include <sys/stat.h> 8 #include <sys/stat.h>
9 #include <sys/types.h> 9 #include <sys/types.h>
10 #include <fcntl.h> 10 #include <fcntl.h>
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 error_code(in_error_code) {} 78 error_code(in_error_code) {}
79 79
80 Type type; 80 Type type;
81 Result result; 81 Result result;
82 ActionExitCode error_code; 82 ActionExitCode error_code;
83 }; 83 };
84 84
85 class NoneType; 85 class NoneType;
86 class OmahaRequestAction; 86 class OmahaRequestAction;
87 struct OmahaRequestParams; 87 struct OmahaRequestParams;
88 class PrefsInterface;
88 89
89 template<> 90 template<>
90 class ActionTraits<OmahaRequestAction> { 91 class ActionTraits<OmahaRequestAction> {
91 public: 92 public:
92 // Takes parameters on the input pipe. 93 // Takes parameters on the input pipe.
93 typedef NoneType InputObjectType; 94 typedef NoneType InputObjectType;
94 // On UpdateCheck success, puts the Omaha response on output. Event 95 // On UpdateCheck success, puts the Omaha response on output. Event
95 // requests do not have an output pipe. 96 // requests do not have an output pipe.
96 typedef OmahaResponse OutputObjectType; 97 typedef OmahaResponse OutputObjectType;
97 }; 98 };
98 99
99 class OmahaRequestAction : public Action<OmahaRequestAction>, 100 class OmahaRequestAction : public Action<OmahaRequestAction>,
100 public HttpFetcherDelegate { 101 public HttpFetcherDelegate {
101 public: 102 public:
103 static const int kNeverPinged = -1;
104 static const int kPingTimeJump = -2;
105
102 // The ctor takes in all the parameters that will be used for making 106 // The ctor takes in all the parameters that will be used for making
103 // the request to Omaha. For some of them we have constants that 107 // the request to Omaha. For some of them we have constants that
104 // should be used. 108 // should be used.
105 // 109 //
106 // Takes ownership of the passed in HttpFetcher. Useful for testing. 110 // Takes ownership of the passed in HttpFetcher. Useful for testing.
107 // 111 //
108 // Takes ownership of the passed in OmahaEvent. If |event| is NULL, 112 // Takes ownership of the passed in OmahaEvent. If |event| is NULL,
109 // this is an UpdateCheck request, otherwise it's an Event request. 113 // this is an UpdateCheck request, otherwise it's an Event request.
110 // Event requests always succeed. 114 // Event requests always succeed.
111 // 115 //
112 // A good calling pattern is: 116 // A good calling pattern is:
113 // OmahaRequestAction(..., new OmahaEvent(...), new WhateverHttpFetcher); 117 // OmahaRequestAction(..., new OmahaEvent(...), new WhateverHttpFetcher);
114 // or 118 // or
115 // OmahaRequestAction(..., NULL, new WhateverHttpFetcher); 119 // OmahaRequestAction(..., NULL, new WhateverHttpFetcher);
116 OmahaRequestAction(const OmahaRequestParams& params, 120 OmahaRequestAction(PrefsInterface* prefs,
121 const OmahaRequestParams& params,
117 OmahaEvent* event, 122 OmahaEvent* event,
118 HttpFetcher* http_fetcher); 123 HttpFetcher* http_fetcher);
119 virtual ~OmahaRequestAction(); 124 virtual ~OmahaRequestAction();
120 typedef ActionTraits<OmahaRequestAction>::InputObjectType InputObjectType; 125 typedef ActionTraits<OmahaRequestAction>::InputObjectType InputObjectType;
121 typedef ActionTraits<OmahaRequestAction>::OutputObjectType OutputObjectType; 126 typedef ActionTraits<OmahaRequestAction>::OutputObjectType OutputObjectType;
122 void PerformAction(); 127 void PerformAction();
123 void TerminateProcessing(); 128 void TerminateProcessing();
124 129
125 // Debugging/logging 130 // Debugging/logging
126 static std::string StaticType() { return "OmahaRequestAction"; } 131 static std::string StaticType() { return "OmahaRequestAction"; }
127 std::string Type() const { return StaticType(); } 132 std::string Type() const { return StaticType(); }
128 133
129 // Delegate methods (see http_fetcher.h) 134 // Delegate methods (see http_fetcher.h)
130 virtual void ReceivedBytes(HttpFetcher *fetcher, 135 virtual void ReceivedBytes(HttpFetcher *fetcher,
131 const char* bytes, int length); 136 const char* bytes, int length);
132 virtual void TransferComplete(HttpFetcher *fetcher, bool successful); 137 virtual void TransferComplete(HttpFetcher *fetcher, bool successful);
133 138
134 // Returns true if this is an Event request, false if it's an UpdateCheck. 139 // Returns true if this is an Event request, false if it's an UpdateCheck.
135 bool IsEvent() const { return event_.get() != NULL; } 140 bool IsEvent() const { return event_.get() != NULL; }
136 141
137 private: 142 private:
143 // If this is an update check request, initializes
144 // |ping_active_days_| and |ping_roll_call_days_| to values that may
145 // be sent as pings to Omaha.
146 void InitPingDays();
147
148 // Based on the perstitent preference store values, calculates the
Carl Nygaard 2010/07/29 21:02:53 perstitent -> persistent
149 // number of days since the last ping sent for |key|.
150 int CalculatePingDays(const std::string& key);
151
152 // Access to the preferences store.
153 PrefsInterface* prefs_;
154
138 // These are data that are passed in the request to the Omaha server. 155 // These are data that are passed in the request to the Omaha server.
139 const OmahaRequestParams& params_; 156 const OmahaRequestParams& params_;
140 157
141 // Pointer to the OmahaEvent info. This is an UpdateCheck request if NULL. 158 // Pointer to the OmahaEvent info. This is an UpdateCheck request if NULL.
142 scoped_ptr<OmahaEvent> event_; 159 scoped_ptr<OmahaEvent> event_;
143 160
144 // pointer to the HttpFetcher that does the http work 161 // pointer to the HttpFetcher that does the http work
145 scoped_ptr<HttpFetcher> http_fetcher_; 162 scoped_ptr<HttpFetcher> http_fetcher_;
146 163
147 // Stores the response from the omaha server 164 // Stores the response from the omaha server
148 std::vector<char> response_buffer_; 165 std::vector<char> response_buffer_;
149 166
167 // Initialized by InitPingDays to values that may be sent to Omaha
168 // as part of a ping message. Note that only positive values and -1
169 // are sent to Omaha.
170 int ping_active_days_;
171 int ping_roll_call_days_;
172
150 DISALLOW_COPY_AND_ASSIGN(OmahaRequestAction); 173 DISALLOW_COPY_AND_ASSIGN(OmahaRequestAction);
151 }; 174 };
152 175
153 } // namespace chromeos_update_engine 176 } // namespace chromeos_update_engine
154 177
155 #endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_OMAHA_REQUEST_ACTION_H__ 178 #endif // CHROMEOS_PLATFORM_UPDATE_ENGINE_OMAHA_REQUEST_ACTION_H__
OLDNEW
« no previous file with comments | « main.cc ('k') | omaha_request_action.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698