component: Remove duplicate call to read_event
This commit is contained in:
parent
37148b9097
commit
44a03c37d5
1 changed files with 19 additions and 14 deletions
|
@ -1,4 +1,3 @@
|
||||||
use xml;
|
|
||||||
use jid::Jid;
|
use jid::Jid;
|
||||||
use transport::{Transport, PlainTransport};
|
use transport::{Transport, PlainTransport};
|
||||||
use error::Error;
|
use error::Error;
|
||||||
|
@ -10,8 +9,9 @@ use sha_1::{Sha1, Digest};
|
||||||
|
|
||||||
use minidom::Element;
|
use minidom::Element;
|
||||||
|
|
||||||
use xml::reader::XmlEvent as ReaderEvent;
|
use quick_xml::events::Event as XmlEvent;
|
||||||
|
|
||||||
|
use std::str;
|
||||||
use std::fmt::Write;
|
use std::fmt::Write;
|
||||||
use std::sync::{Mutex, Arc};
|
use std::sync::{Mutex, Arc};
|
||||||
|
|
||||||
|
@ -131,26 +131,31 @@ impl Component {
|
||||||
self.transport.lock().unwrap().write_element(elem)
|
self.transport.lock().unwrap().write_element(elem)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn read_event(&self) -> Result<xml::reader::XmlEvent, Error> {
|
|
||||||
self.transport.lock().unwrap().read_event()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn connect(&mut self, secret: String) -> Result<(), Error> {
|
fn connect(&mut self, secret: String) -> Result<(), Error> {
|
||||||
let mut sid = String::new();
|
let mut sid = String::new();
|
||||||
loop {
|
loop {
|
||||||
let e = self.read_event()?;
|
let mut transport = self.transport.lock().unwrap();
|
||||||
|
let e = transport.read_event()?;
|
||||||
match e {
|
match e {
|
||||||
ReaderEvent::StartElement { attributes, .. } => {
|
XmlEvent::Start(ref e) => {
|
||||||
for attribute in attributes {
|
let mut attributes = e.attributes()
|
||||||
if attribute.name.namespace == None && attribute.name.local_name == "id" {
|
.map(|o| {
|
||||||
sid = attribute.value;
|
let o = o?;
|
||||||
|
let key = str::from_utf8(o.key)?;
|
||||||
|
let value = str::from_utf8(&o.value)?;
|
||||||
|
Ok((key, value))
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.collect::<Result<Vec<(&str, &str)>, Error>>()?;
|
||||||
|
for &(name, value) in &attributes {
|
||||||
|
if name == "id" {
|
||||||
|
sid = value.to_owned();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
},
|
|
||||||
_ => (),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
let concatenated = format!("{}{}", sid, secret);
|
let concatenated = format!("{}{}", sid, secret);
|
||||||
let mut hasher = Sha1::default();
|
let mut hasher = Sha1::default();
|
||||||
hasher.input(concatenated.as_bytes());
|
hasher.input(concatenated.as_bytes());
|
||||||
|
|
Loading…
Reference in a new issue