Commit graph

17 commits

Author SHA1 Message Date
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