component: Fix attributes parsing; thanks Link Mauve

This commit is contained in:
Maxime “pep” Buquet 2017-12-28 16:20:32 +01:00
parent 5f9d91140d
commit 2fb540f85b

View file

@ -138,24 +138,22 @@ impl Component {
let e = transport.read_event()?; let e = transport.read_event()?;
match e { match e {
XmlEvent::Start(ref e) => { XmlEvent::Start(ref e) => {
let mut attributes = e.attributes() for attr_result in e.attributes() {
.map(|o| { match attr_result {
let o = o?; Ok(attr) => {
let key = str::from_utf8(o.key)?; let name = str::from_utf8(attr.key)?;
let value = str::from_utf8(&o.value)?; let value = str::from_utf8(&attr.value)?;
Ok((key, value))
}
)
.collect::<Result<Vec<(&str, &str)>, Error>>()?;
for &(name, value) in &attributes {
if name == "id" { if name == "id" {
sid = value.to_owned(); sid = value.to_owned();
} }
},
_ => panic!()
} }
}
break;
}, },
_ => (), _ => (),
} }
break
} }
let concatenated = format!("{}{}", sid, secret); let concatenated = format!("{}{}", sid, secret);
let mut hasher = Sha1::default(); let mut hasher = Sha1::default();