summaryrefslogtreecommitdiff
path: root/src/connection.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/connection.rs')
-rw-r--r--src/connection.rs31
1 files changed, 21 insertions, 10 deletions
diff --git a/src/connection.rs b/src/connection.rs
index 0276558..26993fd 100644
--- a/src/connection.rs
+++ b/src/connection.rs
@@ -1,6 +1,6 @@
use std::io::prelude::*;
use std::io::BufReader;
-use std::net::{TcpListener, TcpStream};
+use std::net::TcpStream;
extern crate serde_json;
@@ -8,7 +8,7 @@ use ship::Ship;
use module::{Module, from_primitive};
pub struct Connection {
- name : String,
+// name : String,
ship : Ship,
module : Module,
stream : TcpStream,
@@ -21,19 +21,20 @@ impl Connection {
let mut buff_r = BufReader::new(stream.try_clone().unwrap());
let mut data = String::new();
- buff_r.read_line(&mut data);
- let name = &data[..data.find(":").unwrap()];
+ buff_r.read_line(&mut data).unwrap();
+ //let name = &data[..data.find(":").unwrap()];
let modules = b"dashboard,navigation,engine\n";
- stream.write(modules);
+ stream.write(modules).unwrap();
let mut data = String::new();
- buff_r.read_line(&mut data);
- let num = data.replace("\n", "");
- let module = from_primitive(num.parse::<isize>().unwrap());
+ buff_r.read_line(&mut data).unwrap();
+ let module = from_primitive(data);
+
+ stream.set_nonblocking(true).unwrap();
Connection {
- name : String::from(name),
+// name : String::from(name),
ship : Ship::new(),
module : module,
stream : stream,
@@ -47,7 +48,17 @@ impl Connection {
Module::Dashboard => {
let mut send = serde_json::to_string(&self.ship).unwrap();
send.push_str("\n");
- self.stream.write(send.as_bytes());
+ match self.stream.write(send.as_bytes()) {
+ Ok(_result) => (),
+ Err(_error) => self.open = false,
+ }
+ }
+ Module::Engines => {
+ let mut data = String::new();
+ match self.buff_r.read_line(&mut data) {
+ Ok(_result) => println!("{}", data),
+ Err(_error) => println!("{}", _error)
+ }
}
_ => ()
}