diff options
author | Shaun Taheri <github@taheris.co.uk> | 2016-09-30 16:02:36 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-30 16:02:36 +0200 |
commit | d80c786529ca74a524b9b0f2ecd01b3674a3bb74 (patch) | |
tree | b0c2de94adda551e82db53b0489c1fb3065a0fd8 | |
parent | f15521b7c55eb4a1f9b4c54ec6b9c16d50b7743b (diff) | |
parent | 08252de4a101e189af499ae140f62eaaabb9b657 (diff) | |
download | rvi_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.rs | 2 | ||||
-rw-r--r-- | src/interpreter.rs | 3 |
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()); |