summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaun Taheri <github@taheris.co.uk>2016-09-30 16:02:36 +0200
committerGitHub <noreply@github.com>2016-09-30 16:02:36 +0200
commitd80c786529ca74a524b9b0f2ecd01b3674a3bb74 (patch)
treeb0c2de94adda551e82db53b0489c1fb3065a0fd8
parentf15521b7c55eb4a1f9b4c54ec6b9c16d50b7743b (diff)
parent08252de4a101e189af499ae140f62eaaabb9b657 (diff)
downloadrvi_sota_client-d80c786529ca74a524b9b0f2ecd01b3674a3bb74.tar.gz
Merge pull request #127 from advancedtelematic/fix/pro-1530/retry-authentication
Fix re-authentication when token expires
-rw-r--r--src/datatype/event.rs2
-rw-r--r--src/interpreter.rs3
2 files changed, 4 insertions, 1 deletions
diff --git a/src/datatype/event.rs b/src/datatype/event.rs
index 2d6f895..93ed4ec 100644
--- a/src/datatype/event.rs
+++ b/src/datatype/event.rs
@@ -14,6 +14,8 @@ pub enum Event {
Authenticated,
/// An operation failed because we are not currently authenticated.
NotAuthenticated,
+ /// Nothing was done as we are already authenticated.
+ AlreadyAuthenticated,
/// A notification from Core of pending or in-flight updates.
UpdatesReceived(Vec<UpdateRequest>),
diff --git a/src/interpreter.rs b/src/interpreter.rs
index 1d73e1d..6908028 100644
--- a/src/interpreter.rs
+++ b/src/interpreter.rs
@@ -143,6 +143,7 @@ impl<'t> Interpreter<Interpret, Event> for GlobalInterpreter<'t> {
Err(Error::HttpAuth(resp)) => {
error!("HTTP authorization failed: {}", resp);
+ self.token = None;
let ev = Event::NotAuthenticated;
etx.send(ev.clone());
response_ev = Some(ev);
@@ -167,7 +168,7 @@ impl<'t> GlobalInterpreter<'t> {
// always send at least one Event response
match cmd {
- Command::Authenticate(_) => etx.send(Event::Authenticated),
+ Command::Authenticate(_) => etx.send(Event::AlreadyAuthenticated),
Command::GetUpdateRequests => {
let mut updates = try!(sota.get_update_requests());