summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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());