diff rust/src/paramwaiter.rs @ 613:5c2b0d47bb83 rust

Response has epoch_tag and params
author Matt Johnston <matt@ucc.asn.au>
date Thu, 02 Mar 2017 00:06:20 +0800
parents f3e39e2107fd
children e1bab5b36352
line wrap: on
line diff
--- a/rust/src/paramwaiter.rs	Thu Mar 02 00:06:03 2017 +0800
+++ b/rust/src/paramwaiter.rs	Thu Mar 02 00:06:20 2017 +0800
@@ -9,6 +9,7 @@
 use std::rc::Rc;
 use std::sync::{Arc,Mutex};
 use std::error::Error;
+use std::cell::Cell;
 
 use tokio_core::reactor::Interval;
 use tokio_core::reactor::Handle;
@@ -19,6 +20,12 @@
 use types::*;
 use ::Config;
 
+#[derive(Deserialize, Debug)]
+struct Response {
+    epoch_tag: String,
+    params: Params,
+}
+
 #[derive(Clone)]
 pub struct ParamWaiter {
     limitlog: NotTooOften,
@@ -54,7 +61,13 @@
         let text = String::from_utf8_lossy(buf).to_string();
         let resp = req.response_code()?;
         match resp {
-            200 => Ok(Some(serde_json::from_str(&text)?)), // new params
+            200 => {
+                // new params
+                let r: Response = serde_json::from_str(&text)?;
+                // XXX
+                //self.epoch_tag = r.epoch_tag;
+                Ok(Some(r.params))
+            }
             304 => Ok(None), // unmodified (long polling timeout at the server)
             _ => {
                 Err(TemplogError::new(&format!("Wrong server response code {}: {}", resp, text)))