Michael Marineau
0152a8b1b0
client: export NewAppRequest and SendAppRequest methods
...
Allow for more flexibility in constructing requests if needed.
2017-06-09 18:40:25 -07:00
Michael Marineau
a2f653da34
client: send "Complete" event in update checks
...
Needed in order to match update_engine behavior.
2017-06-09 18:40:25 -07:00
Michael Marineau
d946c1e7b2
client: disable checking for ping and event status in responses
...
Turns out CoreUpdate does not currently send <ping status="ok"> and
<event status="ok"> in responses like the protocol says it should.
2017-06-09 18:40:25 -07:00
Michael Marineau
2d48f3a029
client: send error events if update check or ping fails
...
Does not report errors when sending events since that would be cyclic.
2017-06-09 18:40:25 -07:00
Michael Marineau
41143a9d17
client: define error codes and events used by update_engine
...
Event error codes are application specific but for the sake of
simplicity lets re-use the update_engine ones where applicable.
update_engine and thus CoreUpdate only use a small subset of possible
event types so we can provide pre-defined event structs for them.
2017-06-09 18:40:25 -07:00
Michael Marineau
03222d488c
client: support sending events asynchronously
...
Makes blocking and waiting for success/error optional, also allows
concurrent use of the rest of the client while events are sent.
2017-06-09 18:40:25 -07:00
Michael Marineau
c42bec118e
client: support runtime changes of app id
2017-06-07 11:29:02 -07:00
Michael Marineau
3b5d143dc5
client: add application oem attribute
2017-06-07 11:29:02 -07:00
Michael Marineau
bd1ae5648e
client: add rough example for using the client
2017-06-05 13:23:32 -07:00
Michael Marineau
1b026dfef5
client: add fuzzy timer for update check and ping interval
...
Uses the same timing parameters as update_engine.
2017-06-02 18:44:29 -07:00
Michael Marineau
c88c5916bb
client: implement exponential backoff on temporary network errors
...
Uses a fuzzy timer to reduce chance of multiple clients synchronizing.
2017-06-02 18:44:29 -07:00
Michael Marineau
c9e5a6a602
client: define default version as a constant
2017-06-02 18:44:29 -07:00
Michael Marineau
d40844181a
client: add fuzzy timer
...
For randomizing update check intervals and backoff delays to reduce
chance of DoSing the server if lots of clients start together.
2017-06-02 18:42:53 -07:00
Michael Marineau
73e12a0154
client: add support for machine-wide omaha clients
...
Uses machine id and boot id for user and session respectively, matching
the existing behavior of update_engine.
2017-05-25 13:57:28 -07:00
Michael Marineau
ad277db627
client: implement event, ping, and updatecheck
...
For simplicity one request is sent for each event/ping/check for each
application. In the future it would be wise to batch together multiple
events and multiple applications to avoid excessive chatter.
2017-05-25 13:13:10 -07:00
Michael Marineau
45e1ea6221
client: report sensible errors if response is excessively large or empty
2017-05-25 13:13:09 -07:00
Michael Marineau
e6f3abe15e
client: support retrying requests after transient HTTP errors
...
Wraps failed http.Request objects in a net.Error interface.
2017-05-25 13:13:09 -07:00
Michael Marineau
b8149cc683
client: add extended http client for making omaha api requests
...
Supports encoding/decoding omaha xml and retrying on transient failures.
2017-05-25 13:13:09 -07:00
Michael Marineau
b2b975be5d
client: begin omaha client implementation
...
This first commit just covers the basic data structures.
2017-05-25 13:13:09 -07:00